这是我参与「第五届青训营」伴学笔记创作活动的第 5 天
本堂课重点内容
- HTTP 协议的简单介绍
- HTTP 协议的报文结构
详细知识点介绍
HTTP 全称超文本传输协议(Hyper Text Transfer Protocol),是一个基于TCP协议的无状态应用层协议。
HTTP 发展历史
- HTTP/0.9
-
- 只有GET类型的请求
-
- 只能响应HTML文档
- HTTP/1.0
-
- 增加了 Header
-
- 增加了状态码
-
- 支持了多种文档类型
- HTTP/1.1(最常看到)
-
- 连接复用
-
- 提供了缓存支持
-
- 支持内容协商
- HTTP/2
-
- 二进制协议
-
- 支持Header压缩
-
- 增加了服务器推送(Server Push)
常见的 HTTP Methods
请求类型 | 说明 |
---|---|
GET | 请求一个指定的资源。使用GET的请求一般用于获取数据 |
POST | 将实体提交到指定资源,通常导致服务器上的状态变化或副作用 |
PUT | 用于请求有效载荷替换目标资源 |
DELETE | 用于删除指定的资源 |
HEAD | 请求一个与GET请求的响应相同的响应,但没有响应体 |
OPTIONS | 预检请求,用于描述目标资源的通信选项 |
其中最常见的是 GET
请求和 POST
请求,PUT
DELETE
常见于各类 RESTful API 中。而 OPTIONS
请求被称为预检请求,倘若我们尝试为前面的几个请求类型增加自定义Header,浏览器会默认向服务器发出一个OPTIONS请求,用于判断服务器能否接收/处理该header。一般情况下,服务器收到 OPTIONS
请求时,只要返回 204
状态码(No Content)即可。
其中 GET
、HEAD
、OPTIONS
请求不会修改服务器数据
注意:
幂等:同样的请求执行一次或多次的效果是一样的,同时服务器的状态也是一样的,其中
GET
HEAD
OPTIONS
PUT
DELETE
方法是幂等的(因为前三个只是从服务器获取数据,而后面两者是对同一个资源进行整体替换或删除)
常见 HTTP 状态码
1xx - 指示信息 2xx - 请求成功 3xx - 重定向操作 4xx - 客户端错误 5xx - 服务端错误
200
正常响应301
永久重定向302
临时重定向401
未授权403
请求被拒绝404
请求资源不存在500
服务器错误504
网关错误