初识HTTP协议 | 青训营

88 阅读1分钟

初识HTTP协议

课程链接: juejin.cn/course/byte…

1 初识

OSI Reference Model

TCP/IP Conceptual Layer

  • HTTP Hyper Text Transfer Protocol超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可扩展
  • 无状态

2 协议分析

2.3 发展

2.3.1 HTTP/2概述

更快、更稳定、更简单

  • 帧(frame):http/2通信的最小单位,每个
  • 消息
  • 数据流
  • 连接永久
  • 流控制
  • 服务器推送

2.3.2 HTTPS概述

经过TSL/SSL加密

  • 对称加密
  • 非对称加密 公钥、私钥

2.4 报文

  • Request & Resoponse

  • Method

      GET
      POST
      PUT
      DELETE
      HEAD
      CONNECT
      OPTIONS
      TRACE
      PATCH
    

    Safe安全的, 不会修改服务器数据的方法 GET\HEAD\OPTIONS

    Idempotent幂等, 同样的请求被执行一次与连续执行多次的效果是一样的,服务器状态也是一样的,所有safe都是idempotent GET\HEAD\OPTION\PUT\DELETE

  • 状态码 Status Code

      200 OK
      301:永久重定向
      302:临时跳转
      401:未经授权 Unauthorized
      403:
      404:资源不存在
      500:不可预期错误
      504:Gateway Timeout
    
  • RESTful API

  • 常用请求头

      Accept 接收类型
      Content-Type
      Cache-Control 指定请求和响应遵循的缓存机制, 如no-cache
      If-Modified-Since
      Expires 缓存控制
      Max-age 代笔资源在本地缓存多少秒
      If-None-Match 对应服务端的ETag
      Cookie
      Referer
      Origin
      User-Agent
    
  • 常用响应头

      Content-Type
      Cache-Control
      Last-Modefied
      Expires
      Max-age
      ETag
      Set-Cookie
      Server
      Access-Control-Allow-Origin
    
  • 缓存

      强缓存
          A
      协商缓存
          B
    
  • Cookie

    Set-Cookie-response Name=value Expires=Data Path=path Domin=domin secure HttpOnly SameSite=[None|Strict|Lax]

3 常见场景

3.1 静态资源

3.2 登录

4 实际应用

4.1 浏览器/nodejs

4.2 常用库

5 了解更多

5.1 WebSocket

5.2 QUIC