apache-4-请求头和响应头

四 请求头和响应头还记得我们前面提到的上网流程吧?
1 DNS解析,获取A记录,找到网站对应的IP地址
2 三次握手
三次握手之前服务器处在listen状态 建立完三次握手之后服务器处于established状态可以传输数据
Established阶段的工作
1) 客户端发起请求,告诉服务器要什么
http://www.sina.com.cn/meizi.jpg
2) 服务器接收请求:读取请求信息内容
3) 服务器处理请求:将请求交给文件系统,让文件系统去找文件
4) 服务器响应请求:将数据交给客户端
a) 要不要压缩?(取决于双方是否支持压缩)
b) 是否开了长连接(长连接:在服务器和客户端建立连接之后,不会立即断开,会等待一定时间,在此时间内如果再有数据包发送就不需要进行三次握手,可直接发送,对应的就是短连接)
3 四次断开
在这个流程中接收请求和处理请求是在服务器内部完成的,所以呢,我们来看一下发起请求和响应请求
环境准备
为Apache生成一个web页面
echo "hello" > /var/www/html/index.htmlsystemctl restart httpd访问测试【apache-4-请求头和响应头】安装wireshark(图形界面查看数据包内容的工具)
[root@manage01 ~]# dnf install wireshark* -y抓包
[root@manage01 ~]# tcpdump -nn -vvv -s 1500 -w /tmp/httpd host 172.16.121.141 and port 80 -i ens37切换到另一台主机访问
curl 172.16.121.141使用apache主机查看抓到的数据包
[root@manage01 ~]# wireshark /tmp/httpd  

apache-4-请求头和响应头

文章插图
 
 
wireshark的几面分为三部分
第一部分是数据包列表
No.: 序号
Time: 时间
Source: 源地址
Destination: 目标地址
Protocol:协议
Length:长度
info:简介
第二部分为数据包的详细信息
Frame&Ethernet 数据链路层数据,主要是mac地址和帧
Internet protocol 网络层信息 逻辑链路寻址,主要是IP地址
Transmssion Control 传输控制,可以查看应用层信息
第三部分为16进制数据
在wireshark中如果是确认包,在选中的时候前面会有√的标记,如果是请求包会有→的标记,如果是响应包会有←的标记
我们先看一下第四个包,请求头
 
apache-4-请求头和响应头

文章插图
 
 
Hypertext Transfer Protocol#HTTP协议GET / HTTP/1.1rn #请求信息[Expert Info (Chat/Sequence): GET / HTTP/1.1rn]#专家信息[GET / HTTP/1.1rn]#获取根下的数据,http协议的版本是1.1 rn=换行符[Severity level: Chat]#严重级别 chat note warn error[Group: Sequence]#数据包属于哪个组(类)Checksum:校验和类Sequence:序列号类Response:响应类Request:请求类Undecoded:不能识别类Reassemble:重组问题类Malformed:畸形数据包类Debug:不应该出现匹配此类型的数据包Request Method: GET#请求的方法是get,获取数据,获取的数据通过Request URI指定get获取指定的资源post向指定资源提交数据进行处理,有可能导致新的资源的建立或原有资源的修改put向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定资源的内容)delete删除指定的资源opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送测试服务器功能(允许客户端查看服务器性能)Trace 回显服务器收到的请求,用于测试和诊断Connect 将服务器作为代理,让服务器代替用户去访问其他网页,之后将数据返回给用户 。Head 与get请求类似,返回的响应中没有具体内容,用于获取报头Request URI: /#请求的资源信息Request Version: HTTP/1.1#请求的版本Host: 172.16.121.141rn#请求的主机信息User-Agent: curl/7.64.1rn#客户端浏览器和版本Accept: */*rnrn#客户端支持的内容类型,服务器会根据此内容返回信息内容类型主要指的是文本类,视频,音频,图片等Accept:text/html,Application/xhtml+xm… #接受的数据类型Accept-Language:en-US,en;q=0.5#语言环境Accept-Encoding:gzip, deflate#是否支持压缩,及类型Connection:keep-alive#是否支持长连接Upgrade-Insecure-Requests:1 #客户端优先选择加密及带有身份验证的响应If-Modified-Since: Wed, 25 Mar 2020 12:18:04 GMT#把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较 。如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中 。如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中 。(如果客户端是第一次访问,不会出现此字段,因为客户端没有相关缓存数据)If-None-Match: "5-5a1acdc3a6d9e" #验证标签,用来帮助控制缓存验证[Full request URI: http://172.16.121.141/]#完整的请求信息[HTTP request 1/1]#http请求进度[Response in frame: 6]#响应帧是第6帧[Next request in frame:8]#下一个请求帧


推荐阅读