HTTP协议
概述
超文本传输协议,规定了浏览器和服务器之间数据传输的规则
特点:
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型的:一次请求对应一次响应
- HTTP协议是无状态的协议:对于事务处理没有记忆能力。每一次都是独立的。
- 缺点:多次请求间不能共享数据。
- 优点:速度快
请求协议
格式:
-
请求行:请求数据第一行(请求方式、资源路径、协议)
GET /brand HTTP/1.1 -
请求头:第二行开始,格式是key: value
Host 请求的主机名 User-Agent 浏览器版本,如Chrome浏览器的标识类似Mozilla/5.0……Chrome/79,IE浏览器的标识类似Mozilla/5.0(WindowsNT……) like Gecko Accept 表示浏览器能接受的资源类型,如text/*,image/或者/*表示所有; Accept-Language 表示浏览器偏好的语言,服务器可以据此返回不同语言的网页 Accept-Encoding 表示浏览器可以支持的压缩类型,如gzip,deflate等。 Content-Type 请求主体的数据类型。 Content-Length 请求主体的大小(单位:字节)。 -
请求体:POST请求,存放请求参数
注:
请求方式-GET:请求参数在请求行中,没有请求体
请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的
响应协议
-
响应行:响应数据第一行(协议、状态码、描述)
HTTP/1.1 200 OK -
响应头:第二行开始,格式key:value
-
响应体:最后,存放响应数据
| 1xx | 响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它 |
|---|---|
| 2xx | 成功-表示请求已经被成功接收,处理已经完成 |
| 3xx | 重定向-重定向到其他地方;让客户端再次发起一次请求以完成整个处理 |
| 4xx | 客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等 |
| 5xx | 服务器错误-处理发生错误 ,责任在服务端。如:程序抛出异常 等 |
**状态码大全:**https://cloud.tencent.com/developer/chapter/13553
| Content-Type | 表示该响应内容的类型,如:text/html,application/json |
|---|---|
| Content-Length | 表示该响应内容的长度(字节数) |
| Content-Encoding | 表示该响应压缩算法,如gzip |
| Cache-Control | 指示客户端应如何缓存,如max-age=300表示最多缓存300秒 |
| Set-Cookie | 告诉浏览器为当前页面所在的域设置cookie |