这是我参与「第四届青训营 」笔记创作活动的第7天
1)什么是HTTP
HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范。
- 特点:
- 超文本传输协议(Hyper Text Transfer Protocol)
- 应用层协议,基于TCP协议
- 请求响应
- 简单可扩展
- 无状态
2)协议分析
- 发展:
- 报文:
HTTP1.0定义了三种请求方法:GET、POST、HEAD方法。
HTTP1.1新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。
3)状态码
- 200 OK-客户端请求成功
- 204:服务器成功处理,但未返回内容
- 301-资源(网页等)被永久转移到其他URL
- 302-临时跳转
- 401 Unauthorized-请求未经授权
- 404-请求资源不存在,可能是输入了错的URL
- 500-服务器内部发生了不可预期的错误
- 504 Gateway Timeout-网关或代理的服务器无法在规定时间内获得想要的响应
常用请求头
常用响应头
4)缓存
浏览器每次发起请求时,先在本地缓存中查找结果以及缓存标识,根据缓存标识来判断是否使用本地缓存。如果缓存有效,则使用本地缓存;否则向服务器发起请求并携带缓存标识。根据是否需向服务器发起HTTP请求,将缓存过程划分为两个部分: 强缓存和协商缓存,强缓存优先于协商缓存。
5)HTTP/2
- 概述:更快、更稳定、更简单
- 最小单位:帧(frame) ——HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧四朴树的数据流
- 二进制
- 消息:与逻辑请求或响应消息对应的完整的一系列帧
- 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
- 交错发送,接收方重组织
6)HTTPS
-
HTTPS:Hypertext Transfer Protocol Secure
-
经过TSL/SSL加密
-
对称加密:加密和解密都是使用同一个密钥
-
非对称加密:加密和解密需要使用两个不同的密钥
- 公钥(public key)
- 私钥(private key)
7)场景分析
登录
-
登录时有 option 请求:
option 请求会进行跨域预检验,即 CORS 预检验请求,服务器若接受该跨域请求,则浏览器才继续发起正式请求。
-
如何保存登录状态?
- Session + cookie
- JWT(JSON web token)