HTTP协议请求和响应报文分析

HTTP协议请求和响应报文分析

请求报文

请求行:

Method:请求方法

GET 请求指定的页面信息,并返回实体主体。

HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT 从客户端向服务器传送的数据取代指定的文档的内容。

DELETE 请求服务器删除指定的页面。

CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS 允许客户端查看服务器的性能。

TRACE 回显服务器收到的请求,主要用于测试或诊断。

URL:请求的页面地址,‘/’表示服务器的根目录

Version:版本

请求首部:

HOST:连接的目标主机

User-Agent:代理。浏览器类型和版本

Accept:请求的对象类型。‘/’表示任意类型

Accept-language:使用的语言种类

Accept-Encoding:使用的编码种类

Cache-Control:请求时的缓存指令

Pragma:防止页面被缓存

Connection:连接选项

空行:\r\n

请求正文:

响应报文

状态行:

版本

响应代码:

1**表示接收到请求,继续进程,在发送post后可以收到该应答。

2**表示请求的操作成功,在发送get后返回。

3**表示重发,为了完成操作必须进一步动作。

4**表示客户端出现错误。

5**表示服务器出现错误。

其余部分称为应答实体。

响应首部:

Date:消息发送的时间

Content-Type:指明发送给接收者的实体正文的媒体类型

Content-Length:指明实体正文的长度,以字节方式存储的十进制数字来表示

Transfer-Encoding:chunked 代表这个报文采用了分块编码。这时,报文中的实体需要改为用一系列分块来传输。每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的CRLF(\r\n),也不包括分块数据结尾的 CRLF。最后一个分块长度值必须为 0,对应的分块数据没有内容,表示实体结束

Connection:连接选项

Expires:实体报头域给出响应过期的日期和时间

Server:响应报头域包含了服务器用来处理请求的软件信息。

Last-Modified:实体报头域用于指示资源的最后修改日期和时间

ETag:当用户再次请求该资源时,将在HTTP Request 中加入If-None-Match信息(ETag的值)。如果服务器验证资源的ETag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。否则将返回200状态和新的资源和Etag. 使用这样的机制将提高网站的性能

Cache-Control:响应时的缓存指令

X-Host:

Content-Encoding:WEB服务器表明自己使用了什么压缩方法(gzip,deflate)压缩响应中的对象。

Age:假设该请求Date比当前时间要早,并且如果Date+Age(秒)与主请求url中的Date一致,那么可以认为从代理缓存服务器中获取资源,缓存命中。

空行:\r\n
响应正文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值