学习笔记之 What is HTTP?系列1:什么是HTTP?
What is HTTP? | Cloudflare
What is HTTP?
超文本传输协议 (HTTP) 是万维网的基础,是用来加载使用超链接的网页的。HTTP 是一个应用层协议,旨在在联网设备之间传输信息,并在网络协议栈的其他层之上运行。HTTP 的典型流程就是客户端机器向服务器发出请求,然后服务器发送响应消息。
What’s in an HTTP request?
HTTP 请求是互联网通信平台(如 Web 浏览器)请求所需信息来加载网站的方式。
通过 Internet 发出的每个 HTTP 请求都带有一系列编码数据,这些数据携带不同类型的信息。一个典型的 HTTP 请求包含:
- HTTP 版本类型
- 一个网址
- HTTP 方法
- HTTP 请求标头
- 可选的 HTTP 正文。
让我们更深入地探讨这些请求是如何工作的,以及如何使用请求的内容来共享信息。
What’s an HTTP method?
HTTP 方法,有时称为 HTTP 动词,指示 HTTP请求
期望从查询的服务器获得的操作。例如,两种最常见的 HTTP 方法是“GET”和“POST”;“GET”请求 期望返回信息(通常以网站的形式),而“POST”请求 通常表明客户端正在向 Web 服务器提交信息(例如表单信息,例如提交的用户名和密码)。
What are HTTP request headers?
HTTP 标头包含了存储在键值对中的文本信息,它们被包含在每个 HTTP请求(和响应,稍后会详细介绍)中。这些标头传达核心信息,例如客户端正在使用什么浏览器,正在请求什么数据。
来自 Google Chrome 网络 选项卡的 HTTP请求 标头示例:
What’s in an HTTP request body?
请求的正文是包含请求正在传输的信息的“body”的部分。HTTP 请求的正文 包含提交给 Web 服务器的任何信息,例如用户名和密码,或输入到表单中的任何其他数据。
What’s in an HTTP response?
HTTP 响应是 Web 客户端(通常是浏览器)从 Internet服务器接收的响应 HTTP 请求的内容。这些响应根据 HTTP请求中的要求传达有价值的信息。
典型的 HTTP 响应包含:
- HTTP 状态码
- HTTP 响应标头
- 可选的 HTTP 正文
让我们一一道来:
What’s an HTTP status code?
HTTP 状态代码是最常用于指示 HTTP请求是否已成功完成的 3位数的代码。状态码分为以下5类:
- 1xx 与信息相关的
- 2xx 成功
- 3xx 重定向
- 4xx 客户端错误
- 5xx 服务器错误
“xx”指的是 00 到 99 之间的不同数字。
以数字“2”开头的状态代码表示成功。例如,客户端请求网页后,最常见的响应状态码为“200 OK”,表示请求已正确完成。
如果响应以“4”或“5”开头,则表示出现错误,网页将不会显示。以“4”开头的状态代码表示客户端错误(打错URL时遇到“404 NOT FOUND”状态码是很常见的)。以“5”开头的状态码表示问题出在服务器端。状态代码也可以“1”或“3”开头,分别表示信息相关的响应和重定向。
What are HTTP response headers?
与 HTTP请求非常相似,HTTP响应带有传达重要信息的标头,例如在响应正文中发送的数据的语言和格式。
来自 Google Chrome 网络选项卡的 HTTP响应标头示例:
What’s in an HTTP response body?
对“GET”请求的成功的 HTTP响应 通常具有包含请求信息的正文。在大多数 Web 请求中,这是 Web 浏览器将其转换为网页的 HTML 数据。
Can DDoS attacks be launched over HTTP?
请记住,HTTP 是一种“无状态”协议,这意味着每个命令都独立于任何其他命令运行。在原始规范(HTTP 1.0)中,每个 HTTP请求都创建和关闭一个TCP连接。在较新版本的 HTTP 协议(HTTP 1.1 及更高版本)中,持久连接允许多个 HTTP 请求通过持久 TCP 连接传递,从而改善资源消耗。在DoS或DDoS 攻击的上下文中,大量的 HTTP 请求可用于对目标设备发起攻击,这被视为应用层攻击或第7层攻击的一部分。
本作品采用《CC 协议》,转载必须注明作者和本文链接