HTTP | 青训营笔记

38 阅读2分钟

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

笔记内容

  • HTTP

    • 初识

      • TCP/IP四层网络模型:应用层,传输层,网络层,网络接口层
      • OSI七层:应用层,表示层,会话层;传输层;网络层;数据链路层;物理层
      • HTTP超文本传输协议Hyper Text Transfer Protocol
    • 分析

      • 状态码
      • 方法

        • 种类

          • get
          • post
          • put
          • delete
          • head
          • connect
          • options
          • trace
          • patch
        • 特性

          • 安全:不会修改服务器数据的方法。get,head,options
          • 幂等:同样的请求执行多次效果是一样的
      • 常见字段

        • Host域名
        • 服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度。
        • Connection 字段最常用于客户端要求服务器使用 HTTP 长连接机制,以便其他请求复用。
        • Content-Type 字段用于服务器回应时,告诉客户端,本次数据是什么格式。如Content-Type: text/html; charset=utf-8
        • Content-Encoding 字段说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式
      • RESTful API
      • 请求报文
      • 相应报文
      • 缓存

        • 强缓存
        • 协商缓存
        • 流程图
      • cookie
    • 发展

      • HTTP2

        • 对比HTTP/1.1

          • 兼容
          • 只在应用层做了改变,把HTTP分解成了语义和语法两个部分,语义和1.1保持一致,语法做出改变
        • 头部压缩

          • 原来header存在的问题

            • 固定字段需要压缩
            • 重复数据
            • ASCII编码
          • 使用HPACK算法

            • 包括静态字典,动态字典,压缩算法
            • 两端都建立和维护字典
        • 二进制帧

          • 将 HTTP/1 的文本格式改成二进制格式传输数据
        • 并发传输

          • 多条stream复用一条tcp连接
        • 服务器主动推送资源
      • HTTPS
    • 场景分析

      • 静态资源

        • 不一定发起了请求,来自缓存
        • 方案
          image.png
        • 文件名hash保证了想更新就会请求更新的资源。新的hash不一样了,就会请求新的
      • 登录-跨域

        • 协议,域名,端口
        • https默认端口443,http80
        • 鉴权

          • session+cookie
          • jwt
        • 单点登录sso
      • 用户体验

        • 网络优化
        • 稳定性
      • 扩展

参考文章

字节视频

小林coding xiaolincoding.com/network/2_h…