HTTP协议
HTTP协议
HTTP协议概述
HTTP(hypertext transport protocol)协议;中文叫超文本传输协议
请求报文的组成
- 请求行
- 请求头
- 空行
- 请求体
我们可以使用抓包工具(抓包工具-Fiddler详细介绍)对http请求抓包观察,或者使用浏览器的开发者工具(按F12打开)
HTTP的请求行
请求行为报文的第一行,请求行有四部分组成,以空格分隔
- 请求方法(get、post、put、delete等)
- 请求 URL(统一资源定位器)
- HTTP协议版本号
HTTP请求头
格式:头名:头值
常见的请求头有:
请求头 | 解释 |
---|---|
Host | 主机名 |
Connection | 连接的设置keep-alive(保持连接);close(关闭连接) |
Cache-Control | 缓存控制 max-age=0 (没有缓存) |
Upgrade-Insecure-Requests | 将网页中的http请求转化为https请求(很少用)老网站升级 |
User-Agent | 用户代理,客户端字符串标识,服务器可以通过这个标识来识别这个请求来自哪个客户端 ,一般在PC端和手机端的区分 |
Accept | 设置浏览器接收的数据类型 |
Accept-Encoding | 设置接收的压缩方式 |
Accept-Language | 设置接收的语言 q=0.7 为喜好系数,满分为1 |
Cookie | 后面单独讲 |
HTTP的请求体
请求体内容的格式是非常灵活的,
(可以是空)==> GET请求,
(也可以是字符串,还可以是JSON)===> POST请求
例如:
-
字符串:
keywords=手机&price=2000
-
JSON:
{"keywords":"手机","price":2000}
响应报文的组成
-
响应行
HTTP/1.1 200 OK
- HTTP/1.1:HTTP协议版本号
- 200:响应状态码
404 Not Found; 500 Internal Server Error 更多响应状态码参考
- OK:响应状态描述
响应状态码和响应状态描述关系是一一对应的。
-
响应头
Cache-Control:缓存控制private私有的,只允许客户端缓存数据 Connection 链接设置 Content-Type:text/html;charset=utf-8 设置响应体的数据类型以及字符集,响应体为html,字符集utf-8 Content-Length:响应体的长度,单位为字节
-
空行
-
响应体
响应体内容的类型是非常灵活的,常见的类型有 HTML、CSS、JS、图片、JSON
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!