[ HTTP使用指南 | 青训营笔记]

90 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

什么是HTTP?HTTP是超文本传输协议,是应用层协议,基于TCP协议

HTTP 0.9 :单行协议 请求GET/mypage.html 响应只有HTML文档

HTTP 1.0 :构建可扩展性,增加了Header 增加了状态码 支持多种文档类型

HTTP 1.1 :标准化协议,链接复用,缓存,内容协商

HTTP 2 :二进制协议,压缩header,服务器推送

HTTP 3 :草案

image.png

Method方法有安全的和不安全的 Safe(安全)不会修改服务器的数据的方法,GET HEAD OPTIONS; Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是Idempotent的

image.png

状态码

image.png

常用请求头

image.png

常用响应头

image.png

缓存:缓存分为强缓存和协商缓存

image.png

image.png

cookie

image.png

HTTP/2概述 :更快、更稳、更简单

帧(frame):HTTP/2通信的最小单位,每个帧都会包含帧头,至少也会标识出当前帧所属的数据流。

采用二进制编码,加入新的压缩算法传输效率更高。服务器推送

HTTPS概述

image.png

场景分析—静态资源

image.png

image.png

静态资源方案:缓存 + CDN + 文件名hash

CDN:通过用户就近性和服务器负载的判断CDN确保内容以一种极为高效的方式为用户的请求提供服务

跨域

预请求:获知服务端是否允许该跨域请求(复杂请求)

跨域解决方案

image.png image.png

SSO:单点登录

image.png

AJAX之XHR(XMLHttpRequest) readyState有五种状态:

0:代理被创建但未调用open()方案

1:open()方法已经被调用

2:send()方法已经被调用,并且头部和状态已经可获得

3:下载中;reaponseText属性已经包含部分数据

4:下载操作已完成

AJAX之Fetch:XMLHttpRequest的升级版 使用promise;模块化设计Response、Request、Header对象;通过数据流处理对象,支持分块读取。

网络优化

image.png

稳定性

image.png

webSocket

image.png

QUIC

image.png

网址:juejin.cn/course/byte…