超文本传输协议(HyperText Transfer Protocol,HTTP)是目前使用最广泛的应用层协议

请求/响应

HTTP 协议采用请求/响应模型,利用 TCP/UDP 协议传输文本

长连接(HTTP 1.1)

并非每一次请求都建立一次 TCP 连接,为了节省握手、挥手时间,可以通过长连接提高效率

  1. Keep-Alive: timeout=5s

多路复用(HTTP 2.0)

与 RPC 框架中的多路复用类似,切片混合传输,属于 NIO 模型

RestFul(Representational-State-Transfer)

前后端分离,前端无状态只负责渲染、展示,后端负责状态并提供转换接口

HTTP 方法

  • GET 获取 Representation
  • POST 提交表单(非幂等)
  • PUT 提交表单(幂等)
  • DELETE
  • OPTIONS
  • PATCH

    缓存

    HTTP协议 - 图1

    强缓存

    对于固定数据,如省市县、民族等不需要经常变动的数据,一般设置为强缓存或者直接把数据放前端

  • expires

  • cache-control

    协商缓存

    需要发送一次请求到服务端对比缓存是否失效

  • last-modified

  • etag