[ HTTP应用场景分析 | 青训营笔记]

85 阅读2分钟

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

一、场景分析-静态资源 

静态资源方案:缓存 + CDN + 文件名hash(打包时对文件名根据版本号或一些内容hash) (1)CDN内容分发网络 

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

 二、场景分析-登录 

1、表单登录 跨域,

复杂请求有options预请求 

 相关协议头 

Accees-Control-Allow-Origin

Accees-Control-Allow-Credentials 

Accees-Control-Allow-Method 

Accees-Control-Allow-Headers 

Accees-Control-Request-Method 

Accees-Control-Request-Headers 

Accees-Control-Expose-Headers 

Accees-Control-Max-Age 

 *跨域解决方案 

cors 

代理服务器(同源策略是浏览器的安全策略,不是HTTP的) 

Iframe 

 2、登录请求向什么地址做了什么动作? 

(1)使用POST方法 

(2)目标域名 sso.toutiao.com 

(3)目标path /quick_login/v2/ 

 3、登录携带了哪些信息,返回了哪些信息 

(1)携带信息 post body数据格式为form 希望获取的数据格式为json 已有的cookie 

(2)返回信息 数据格式json 种cookie的信息 

 4、为什么能记住登录态 

鉴权 

(1)Session + Cookie 

服务器生成一个Session放在set-cookie给客户端,客户端保存在cookie下次请求时一起带上给服务器识别 

(2)JWT(JSON web token)

服务器生成token给浏览器,浏览器下次请求把token放在请求头Authorization中发给服务器,服务器解析验证后响应。 

 5、SSO单点登录

 6、实战 

I、AJAX之xhr 

II、AJAX之fetch 使用promise 模块化设计 通过数据流处理对象,支持分块读取 node

III、标准库:HTTP/HTTPS 默认模块,无需安装其他依赖 功能有限 

IV、常用请求库:axios 支持浏览器、node环境 支持拦截 

8、网络优化 

(1)http2优势、兼容性、简单实践、http3 

(2)CDN动态加速 适用场景 缓存(回源策略、缓存刷新、缓存预热、缓存击穿) 实践 

(3)DNS预解析 

(4)网络预连接 

(5)域名(域名收敛、发散) 

(6)压缩(gzip\brotil)

 (7)https性能优化(加密解密)

 9、稳定性 

重试机制(超时、错误) 

缓存 

数据安全(HTTPS、劫持) 

* 重试是保证稳定的有效手段,但要防止加剧恶劣情况

*缓存合理使用,作为最后一道防线 

 10、通信方式 

WebSocket 全双工通讯的网络技术 

典型场景:实时性要求高、聊天室 url使用ws://或wss://开头 

 11、队头阻塞 基于UDP协议的QUIC 

(1)0 RTT建联(首次除外) 类似TCP的可靠传输 类似TLS的加密传输 用户空间的拥塞控制 支持HTTP2的基于流的多路复用,但没有TCP的HOL队头阻塞问题 前向纠错