这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
HTTP 版本
HTTP 0.9
HTTP协议的最初版本,功能简陋,仅支持请求方式 GET,响应只有 HTML 资源。
HTTP 1.0
- 新增了请求方式 POST 和 HEAD
- 有了状态码
- 支持多种文档类型,如图片
HTTP 1.1
-
新增了请求方式 PUT、PATCH、OPTIONS 和 DELETE
-
链接复用,一个 TCP 链接可以允许多个 HTTP 请求
-
缓存
-
内容协商
HTTP 2.0
- 二进制协议
- 压缩 header
- 服务器推送
对称加密
需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥。
非对称加密
与对称加密算法不同,非对称加密需要两个密钥:公钥和私钥。公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
HTTP 缓存
缓存字段
-
Expires:响应头,代表该资源的过期时间
-
Cache-Control:请求/响应头,缓存控制字段,精确控制缓存策略
-
If-Modified-Since:请求头,资源最近修改时间,由浏览器告诉服务器
-
Last-Modified:响应头,资源最近修改时间,由服务器告诉浏览器
-
Etag:响应头,资源标识,由服务器告诉浏览器
-
If-None-Match:请求头,缓存资源标识,由浏览器告诉服务器
强缓存:
-
Expires(HTTP/1.0)
-
Cache-Control(HTTP/1.1)
协商缓存:
- Last-Modified 和 If-Modified-Since(HTTP/1.0)
- ETag 和 If-None-Match(HTTP/1.1)
缓存区别
- 强缓存: 向浏览器缓存查找该请求结果,并根据该结果的缓存规则来决定是否使用该缓存结果的过程
- 协商缓存: 强缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程