HTTP 超文本传输协议 : 应用层协议 ,基于 TCP 协议(传输层)
- 简单可扩展
- 无状态(但可以人为让其携带状态)
1 . 发展历程
HTTP/2概述:
- 消息 : 与逻辑请求或响应消息对应的完整的一系列帧。
- 数据流:已建立的连接内的双向字节流,可以承载一条或者多条消息。
- HTTP/2 特点 :
- HTTP /2 建立的连接是永久的,而且只需要每个来源一个连接。
- 流控制 :阻止发送方 向 接收方发送大量数据的机制。
- 服务器有主动推送能力。
2 . 协议分析
Method:
状态码:
常用请求头:
1.1 缓存请求头 :
1.2 缓存请求过程:
2. Cookie请求:
常用响应头:
3 . HTTPS 概述
在HTTP的基础上,加密了
4 . 场景分析 - 静态资源
4.1 常见静态资源部署方案:
- 部分静态资源走缓存
- 如果用户是第一次打开页面,没有进行内地缓存,我们也希望快,那么就用到了
CDN(网络分发方式), 通过用户就近性和服务器负载的判断。 - 上述提到强缓存是一年,那如何让用户拿到最新文件资源呢? 就需要
文件名 + hash,即文件名会改变,就会重新请求!!!
5 . 同源策略
协议名 、域名 、端口号都必须一样 ,才叫同源 ,否则可成为跨域请求 。
5.1 解决方案:
- cors (跨域资源共享),先发送一个预请求,去获知服务端是否允许我们这次跨域请求 。
- 代理服务器 ,
同源策略是浏览器的安全策略,不是HTTP的 - Iframe 不太方便
6 . 实战
6.1 浏览器:
6.2 node:
7 . 网络优化
- 采用 http2 ,更快 ,兼容性更大 ,简单实践!!
- 采用 CDN 动态加速
- DNS 预解析 (可在< link > 标签里提前声明)
- 网络预连接(可在< link > 标签里提前声明)
- 域名 (域名收敛、域名发散)
- 压缩(怎样把数据压得更小)
- https 性能优化(加解密更快)