HTTP实用指南 | 青训营笔记
这是我参与【第四届青训营】笔记创作活动的第5天
一、初识
什么是HTTP
- Hyper Text Transfer Protocol超文本传输协议
- 应用层协议,基于TCP
- 请求响应
- 简单可扩展
- 无状态
二、协议分析
协议发展
HTTP/0.9单行协议
- 请求GET/mypage.html
- 响应只有HTML文档
HTTP/1.0构建可扩展
- 增加了Header
- 有了状态码
- 支持多种文档类型
HTTP/1.1标准化协议
- 链接复用
- 缓存
- 内容协商
HTTP/2更优异的表现
- 二进制协议
- 压缩header
- 服务器推送
HTTP/3草案
报文
Method
状态码
RESTful API
一种API设计风格;REST——Representational State Transfer
(1)每个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”
常用请求头
常用响应头
缓存
强缓存
- Expires,时间戳
- Cache-Control
- 可缓存性
- no-cache:协商缓存验证
- no-store:不使用任何缓存
- 到期
- max-age:单位是秒,存储的最大周期,相对于请求的时间
- 重新验证*重新加载
- must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用
- 可缓存性
协商缓存
- Etag/If-None-Match:资源的特定版本的标识符,类似于指纹
- Last-Modified/If-Modified-Since:最后修改时间
cookie
HTTP/2概述
帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
- 二进制
消息:与逻辑请求或响应消息对应的完整的一系列帧
数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
-
交错发送,接收方重组织
-
HTTP/2连接都是永久的,而且近需要每个来源一个连接
-
流控制:阻止发送方向接收方发送大量数据的机制
-
服务器推送
HTTPS概述
- Hypertext Transfer Protocol Secure
- TSL/SSL加密
- 对称加密:加密和解密都是使用同一个密钥
- 非对称加密:加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)