HTTP协议 | 青训营笔记

24 阅读2分钟

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

本堂课重点内容

  1. HTTP 协议的简单介绍
  2. HTTP 协议的报文结构

详细知识点介绍

HTTP 全称超文本传输协议(Hyper Text Transfer Protocol),是一个基于TCP协议的无状态应用层协议。

HTTP 发展历史

  • HTTP/0.9
    • 只有GET类型的请求
    • 只能响应HTML文档
  • HTTP/1.0
    • 增加了 Header
    • 增加了状态码
    • 支持了多种文档类型
  • HTTP/1.1(最常看到)
    • 连接复用
    • 提供了缓存支持
    • 支持内容协商
  • HTTP/2
    • 二进制协议
    • 支持Header压缩
    • 增加了服务器推送(Server Push)

常见的 HTTP Methods

请求类型说明
GET请求一个指定的资源。使用GET的请求一般用于获取数据
POST将实体提交到指定资源,通常导致服务器上的状态变化或副作用
PUT用于请求有效载荷替换目标资源
DELETE用于删除指定的资源
HEAD请求一个与GET请求的响应相同的响应,但没有响应体
OPTIONS预检请求,用于描述目标资源的通信选项

其中最常见的是 GET 请求和 POST 请求,PUT DELETE 常见于各类 RESTful API 中。而 OPTIONS 请求被称为预检请求,倘若我们尝试为前面的几个请求类型增加自定义Header,浏览器会默认向服务器发出一个OPTIONS请求,用于判断服务器能否接收/处理该header。一般情况下,服务器收到 OPTIONS 请求时,只要返回 204 状态码(No Content)即可。

其中 GETHEADOPTIONS 请求不会修改服务器数据

注意:

幂等:同样的请求执行一次或多次的效果是一样的,同时服务器的状态也是一样的,其中 GET HEAD OPTIONS PUT DELETE 方法是幂等的(因为前三个只是从服务器获取数据,而后面两者是对同一个资源进行整体替换或删除)

常见 HTTP 状态码

1xx - 指示信息 2xx - 请求成功 3xx - 重定向操作 4xx - 客户端错误 5xx - 服务端错误

  • 200 正常响应
  • 301 永久重定向
  • 302 临时重定向
  • 401 未授权
  • 403 请求被拒绝
  • 404 请求资源不存在
  • 500 服务器错误
  • 504 网关错误