这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
什么是HTTP?HTTP是超文本传输协议,是应用层协议,基于TCP协议
HTTP 0.9 :单行协议 请求GET/mypage.html 响应只有HTML文档
HTTP 1.0 :构建可扩展性,增加了Header 增加了状态码 支持多种文档类型
HTTP 1.1 :标准化协议,链接复用,缓存,内容协商
HTTP 2 :二进制协议,压缩header,服务器推送
HTTP 3 :草案
Method方法有安全的和不安全的 Safe(安全)不会修改服务器的数据的方法,GET HEAD OPTIONS; Idempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有safe的方法都是Idempotent的
状态码
常用请求头
常用响应头
缓存:缓存分为强缓存和协商缓存
cookie
HTTP/2概述 :更快、更稳、更简单
帧(frame):HTTP/2通信的最小单位,每个帧都会包含帧头,至少也会标识出当前帧所属的数据流。
采用二进制编码,加入新的压缩算法传输效率更高。服务器推送
HTTPS概述
场景分析—静态资源
静态资源方案:缓存 + CDN + 文件名hash
CDN:通过用户就近性和服务器负载的判断CDN确保内容以一种极为高效的方式为用户的请求提供服务
跨域
预请求:获知服务端是否允许该跨域请求(复杂请求)
跨域解决方案
SSO:单点登录
AJAX之XHR(XMLHttpRequest) readyState有五种状态:
0:代理被创建但未调用open()方案
1:open()方法已经被调用
2:send()方法已经被调用,并且头部和状态已经可获得
3:下载中;reaponseText属性已经包含部分数据
4:下载操作已完成
AJAX之Fetch:XMLHttpRequest的升级版 使用promise;模块化设计Response、Request、Header对象;通过数据流处理对象,支持分块读取。
网络优化
稳定性
webSocket
QUIC