HTTP协议 | 青训营笔记

75 阅读4分钟

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

HTTP and the World Wide Web

1.内容、定义、特点

超文本传输协议,可以看作是一个计算机向另一个计算机索取文档的语言

HTTP属于应用层协议(application protocols),四个层级中的最高层TCP层,IP层,硬件层不是它考虑的层面

HTTP是web浏览器和web服务器在Internet上相互通信使用的协议。

它是一个应用层协议,因为它位于协议栈中的TCP层之上,特定的应用程序使用它来相互通信。在这种情况下,应用程序是web浏览器和web服务器。

HTTP是无状态的协议(不会和其他的request进行关联,不会保留任何状态)

基于TCP协议。TCP是客户端(web浏览器)向web服务器发送web元素的请求,如网页和图像。服务器处理请求后,客户端和服务器之间的连接就会断开必须为每个请求建立一个新的连接。大多数协议都是面向连接的。这意味着相互通信的两台计算机在Internet上保持连接的打开状态。但是HTTP不会。在客户端发出HTTP请求之前,必须与服务器建立一个新的连接。

超文本传输协议HTTP (Hypertext Transfer Protocol)是万维网的基础协议,用于通过超文本链接加载网页。

HTTP的典型流程包括客户机向服务器发出请求,然后服务器发送响应消息。

2.HTTP请求包括以下内容:

  1. HTTP version type
  2. a URL
  3. an HTTP method
  4. HTTP request headers
  5. Optional HTTP body.

3.HTTP方法(也称HTTP动作):指的是希望从查询的服务器获得的操作,如GET、POST 、PUT、DELETE等方法

4.HTTP request header:

在键值对中包含了核心信息,如浏览器类型、请求什么数据等信息

Example of HTTP request headers from Google Chrome's network tab:

image-20220731225659951

5.HTTP request body

body指的是信息传输的正文部分,也可以说是数据包的正文部分;

HTTP请求的正文包含提交给web服务器的任何信息,比如用户名和密码,或者表单中输入的任何其他数据。

6.HTTP response

HTTP响应是web客户端(通常是浏览器)从Internet服务器接收到的响应HTTP请求的响应。这些响应基于HTTP请求中所请求的内容来传递有价值的信息。

7.HTTP status code

HTTP状态码是三位数的代码,通常用来表示HTTP请求是否已成功完成

状态码包含下面5种:

  1. 1xx Informational
  2. 2xx Success
  3. 3xx Redirection
  4. 4xx Client Error
  5. 5xx Server Error

状态码 ‘1’ 表示消息响应

状态码 ‘2’ 开头说明请求成功,最常见的就是200, 表示OK的状态码

状态码 ‘3’ 表示重定向

状态码 ‘4’ 意味着客户端出错,(客户端输入了错误的URL,会返回404,表示page not found)

状态码 ‘5’ 意味着 服务器端出现了问题(服务器崩溃,为502)

重要的状态码:

image-20220804162851220

  1. HTTP response header :

    与HTTP请求非常相似,HTTP响应带有传递重要信息的头,比如响应体中发送的数据的语言和格式

    Example of HTTP response headers from Google Chrome's network tab:

    image-20220731230818386

  2. HTTP response body:

对“GET”请求的成功HTTP响应通常有一个包含请求信息的正文。在大多数web请求中,这是HTML数据,web浏览器将其转换成网页。

就是返回给HTTP请求的响应内容

10.是否可以通过HTTP发起DDos(分布式拒绝服务,Distributed Denial of Service,简称DDoS)攻击?

HTTP是一个“无状态”协议,这意味着每个命令独立于任何其他命令运行。

在HTTP协议的较新版本(HTTP 1.1及以上版本)中,持久连接允许多个HTTP请求通过持久TCP连接,从而提高了资源消耗。在DoS / DDoS攻击中,大量的HTTP请求可以用来对目标设备进行攻击,属于应用层攻击或七层攻击。

所以可以通过HTTP发起DDos攻击

11.在客户机和服务器之间有许多实体,统称为代理,它们执行不同的操作,例如充当网关或缓存。

image-20220731232323432

实际上,在浏览器和处理请求的服务器之间有更多的计算机:有路由器、调制解调器等等。由于Web的分层设计,这些都隐藏在网络和传输层中(属于TCP层和IP层)。HTTP在最上面,在应用层