【Hello,前端!】学习 HTTP 协议| 青训营笔记

23 阅读3分钟

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

今天我们接着 HTTP 协议的主题,来详细了解一下 HTTP 协议的原理、报文与实际应用场景。

HTTP

昨天我们也简要介绍了HTTP的定义:

  • HyperText Transfer Protocol——超文本传输协议
  • 应用层协议
  • 基于请求与响应
  • 无状态
  • 无连接
  • 简单灵活易扩展

工作原理

HTTP 协议工作于客户端-服务端架构上。

  1. 用户使用的浏览器就是客户端,通过 URL 向服务端也就是 WEB 服务器发送请求。
  2. Web 服务器根据接收到的请求后,向客户端发送响应信息。
  3. HTTP 默认使用 80 端口。

下面是 HTTP 协议的工作流程: image.png

报文结构

HTTP 请求的报文结构大致可以分为:

  • 请求行
  • 请求头部
  • 请求数据 对应的 HTTP 响应也是三个部分:
  • 响应行
  • 响应头
  • 响应正文

image.png

请求方法

根据数据的请求类型、需要的响应类型等不同,HTTP 协议提供了多种请求方法,对应不同的需求场景。在 HTTP/1.0 定义了三种请求方法:GET、POST 和 HEAD。到 HTTP/1.1 又新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

序号方法描述
1GET请求页面信息,并返回实体主体,也是最常用的请求方法之一。
2HEAD和 GET 请求类似,但是返回的响应中没有具体的内容,一般用于获取报头
3POST将数据提交到指定的资源以用于处理请求(如上传文件和表单)。请求主体中包括了数据。POST要求可以创建新的资源,或者修改现有的资源,也是最常用的请求方法之一。
                                   |

| 4 | PUT | 从客户端向服务器传送数据,并取代指定的内容。 | | 5 | DELETE | 请求服务器删除指定页面。 | | 6 | CONNECT | HTTP/1.1 协议新增的能够将连接改为管道方式的代理服务器的请求方法。 | | 7 | OPTIONS | 客户端请求查看服务器的性能。 | | 8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 | | 9 | PATCH | 对 PUT 方法进行补充,用来对已知资源进行局部更新 。 |

HTTP 状态码

在我们的浏览器开发者工具中 Network 选项卡会显示浏览器发出的网络请求,其中 HTTP 请求都会带有一个状态码,用于表示请求的响应状态。

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了响应状态的类型,后两个数字具体描述了响应状态的具体情况。

状态码类别含义
1**提示信息,表示服务端已经收到请求,需要客户端继续执行操作
2**请求成功,请求的操作被成功接收并处理
3**请求重定向,需要客户端进行进一步的操作以完成请求
4**客户端发生错误,请求包含格式错误或请求无法完成
5**服务器内部错误,服务器在处理请求的过程中发生了错误