这是我参与「第五届青训营」伴学笔记创作活动的第5天
一.初识HTTP
访问流程:
- 处理输入信息
- 发起请求
- 读取响应
- 渲染
- 页面加载完成
HTTP(Hyper Text Transfer Protocol)超文本传输协议:
- 应用层,基于TCP
- 请求/响应
- 简单可拓展
- 无状态
二.协议分析
Method:
- post将实体提交到指定的资源
- options描述目标资源的通信选项
- safe:get head options
- Idempotent(幂等):同样的请求被执行多次与连续执行多次的效果的一样的,服务器状态也是一样的
状态码:
- 200 OK 客户端请求成功
- 401 请求未经授权
- 404 资源不在,错误的url(4XX为客户端错误)
- 5XX为服务器错误
RESTful API: 一种API设计风格:
- 每个URL代表一种资源
- 客户端和服务器之间传递这种资源的某种表现层
- 客户端通过HTTP method,对服务器资源进行操作,实现“表现层状态转换”
常用请求头:
- Cache-Type:指定请求和响应遵循的缓存机制
- Cookie
- Origin:访问源头端口请求
数据加密
对称加密
非对称加密
三.应用场景分析
静态资源方案: 缓存+CDN+文件名hash
CDN(Content Delivery Network):通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务
跨域:预请求(复杂请求)-相关协议 跨域解决方案
SSO(单点登录)
四.发起HTTP协议
浏览器: 内置AJAX之XHR 利用XHR对象
readyState(4)完成
node:
标准库:HTTP(S)功能受限,默认,不需要依赖环境
常用请求库:axios 支持浏览器、nodejs环境,有丰富的拦截器
用户体验
速度提升:
H2更快
域名收敛发散策略
HTTPS加解密处理优化
稳定性提升:
重试机制(慎重,容易让情况更加恶化)
缓存
数据安全