HTTP协议的应用场景分析|青训营笔记

144 阅读2分钟

HTTP协议的应用场景分析|青训营笔记

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

一、课程知识要点:

  1. 场景分析-静态资源
  2. 场景分析-登录
  3. 场景分析-跨域
  4. 场景分析-登陆

二、详细知识点介绍:

场景分析-静态资源

缓存策略是怎样的?

  • 强缓存
  • Cache-control:一年

还有什么信息吗?

  • 允许所有域名访问
  • 资源类型:CSS

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

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

场景分析-登录

  • 业务场景
  1. 表单登录
  2. 扫码登录
  • 技术方式
    SSO

为什么有options的请求?
跨域,cross-origin

场景分析-跨域

  • CORS( Cross-Origin Resource Sharing )
  • 预请求:获知服务端是否允许该跨源请求(复杂请求)
  • 相关协议头
  1. Access-Control-Allow-Origin
  2. Access-Control-Expose-Headers
  3. Access-Control-Max-Age
  4. Access-Control-Allow-Credentials
  5. Access-Control-Allow-Methods
  6. Access-Control-Allow-Headers
  7. Access-Control-Request-Method
  8. Access-Control-Request-Headers 
  9. Origin

跨域解决方案

  • CORS
  • 代理服务器
    同源策略是浏览器的安全策略,不是 HTTP的 
  • Iframe 诸多不便

场景分析-登陆

1.向什么地址做了什么动作?

  • 使用POST方法
  • 目标域名sso.toutiao.com
  • 目标path /quick_login/v2/ 2.携带了哪些信息,返回了哪些信息
  • 携带信息
  1. Post body,数据格式为form
  2. 希望获取的数据格式为json
  3. 已有的cookie
  • 返回信息
  1. 数据格式json
  2. cookie的信息

适合使用jwt的场景:

  • 有效期短
  • 只希望被使用一次
    比如,用户注册后发一封邮件让其激活账户,通常邮件中需要有一个链接,这个链接需要具备以下的特性:能够标识用户,该链接具具有时效性(通常只允许几小时之内激活),不能被篡改以激活其他可能的账户,一次性的。这种场景就适合使用jwt
  • 而由于jwt具有一次性的特性。单点登录和会话管理非常不适合用jwt,如果在服务端部署额外的逻辑存储iwt的状态,那还不如使用session。基于session有很多成熟的框架可以开箱即用,但是用jwt还要自己实现逻辑。  

三、课后总结

进行了四个方面的场景分析,每个场景都值得我们仔细分析和研究。