HTTP实用指南 | 青训营笔记

39 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第7天

1)什么是HTTP

HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范。

  • 特点:
  1. 超文本传输协议(Hyper Text Transfer Protocol)
  2. 应用层协议,基于TCP协议
  3. 请求响应
  4. 简单可扩展
  5. 无状态

2)协议分析

  • 发展:

image.png

  • 报文:

HTTP1.0定义了三种请求方法:GET、POST、HEAD方法。

HTTP1.1新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。

image.png

image.png

3)状态码

  • 200 OK-客户端请求成功
  • 204:服务器成功处理,但未返回内容
  • 301-资源(网页等)被永久转移到其他URL
  • 302-临时跳转
  • 401 Unauthorized-请求未经授权
  • 404-请求资源不存在,可能是输入了错的URL
  • 500-服务器内部发生了不可预期的错误
  • 504 Gateway Timeout-网关或代理的服务器无法在规定时间内获得想要的响应

image.png

常用请求头

image.png

常用响应头

image.png

4)缓存

浏览器每次发起请求时,先在本地缓存中查找结果以及缓存标识,根据缓存标识来判断是否使用本地缓存。如果缓存有效,则使用本地缓存;否则向服务器发起请求并携带缓存标识。根据是否需向服务器发起HTTP请求,将缓存过程划分为两个部分: 强缓存协商缓存,强缓存优先于协商缓存。

image.png

5)HTTP/2

  • 概述:更快、更稳定、更简单
  • 最小单位:帧(frame) ——HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧四朴树的数据流
  • 二进制
  • 消息:与逻辑请求或响应消息对应的完整的一系列帧
  • 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
  • 交错发送,接收方重组织

6)HTTPS

  • HTTPS:Hypertext Transfer Protocol Secure

  • 经过TSL/SSL加密

  • 对称加密:加密和解密都是使用同一个密钥

  • 非对称加密:加密和解密需要使用两个不同的密钥

    • 公钥(public key)
    • 私钥(private key)

image.png

7)场景分析

image.png

登录

  • 登录时有 option 请求:

    option 请求会进行跨域预检验,即 CORS 预检验请求,服务器若接受该跨域请求,则浏览器才继续发起正式请求。

  • 如何保存登录状态?

    1. Session + cookie
    2. JWT(JSON web token)

image.png