HTTP协议--报文解析


HTTP协议

  • 规定浏览器发送和服务器返回的内容的格式
  • 超文本传输协议(Hypertext Transfer Protocol,HTTP)
  • 请求-响应协议,通常运行在TCP之上。
  • 指定了客户端可能发送给服务器的消息以及得到的响应
  • http1.1 协议
  • http协议是无状态协议,不会保存多次请求之间的关系,使用cookie做状态管理
  • 持久连接节省通信量(HTTP1.1和部分HTTP1.0)
  • 请求方法有get,post,put,delete等等

一、HTTP协议报文

  • 用以HTTP交互的信息就是HTTP报文
  • 报文头,报文主体,两者以空行分割
  • 报文头:服务器或者客户端需要处理的请求或者响应的内容及其属性
  • 报文主体:被发送的数据

二、 在浏览器中查看报文

【右键】-- 【检查】–【网络】–【FETCH/XHR】–【名称】
【标头】
【负载】
【响应】

三、HTTP协议-- 请求报文

客户端发送的HTTP报文;
在【标头】中

1. 请求行:

包含用于请求的方法(GET等),请求URIHTTP版本

POST /api/register HTTP/1.1

2.请求头:Content-Type: application/json等

3.空行

4. 报文主体:

在浏览器中查看报文,见二、

*POST /api/register HTTP/1.1
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Content-Length: 61
Content-Type: application/json
Host: baidu.com
Origin: null
User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36 Edg/120.0.0.0*

三、HTTP协议-- 响应报文

服务器返回给浏览器的内容;

1.响应行(状态行)

包含协议,HTTP响应状态码(400,404,500 等),状态信息
HTTP/1.1 200 OK

HTTP响应状态码

状态码说明
1**信息
2**成功,请求被正常处理
3**重定向消息,浏览器需要执行某些特殊的处理以正确处理请求
4**客户端错误,客户端是发生错误的原因所在
5**服务端错误,服务器本身发生错误

2.响应头

3.空行

4.响应体

{
“code”: 10000,
“message”: “注册成功”,
“data”: {
“id”: 133164,
“account”: “itheima654321012”
}
}

HTTP/1.1 200 OK
Date: Thu, 04 Jan 2024 04:17:09 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 89
Connection: keep-alive
Set-Cookie: acw_tc=76b20ffd17043418297408273e1e06269039bdfe44b85b9ce45cfcb3c2e0f6;path=/;HttpOnly;Max-Age=1800
Server: nginx
Vary: Origin
Access-Control-Allow-Origin: null
Access-Control-Allow-Credentials: true
Accept-Ranges: bytes
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
x-readtime: 12
X-Download-Options: noopen
Referrer-Policy: no-referrer-when-downgrade
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: none

总结

附:HTTP响应状态码

状态码注释说明
200OK表示客户端发来的请求被服务器正常处理了
204Not Content请求被成功处理,但是返回的响应报文不包含实体的主体部分
206Partial Content客户端进行范围请求,而服务器重新执行了这部分的GET请求
301Moved Permanently永久重定向。表示请求的资源已经被分配了新的URI,以后应该使用新的URI
302Found临时重定向。代表资源只是暂时的移动了以后还可能会移动为新的URI
303See Other由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源
304Not Modified客户端发送附带条件(请求首部中if开头的属性中的一种)的请求的时候,服务端允许访问资源,但是那些请求并没有满足,直接返回
400Bad Requset请求报文中存在语法错误,请修改请求内容后再发送请求
401Unauthorized客户端未认证授权
403Forbidden服务端禁止客户端访问此资源
404Not FoundURL写错了,找不到此路径
500Internal Server Error服务器内部故障,可能是bug导致的
503Service Unavaliable服务器暂时不可用(停机维护或者超负载),如果事先知道解除这种情况所需的时间,最好写入响应头中的Retry-After这个字段再返回给客户端
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值