本文共 15738 字,大约阅读时间需要 52 分钟。
第一部分:HTTP、HTTPS相关概念深入理解(状态码,header,ab,curl)
第二部分:HTTP2.4新特性介绍与安装第一部分:HTTP、HTTPS相关概念深入理解(状态码,header,ab,curl)
一、HTTP协议介绍
1.URL:uniform Resource Location URL方案:schema 服务器地址:ip:port 资源路径: http://www.baidu.com:80/bbs/index.php 1 2 3 4 5 6 7 8 | 基本语法: [schema]://[user]:[password]@:[port]/[path];[params]?[query]#[frag] params:接受的参数 http://www.mt.com/bbs/hello;gender=f query:查询的参数 http://www.mt.com/bbs/item.php?username=tom&title=abc //查询的内容 frag:片段,打开页面后,直接定位到某个位置 http://www.mt.com/index.html#ch_Boot-x86 //后面的就是frag |
1 2 3 4 5 6 7 8 9 10 | 常用的状态码: 200:成功,请求的所有数据通过响应报文的entity-body部分发送;OK 301:永久重定向,moved-permanently请求的url指向的资源已经被删除;但在响应报文中通过首部location指明了资源现在所处的新位置 302:临时重定向,与301类似,但在响应报文中通过location指明资源现在所处的临时位置 304:Not notify客户端发出了条件式请求,但服务器上的资源未曾发生变化,则通过响应此状态码告知 401:需要输入账号和密码认证方能访问资源:Unauthorized 403:请求被禁止,forbidden 404:服务器无法找到c请求的资源:Not Fount 500:服务器内部错误 Internal Server Error 502:代理s从后端s收到了一条伪响应;Bad Gateway // |
1 2 3 4 5 6 7 8 9 10 11 | -A/--user-agent < string > 设置用户代理发送给服务器 --basic 使用HTTP基本认证 --tcp-nodelay 使用TCP_NODELAY选项 -e/--referer < URL > 来源网址 --cacert < file > CA证书 (SSL) //https的使用证书 --compressed 要求返回是压缩的格式,在传输过程中是压缩的 -H/--header < line >自定义首部信息传递给服务器 -I/--head 只显示响应报文首部信息 --limit-rate < rate > 设置传输速度 -u/--user < user [:password]>设置服务器的用户和密码 -0/--http1.0 使用HTTP 1.0 |
1 2 3 4 5 6 7 8 9 10 | # mod_deflate configuration # Restrict compression to these MIME types //要过滤的类型 AddOutputFilterByType DEFLATE text/plain //文本类别中的plain,html,css等才会压缩 AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/css |
1 2 3 4 5 6 7 8 9 10 11 | # Level of compression (Highest 9 - Lowest 1) //压缩级别 DeflateCompressionLevel 9 # Netscape 4.x has some problems. //浏览器过滤,有的浏览器不支持压缩,或者提示client升级客户端 BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CA:cd /etc/pki/CA (umask 077;openssl genrsa -out private/cakey.pem 2048) openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 365 {CN,HN,ZZ,Ops,Ops,ca.mt.com,.} touch index.txt echo 01 > serial HTTP_S:cd /etc/httpd/ssl (umask 077; openssl genrsa -out httpd.key 2048) openssl req -new -key httpd.key -out httpd.csr -days 365 主机名:www.mt.com HTTP_S scp httpd.csr root@192.168.4.100:/tmp CA: openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt scp certs/httpd.crt root@192.168.4.109:/etc/httpd/ssl/ |
1 2 3 4 5 6 7 | vim ssl.conf DocumentRoot "/var/www/html" ServerName www.mt.com SSLCertificateFile /etc/httpd/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/ssl/httpd.key httpd -t |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | -n:总请求数; -c:模拟的并行数; //默认一次一个 -t:测试所进行的最大秒数,默认-t 50000 -p:需要post的数据 -P:大写p:基本basic认证对一个中转代理提供BASIC认证信任。 用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了 401 认证需求代码),此字符串都会被发送。 -w:已html方式输出。默认是 -w以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。 -i:执行HEAD请求,而不是GET。 -x:设置<table>属性的字符串。 -X:对请求使用代理服务器。 -y:设置<tr>属性的字符串。 -z:设置<td>属性的字符串。 -C:对请求附加一个Cookie:行。其典型形式是name=value的一个参数对,此参数可以重复。 -H:对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对(如, "Accept-Encoding:zip/zop;8bit" )。 -A:对服务器提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即,是否发送了 401 认证需求代码),此字符串都会被发送。 -d:不显示 "percentage served within XX [ms] table" 的消息(为以前的版本提供支持)。 -e:产生一个以逗号分隔的(CSV)文件,其中包含了处理每个相应百分比的请求所需要(从 1 %到 100 %)的相应百分比的(以微妙为单位)时间。由于这种格式已经“二进制化”,所以比 'gnuplot' 格式更有用。 -g:把所有测试结果写入一个 'gnuplot' 或者TSV(以Tab分隔的)文件。此文件可以方便地导入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行为标题。 -i:执行HEAD请求,而不是GET。 -k:启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。默认时,不启用KeepAlive功能。 -q:如果处理的请求数大于 150 ,ab每处理大约 10 %或者 100 个请求时,会在stderr输出一个进度计数。此-q标记可以抑制这些信息。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #ab -c 100 -n 10000 -w http: //192.168.154.132/index.html > a.html //-c 指定并发用户数,-n总请求数 This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http: //www.zeustech.net/ Licensed to The Apache Software Foundation, http: //www.apache.org/ Server Software: Apache/ 2.2 . 15 Server Hostname: 192.168 . 154.132 Server Port: 80 Document Path: /index.html Document Length: 27 bytes Concurrency Level: 100 //并发用户数 Time taken for tests: 3.609 seconds //总耗时 Complete requests: 10000 Failed requests: 0 Total transferred: 3010000 bytes HTML transferred: 270000 bytes Requests per second: 2771.06 //吞吐率req/s, Transfer rate: 834088.22 kb/s received Connnection Times (ms) min avg max Connect: 0 0 19 Processing: 16 35 64 Total: 16 35 83 |
1 | # ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # ./configure --prefix=/usr/local/apache24 安装目录 --sysconfdir=/etc/httpd24 --enable-so 支持动态模块 --enable-ssl --enable-cgi --enable-rewrite 支持url重写 --with-zlib zlib提供压缩库 --with-pcre 支持perl扩展的正则表达式 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all //都编译 --with-mpm=prefork //默认prefork |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <VirtualHost *: 80 > ServerName www.b.net DocumentRoot "/www/b.net/htdocs" <Directory "/www/b.net/htdocs" > Options None AllowOverride None Require all granted </Directory> <VirtualHost> <VirtualHost *: 80 > ServerName www.c.org DocumentRoot "/www/c.org/htdocs" <Directory "/www/b.net/htdocs" > Options None AllowOverride None Require all granted </Directory> <VirtualHost> |
本文转自MT_IT51CTO博客,原文链接:http://blog.51cto.com/hmtk520/2044142,如需转载请自行联系原作者