一.HTTP协议的基本格式
HTTP (超文本传输协议)是应用广泛的应用层协议,常用于网页和后台服务器交互,app和后台服务器的交互.我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的,是通过请求-响应来完成信息的交互.
通过抓包工具才能清晰看出HTTP协议中具体的格式,下面使用fiddler 抓包工具来观察HTTP协议的基本格式
二.使用抓包工具fiddler观察格式
1.先用fiddler抓个包观察
其中左侧窗口显示了所有的HTTP请求/响应,可以选其中一个查看详情 右上方显示的是HTTP请求报文内容,右下方是HTTP的响应报文内容,两者都可以点击Raw标签页看到详细的数据格式.如果数据量过大找不到想要的信息,可以使用 ctrl + a 全选左侧的抓包结果, delete 键清除所有被选中的结果. 然后再重新抓想要的数据.
2.查看HTTP请求
其中首行的方法(HTTP1.1)有POST、GET、HEAD、PUT、OPTIONS、DELETE、TRACE、CONNECT,常用的就是 POST 和 GET 方法.有些包中会有Referer,意思就是当前这个页面是从哪个网站跳转过来的。
GET 一般用于获取数据, POST 一般用于提交数据.
GET 的 body 一般为空, 需要传递的数据通过 query string 传递, POST 的 query string 一般
首行是协议名和协议版本,状态码和状态码描述,常见的状态码有
1xx 类状态码属于提示信息,是协议处理中的一种中间状态
2xx 类状态码表示服务器成功处理了客户端的请求
3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。
4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。
5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。
响应头:
Content-Type:段用于服务器回应时,告诉客户端,
本次数据是什么格式。
Content-Length
:服务器在返回数据时,会有
Content-Length
字段,表明本次回应的数据长度。