这是我参与「第四届青训营 」笔记创作活动的第10天
今天我们接着 HTTP 协议的主题,来详细了解一下 HTTP 协议的原理、报文与实际应用场景。
HTTP
昨天我们也简要介绍了HTTP的定义:
- HyperText Transfer Protocol——超文本传输协议
- 应用层协议
- 基于请求与响应
- 无状态
- 无连接
- 简单灵活易扩展
工作原理
HTTP 协议工作于客户端-服务端架构上。
- 用户使用的浏览器就是客户端,通过 URL 向服务端也就是 WEB 服务器发送请求。
- Web 服务器根据接收到的请求后,向客户端发送响应信息。
- HTTP 默认使用 80 端口。
下面是 HTTP 协议的工作流程:
报文结构
HTTP 请求的报文结构大致可以分为:
- 请求行
- 请求头部
- 请求数据 对应的 HTTP 响应也是三个部分:
- 响应行
- 响应头
- 响应正文
请求方法
根据数据的请求类型、需要的响应类型等不同,HTTP 协议提供了多种请求方法,对应不同的需求场景。在 HTTP/1.0 定义了三种请求方法:GET、POST 和 HEAD。到 HTTP/1.1 又新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求页面信息,并返回实体主体,也是最常用的请求方法之一。 |
2 | HEAD | 和 GET 请求类似,但是返回的响应中没有具体的内容,一般用于获取报头 |
3 | POST | 将数据提交到指定的资源以用于处理请求(如上传文件和表单)。请求主体中包括了数据。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** | 服务器内部错误,服务器在处理请求的过程中发生了错误 |