前端入门:快速了解HTTP|青训营笔记

82 阅读3分钟

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

初始HTTP

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

协议分析

发展

  1. HTTP/0.9

    • 请求GET/mypage.html
    • 响应只有HTML文档
    • 单行协议
  2. HTTP/1.0

    • 构建可扩展性
    • 增加了Header
    • 有了状态码
    • 支持多种文档类型
  3. HTTP/1.1

    • 链接复用
    • 缓存
    • 内容协商
    • 标准化协议
  4. HTTP/2

    • 更优异的表现
    • 二进制协议
    • 压缩header
    • 服务器推送
  5. HTTP/3

    • 草案

报文

  1. Method
  • GET:请求一个指定资源的表示形式使用GET的请求应该只被用于获取数据
  • POST:用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
  • PUT:用请求有效载荷替换目标资源的所有当前表示
  • DELETE:删除指定的资源
  • HEAD:请求一个与GET请求的响应相同的响应,但没有响应体
  • CONNECT:建立一个到由目标资源标识的服务器的隧道。
  • OPTIONS:用于描述目标资源的通信选项。
  • TRACE:沿着到目标资源的路径执行一个消息环回测试。
  • PATCH:用于对资源应用部分修改。

safe:不会修改服务器的数据的方法

Idempotent:同样的请求被执行一次与连续多次的效果是一样的,服务器的状态也是一样的

  1. 状态码

用来标识响应的状态;由三个十进制数字组成;第一位十进制数字定义了状态码的类型。

http状态码分为5种

  • 1** 信息,服务器收到请求,要求请求者继续执行操作

  • 2** 成功,操作被成功接收并处理

    • 200:OK;请求成功,一般用于GET和POST请求
    • 201:Greated;已创建,成功请求并创建新的资源,用于POST或PUT请求
  • 3** 重定义,需要进一步的操作以完成请求

    • 301:永久移动,请求的资源已被永久的移动到来新的俩
    • 302:临时移动,和301类似,但只是临时
    • 304:未修改,不会返回任何资源,客户端会缓存访问过的资源
  • 4** 客户端错误,请求包含语法错误或无法完成请求

    • 400:语义有误,请求参数有误:请求无法被处理
    • 401:当前请求需要用户验证
    • 403:服务器已理解请求,但拒绝执行
    • 404:服务器无法根据请求找到资源(网页)
    • 408:请求超时
  • 5** 服务器错误,服务器再处理请求的过程中发生了错误

    • 500:服务器内部错误,无法完成请求
    • 501:服务器不支持该请求方法,只有GET和HEAD请求方法是要求每个服务器必须支持的。
    • 503:由于超载或系统维护,服务器暂时的无法处理客户端的请求
  1. 请求头

请求头:用于描述客户端的基本信息,并告知服务器。

  • User-Agent:用于说明当前浏览器类型
  • Content-Type:用于描述发送到服务器的数据格式
  • Accept:用于描述客户端能够接收说明类型的返回内容
  • Accept-La:用于描述客户端期望接收那种人类语音的文本内容。
  • Host:要请求的服务器域名
  • Connection:客户端与服务器的连接方式
  • Content-Length:用于描述请求体的大小
  • Accept-Encoding:客户端可接收的内容压缩编码形式
  • 更多请求头字段的描述:MDN官方文档

常见场景

  1. 静态资源
  2. 登录
  • 业务场景:表单登录、扫码登录
  • 技术方式:SSO

\