这是我参与「第四届青训营 」笔记创作活动的第四天!
本篇笔记的基本内容
- HTTP的基本特点与结构
- HTTP的使用场景
- 了解一些其他的协议
HTTP的基本概念
什么是HTTP
Hyper Text Transfer Protocol(超文本传输协议),是基于传输层TCP协议的一个应用层协议,可以承载多种体裁(如HTML,CSS,JS,Web API等),是一个简单可扩展的协议。
每一个HTTP请求都分为请求和响应两部分。HTTP协议是一个无状态的协议,每一个请求之间都是孤立的。
HTTP协议分析
Method
- GET:用于获取数据
- POST:将实体提交到指定的资源,一般用于第一次提交数据
- PUT:替换目标资源的当前表示,一般用于更新数据
- DELETE:删除指定资源
- HEAD:请求一个与GET请求相同的响应,但没有响应体(只返回相应头,不返回信息),用于检查一个文件是否存在。
- CONNECT:建立一个到由目标资源表示的服务器的隧道
- OPTIONS:获取目的资源所支持的通信选项,检测某个请求在对应的服务器中都支持哪种请求方法
- TRACE
- PATCH:用于更新局部资源
状态码
| 状态码 | 表示信息 |
|---|---|
| 1xx | 指示信息,表示请求已收到,继续处理 |
| 2xx | 表示请求已被成功接收、理解、接受 |
| 3xx | 重定向,要完成请求必须进行进一步操作 |
| 4xx | 客户端错误,请求有语法错误或请求无法实现 |
| 5xx | 服务端错误,服务器未能实现合法请求 |
常见状态码
| 状态码 | 表示信息 |
|---|---|
| 200 | OK,表示请求成功 |
| 301 | 资源被永久转移到其他URL |
| 302 | 临时跳转 |
| 401 | 请求未经授权 |
| 404 | NOT FOUND,请求资源不存在,可能输入URL错误 |
| 500 | 服务器内部发生不可预期的错误 |
| 504 | BAD GATEWAY,网关或代理服务器无法在规定时间内获得响应 |
HTTPS
HTTPS(Hypertext Transfer Peotocol Secure)协议是由 HTTP 加上 TLS / SSL 协议构建的可进行加密传输、身份认证的网络协议。
- 对称加密:加密和解密使用同一个公钥
- 非对称加密:加密和解密使用不同的密钥,公钥(public key)和私钥(private key)
场景分析
静态资源
静态资源一般采用缓存策略。
先判断文件是否过期,如果没有过期则触发强制缓存策略,用户发送的请求会直接从客户端缓存中获取,不发送请求到服务器,不与服务器发生交互行为,浏览器直接读取本地文件,http状态码为200。
若文件过期,则触发协商缓存,发起请求向服务器询问该文件是否有更新,没有则使用本地缓存,有责返回新的文件。并且都会更新新的过期时间。
登录
请求
- 方法:POST
- 目标域名
- 目标文件路径
返回
- 携带信息
- post body,有数据格式
- 希望获取的数据格式
- 已有的cookie
- 返回信息
- 返回希望获取的数据格式
- cookie的信息
其他协议
- WebSocket
实时性要求高,可以用于实时聊天。URL使用 ws:// 或 wss:// 等开头 - QUIC