HTTP
- 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
- 特点:
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型的:一次请求对应一次响应
- HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
- 缺点:多次请求间不能共享数据。
- 优点:速度快
请求协议
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| GET /brand/findAll?name=OPPO&status=1 HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...
POST /brand HTTP/1.1 Accept: application/json, text/plain, */* Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Content-Length: 161 Content-Type: application/json;charset=UTF-8 Cookie: Idea-8296eb32=841b16f0-0cfe-495a-9cc9-d5aaa71501a6; JSESSIONID=0FDE4E430876BD9C5C955F061207386F Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/...
{ "status": 1, "brandName": "黑马", "companyName": "黑马程序员", "id": "", "description": "黑马程序员" }
|
响应协议
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| HTTP/1.1 200 OK Content-Type: application/json Transfer-Encoding: chunked Date: Tue, 10 May 2022 07:51:07 GMT Keep-Alive: timeout=60 Connection: keep-alive
[ { "id": 1, "brandName": "阿里巴巴", "companyName": "腾讯计算机系统有限公司", "description": "玩玩玩" } ]
# 响应行: HTTP 协议版本、状态码(200 OK) # 响应头: 响应的元数据信息,包括内容类型、传输编码、连接状态等 # 响应体: 实际的返回数据,JSON 格式,包含品牌的相关信息
|
这个代码将图片中的 HTTP 响应信息完整地转化为代码,包含响应行、响应头和响应体的内容。
HTTP 状态码
状态码 |
含义 |
1xx |
响应中 - 临时状态码,表示请求已经接收,告诉客户端应该继续请求或者忽略它如果它已经完成。 |
2xx |
成功 - 表示请求已经成功接收,处理已完成。 |
3xx |
重定向 - 重定向到其他地方;让客户端再发起一次请求以完成整个处理。 |
4xx |
客户端错误 - 处理发生错误,责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等。 |
5xx |
服务器错误 - 处理发生错误,责任在服务端。如:程序抛出异常等。 |
HTTP 响应头
响应头 |
说明 |
Content-Type |
表示该响应内容的类型,例如 text/html ,application/json 。 |
Content-Length |
表示该响应内容的长度(字节数)。 |
Content-Encoding |
表示响应压缩算法,例如 gzip 。 |
Cache-Control |
指示客户端应如何缓存,例如 max-age=300 表示可以最多缓存 300 秒。 |
Set-Cookie |
告诉浏览器为当前所在的域设置 cookie 。 |
Web服务器
- Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷
- 主要功能是"提供网上信息浏览服务"。