HTTP报文实践

什么是HTTP协议

HTTP是一种不保存的状态,即无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。

HTTP报文格式

HTTP协议交互的信息被称为HTTP报文。HTTP报文由报文首部、空行(CR+LF)、报文主体。HTTP报文分为请求报文、响应报文。


HTTP报文实践_第1张图片
HTTP报文.png

HTTP请求报文结构

请求报文:请求行、请求头、空行、请求体

HTTP报文实践_第2张图片

1. 请求行

POST /mch/login HTTP/1.1\r\n

说明:
POST(请求方法)、/mch/login(URI)、HTTP/1.1(HTTP版本)。
2. 请求头

Host: 192.168.9.172:8087\r\n
Connection: keep-alive\r\n
Content-Length: 59\r\n
Accept: application/json, text/javascript, */*; q=0.01\r\n
Origin: http://192.168.9.172:8087\r\n
X-Requested-With: XMLHttpRequest\r\n
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\r\n
Content-Type: application/json\r\n
Referer: http://192.168.9.172:8087/mch/\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: zh-CN,zh;q=0.9\r\n

说明:
Host: 192.168.9.172:8087(表示服务器的域名以及服务器所监听的端口号);
Connection: keep-alive(维持持久连接);
Content-Length: 59(实体部分的大小);
Accept: application/json, text/javascript, /; q=0.01(可接受的响应内容类型);
Origin: http://192.168.9.172:8087(发起一个针对跨域资源共享的请求);
X-Requested-With: XMLHttpRequest(代表ajax异步请求);
User-Agent: Mozilla/5.0(浏览器的身份标识字符串);
Content-Type: application/json(实体主体内对象的媒体类型);
Referer: http://192.168.9.172:8087/mch/(告知服务器请求的原始资源的uri);
Accept-Encoding: gzip, deflate(告知服务器用户代理支持的内容编码及内容编码的优先级顺序);
Accept-Language: zh-CN,zh;q=0.9(告知服务器用户代理能够处理的自然语言);
3. 空行

\r\n

4. 请求体

[Full request URI: http://192.168.9.172:8087/mch/login]
[HTTP request 1/2]
[Response in frame: 400]
[Next request in frame: 402]
File Data: 59 bytes
HTTP报文实践_第3张图片
请求体.png

HTTP响应报文结构

响应报文:状态行、响应头、空行、响应体

HTTP报文实践_第4张图片

1. 状态行

HTTP/1.1 200 OK\r\n

说明:
HTTP/1.1(HTTP版本)、200(状态码)、OK(短语)
2. 响应头

Server: Apache-Coyote/1.1\r\n
Set-Cookie: SHAREJSESSIONID=8a0e17c5-379f-4fc1-85e0-81eb6056f480; Path=/; HttpOnly\r\n
Set-Cookie: rememberMe=deleteMe; Path=/mch; Max-Age=0; Expires=Thu, 17-Jan-2019 08:18:45 GMT\r\n
Content-Type: application/json;charset=UTF-8\r\n
Content-Length: 16\r\n
Date: Fri, 18 Jan 2019 08:18:45 GMT\r\n

说明:
Server: Apache-Coyote/1.1(HTTP服务器应用程序信息);
Set-Cookie: SHAREJSESSIONID=8a0e17c5-379f-4fc1-85e0-81eb6056f480; Path=/; HttpOnly(设置了sessionId,path属性服务器上的文件目录作为cookie的适用对象,HttpOnly属性使cookie不能为javascript脚本访问);
Content-Type(实体主体内对象的媒体类型);
Content-Length: 16(实体部分的大小);
Date: Fri, 18 Jan 2019 08:18:45 GMT(创建HTTP报文的日期和时间);
3. 空行

\r\n

4. 响应体

HTTP response 1/2
[Time since request: 0.052455000 seconds]
[Request in frame: 397]
[Next request in frame: 402]
[Next response in frame: 448]
File Data: 16 bytes

你可能感兴趣的:(HTTP报文实践)