HTTP | 青训营笔记

98 阅读3分钟

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

课堂笔记

课堂重点内容

  1. 初识HTTP
  2. 场景分析

详细知识点介绍

一、什么是HTTP?

HTTP指超文本传输协议,由请求和响应组成,是基于TCP协议的应用层协议,具有客户端或服务器模式均支持、简单快速、灵活、无连接、无状态的特点。

二、HTTP协议分析-报文状态码
  • 1XX:指示信息,表示请求已接收,继续处理

  • 2XX:成功,表示请求已经被成功接收、理解、接收

    • 200:OK-客户端请求成功
  • 3XX:重定向,要完成请求必须进行更进一步的操作

    • 301:资源(网页等)被永久转移到其他URL
    • 302:临时跳转
  • 4XX:客户端错误,请求语法错误或请求无法实现

    • 401:Unauthorized 请求未授权
    • 404:请求资源不存在,可能是输入错误的URL
  • 5XX:服务端错误,服务器未能实现合法的请求

    • 500:服务器内部发生课不可预期的错误
    • 504:Gateway Timeout 网关或者代理的服务器无法在规定时间内获得想要的响应
三、HTTP协议分析-请求头缓存
  1. 强制缓存:浏览器直接使用缓存
    • Expires:时间戳
    • Cache-Control特点:
      • 可缓存性
        • no-cache:协商缓存验证
        • no-store:不适用任何缓存
      • 到期
        • max-age:单位为秒,存储的最大周期,相对于请求的时间
      • 重新验证重新加载
        • must-revalidate:一旦资源到期,在成功向原始服务器验证之前,不能使用
  2. 协商缓存:当请求发起且存在对应缓存时,需要与server端做通信协商决定是否使用缓存
    • Etag/If-None-Match:资源的特定版本的标识符,类似于指纹
    • Last-Modified/If-Modified-Since:最后修改时间
  3. 优先级:
    • 强制缓存 > 协商缓存
    • Etag > Last-Modified
四、场景分析-静态资源

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

  1. 缓存:设置缓存策略
  2. CDN:用户就近性和服务器负载的判断
  3. 文件名hash:每次文件修改时文件名均更新,保证使用最新版本
五、场景分析-跨域

跨域解决方案:

  1. CORS
    • 客户端发起预请求,服务器返回相关跨域许可策略,如果条件匹配,客户端则进一步发送请求
  2. 代理服务器
    • 客户端请求发送给代理服务器,代理服务器再将请求转发给服务器,服务器 将响应返回给代理服务器,代理服务器将响应转发给客户端,同源策略是浏览器的安全策略,不是HTTP的安全策略
  3. Iframe
    • 限制多,不方便
六、场景分析-鉴权
  1. Session+cookie
    • 浏览器提交登录信息,服务器收到信息后验证信息,如果信息正确服务器会在本地生成一个session并存储起来,将session放在set cookie里返回给浏览器,当浏览器再次发起请求时,coolie会连同请求一起发送给服务器,服务器解析识别验证cookie中的信息,返回验证结果
  2. Json web token
    • 浏览器提交请求,服务器生成token返回给浏览器,当浏览器再次发起请求时,token会连同请求一起提交给服务器,服务器解析验证识别token信息后,返回验证结果

课后个人总结

单点登录
  1. 单点登录指在同一账号平台下的多个应用系统中,用户只需登陆一次,即可访问所有相互信任的系统
  2. 单点登录的实现方式一般包括:Cookies,Session同步,分布式Session