这是我参与「第四届青训营 」笔记创作活动的第6天
初识HTTP
什么是HTTP
- 超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可拓展
- 无状态
协议分析
发展
一些概念
帧
HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
消息
与逻辑请求或响应消息对应的完整的一系列帧
HTTP/2:更快、更稳定、更简单
一些特点
- 交错发送,接受方重组织
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止发送方向接收方发送大量数据的机制
- 服务器推送
HTTPS
经过TSL/SSL加密
对称加密:加密和解密都是使用同一个密钥 非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥
报文
分类
GET/POST/PUT/DELETE/HEAD/CONNECT/TRACE/PATCH
状态码
RESTful API
一种API设计风格
- 每一个URI代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过HTTP method , 对服务器端资源进行操作,实现"表现层状态转化"
常用请求头
常用响应头
缓存
强缓存
- expires 时间戳
- cache-control
- 可缓存性
- no-cache:协商缓存验证
- no-store:不使用任何缓存
- 到期
- max-age:单位是秒,存储的最大周期,相当于请求的时间
- 重新验证-重新加载
- must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用
协商缓存
- etag/if-none-match:资源的特定版本的标识符,类似于指纹
- last-modified/if-modified-since:最后修改时间
cookie
场景分析
静态资源
静态资源方案=缓存+CDN+文件名hash
CDN
通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务
登陆页面功能完善
跨域
CORS
代理服务器
同源策略是浏览器的安全策略,不是HTTP的
Iframe
诸多不便