http协议的组成部分
1. HTTP协议组成部分
- 1.1 通用头部
- 1.2 请求报文
- 1.3 响应报文
1.1 通用头部
重点概要
- 请求的url - Request URL
- 请求的方式 - Request Method
- 请求后的响应状态码 - Status Code
- 注意:pathParams式传参的应用之处
//General
Request URL: https://www.cnblogs.com/ulysses-you/ajax/BlogPostInfo.aspx?blogId=326031&postId=7837173&blogUserGuid=a99aa15f-7bd1-e611-845c-ac853d9f53ac&_=1583061162307
Request Method: GET
Status Code: 200
Remote Address: 121.40.43.188:443
Referrer Policy: origin
1.2 请求报文
重点概要
- 最常用的是设置request的params或者data
- 其次是设置headers用于配合权限相关功能
1.2.1 请求头
- 内容类型 - content-type
- 缓存 - cache-control
//Request Headers
accept: text/plain, */*; q=0.01
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
cache-control: no-cache
content-type: application/json; charset=utf-8
pragma: no-cache
referer: https://www.cnblogs.com/
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
x-requested-with: XMLHttpRequest
1.2.2 请求体
对应的其实就是params,或者data
- 前后端联调时重点关注的地方
- get请求配置params
- post请求配置data
//Query String Parameters - 对应get的params
blogId: 326031
postId: 7837173
//或者: Query String Parameters
appid: 1014
platid: 4
clientver: 0
clienttime: 1583061751
signature: 0f325010fd962d68c77c1d1fd71fb045
mid: 5aefa6803318c252e1cd61dd51d8b64d
userid: 0
uuid: d339c932ec51b273ce22081ef5c6c06f
p.token
//Request Payload - 对应post的data
{
blogId: 326031
postId: 7837173
}
1.3 响应报文
重点概要
- 用于查看后端返回数据
- 可通过preview结构化查看返回数据
1.3.1 响应头
//Response Headers
content-encoding: gzip
content-type: text/html; charset=utf-8
date: Sun, 01 Mar 2020 11:12:42 GMT
server: Tengine
status: 200
vary: Accept-Encoding
1.3.2 响应体
对应的其实就是后端实际response返回的数据
- 查看后端返回的数据
- 架构层一般会对code状态码做异常处理,比如422,403,405等
//Response
{
code: 0,
message: "",
data: []
}
2. 待思考及延伸
- http状态码和组成部分的关联及应用
- http强缓存和协议缓存和组成部分的关联及应用