HTTP协议格式—请求及响应报文分析

HTTP协议—应用层协议,也叫做超文本传输协议

HTTP协议格式

HTTP请求:

使用谷歌 Chrome浏览器抓取HTTP请求数据报头
HTTP协议格式—请求及响应报文分析
HTTP协议按行陈列,通常分为三或四部分:请求行、请求报头、空行、(请求正文)
上面HTTP协议数据报中只有请求行 和 请求报文,空行没有体现出来

请求行:[方法] + [URL] + [版本号] 也就是请求报文的第一行内容

[方法]:请求方法
1、GET方法:需要传参时通过URL传参,参数长度有限制,私密性不好 不安全
使用GET方法请求数据时,HTTP协议是三部分,没有请求正文
2、POST方法:需要传递的参数在正文内,长度不受限制

[URL]:要访问的UR资源
[版本号]:当前HTTP协议版本 HTTP/1.1

请求报头:从第二行开始到空行之前的全部内容

1、HOST:要访问的主机地址

2、Connection:传送数据的方式 Keep-alive 支持长链接
HTTP传送数据通常采用两种方案:
I、长链接:高效(HTTP/1.1)建立一次链接可以发送多次请求
II、短链接:简单(HTTP/1.0)建立连接,客户端发起请求,服务器分析给出回应并断开连接

3、User-Agent:客户端信息
4、Accept:请求资源类型—客户端可接收的资源类型
5、Accept-Encoding、Accept-Language:客户端可接收的编码及语言类型
6、Cookie:一个文件用于记录用户信息,保存在客户端本地

如果使用POST方法传参时,请求报头中还会有以下属性字段:
I、Content-Length:正文长度
II、Content-Type:正文类型

空行:将报头和有效载荷进行分离(解包),然后将有效载荷向上交付(分用)

请求正文:这个不是HTTP协议必须存在的内容,使用GET传参方式时没有正文

HTTP响应:

使用谷歌 Chrome浏览器抓取HTTP响应数据报头
HTTP协议格式—请求及响应报文分析
HTTP协议按行陈列,通常分为三或四部分:状态行、响应报头、空行、(响应正文-有效载荷)

状态行:[版本号] + [状态码] + [状态码描述]

[版本号] :当前HTTP协议版本 HTTP/1.1
[状态码]:302 重定向状态码
[状态码描述]:Moved Temporarily 临时移动; 被临时移动

HTTP的状态码
HTTP协议格式—请求及响应报文分析
响应报头:从第二行开始到空行之前
1、Server:服务器
2、Date:时间
3、Content-Type:正文类型
4、Content-Length:正文长度
5、Connection:Keep-alive 支持长链接
6、Location:新地址
当状态码为重定向状态码时,Location后的字段表示现在访问的新地址

重定向分为两种:
I、临时性重定向:要访问资源时,先访问旧地址再跳转到新地址
II、永久性重定向:当第一次访问资源时,先访问旧地址再跳转到新地址,以后直接访问新地址资源

空行:将报头和有效载荷进行分离