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