HTTP使用指南

104 阅读2分钟

HTTP 超文本传输协议 : 应用层协议 ,基于 TCP 协议(传输层)

  • 简单可扩展
  • 无状态(但可以人为让其携带状态)

1 . 发展历程

0519.png

HTTP/2概述:

0528.png

  • 消息 : 与逻辑请求或响应消息对应的完整的一系列帧。
  • 数据流:已建立的连接内的双向字节流,可以承载一条或者多条消息。
  • HTTP/2 特点 :
    • HTTP /2 建立的连接是永久的,而且只需要每个来源一个连接。
    • 流控制 :阻止发送方 向 接收方发送大量数据的机制。
    • 服务器有主动推送能力。

2 . 协议分析

Method:

0520.png

状态码: 0521.png

0522.png

常用请求头: 0523.png 1.1 缓存请求头 :

0525.png

1.2 缓存请求过程:

0526.png

2. Cookie请求:

0527.png

常用响应头: 0524.png

3 . HTTPS 概述

在HTTP的基础上,加密了

0529.png

0530.png

4 . 场景分析 - 静态资源

0531.png

4.1 常见静态资源部署方案:

  • 部分静态资源走缓存
  • 如果用户是第一次打开页面,没有进行内地缓存,我们也希望快,那么就用到了 CDN(网络分发方式), 通过用户就近性和服务器负载的判断。
  • 上述提到强缓存是一年,那如何让用户拿到最新文件资源呢? 就需要 文件名 + hash,即文件名会改变,就会重新请求!!!

5 . 同源策略

协议名 、域名 、端口号都必须一样 ,才叫同源 ,否则可成为跨域请求 。

5.1 解决方案:

  • cors (跨域资源共享),先发送一个预请求,去获知服务端是否允许我们这次跨域请求 。
  • 代理服务器 ,同源策略是浏览器的安全策略,不是HTTP的
  • Iframe 不太方便

6 . 实战

6.1 浏览器:

0532.png

0533.png

6.2 node:

0534.png

0535.png

7 . 网络优化

  • 采用 http2 ,更快 ,兼容性更大 ,简单实践!!

0536.png

  • 采用 CDN 动态加速

0537.png

  • DNS 预解析 (可在< link > 标签里提前声明)
  • 网络预连接(可在< link > 标签里提前声明)
  • 域名 (域名收敛、域名发散)
  • 压缩(怎样把数据压得更小)
  • https 性能优化(加解密更快)

8 . 网络稳定性

0538.png

9 . 扩展通信方案 WebSocket

0539.png