HTTP协议的应用场景分析|青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第8天
一、课程知识要点:
- 场景分析-静态资源
- 场景分析-登录
- 场景分析-跨域
- 场景分析-登陆
二、详细知识点介绍:
场景分析-静态资源
缓存策略是怎样的?
- 强缓存
- Cache-control:一年
还有什么信息吗?
- 允许所有域名访问
- 资源类型:
CSS
静态资源方案: 缓存 + CDN +文件名hash
- CDN:
Content Delivery Network。 - 通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务
场景分析-登录
- 业务场景
- 表单登录
- 扫码登录
- 技术方式
SSO
为什么有options的请求?
跨域,cross-origin
场景分析-跨域
- CORS(
Cross-Origin Resource Sharing) - 预请求:获知服务端是否允许该跨源请求(复杂请求)
- 相关协议头
- Access-Control-Allow-Origin
- Access-Control-Expose-Headers
- Access-Control-Max-Age
- Access-Control-Allow-Credentials
- Access-Control-Allow-Methods
- Access-Control-Allow-Headers
- Access-Control-Request-Method
- Access-Control-Request-Headers
- Origin
跨域解决方案
CORS- 代理服务器
同源策略是浏览器的安全策略,不是 HTTP的 Iframe诸多不便
场景分析-登陆
1.向什么地址做了什么动作?
- 使用POST方法
- 目标域名sso.toutiao.com
- 目标path /quick_login/v2/ 2.携带了哪些信息,返回了哪些信息
- 携带信息
- Post body,数据格式为form
- 希望获取的数据格式为
json - 已有的
cookie
- 返回信息
- 数据格式
json - 种
cookie的信息
适合使用jwt的场景:
- 有效期短
- 只希望被使用一次
比如,用户注册后发一封邮件让其激活账户,通常邮件中需要有一个链接,这个链接需要具备以下的特性:能够标识用户,该链接具具有时效性(通常只允许几小时之内激活),不能被篡改以激活其他可能的账户,一次性的。这种场景就适合使用jwt。 - 而由于
jwt具有一次性的特性。单点登录和会话管理非常不适合用jwt,如果在服务端部署额外的逻辑存储iwt的状态,那还不如使用session。基于session有很多成熟的框架可以开箱即用,但是用jwt还要自己实现逻辑。
三、课后总结
进行了四个方面的场景分析,每个场景都值得我们仔细分析和研究。