【基础】HTTP协议基础
发布时间: 2024-06-28 01:14:18 阅读量: 51 订阅数: 90
![【基础】HTTP协议基础](https://softuni.org/wp-content/uploads/2022/07/HTTP-Request-Methods-e1657276635747.png)
# 2.1 HTTP请求报文结构
HTTP请求报文由三部分组成:请求行、请求头和请求体。
### 2.1.1 请求行
请求行是HTTP请求报文的第一行,包含三个字段:
- 方法:指定请求操作,如GET、POST、PUT、DELETE等。
- URI:指定请求资源的统一资源标识符(Uniform Resource Identifier)。
- HTTP版本:指定HTTP协议版本,如HTTP/1.1或HTTP/2。
```
GET /index.html HTTP/1.1
```
### 2.1.2 请求头
请求头是请求行之后的若干行,包含请求的其他信息,如:
- Host:指定请求资源所在的主机名或IP地址。
- User-Agent:指定发起请求的客户端软件信息。
- Accept:指定客户端可以接受的响应内容类型。
- Content-Type:指定请求体的数据格式。
# 2. HTTP协议的请求和响应
HTTP协议是一种请求-响应协议,客户端向服务器发送请求,服务器对请求进行处理并返回响应。请求和响应报文都是由一系列文本行组成的,其中包含了有关请求或响应的信息。
### 2.1 HTTP请求报文结构
HTTP请求报文由三部分组成:请求行、请求头和请求体。
#### 2.1.1 请求行
请求行是请求报文的第一行,包含了以下信息:
- 请求方法:指定客户端请求服务器执行的操作,如GET、POST、PUT、DELETE等。
- 请求URI:指定请求的资源,如文件的路径或API的端点。
- HTTP版本:指定HTTP协议的版本,如HTTP/1.1或HTTP/2。
**示例请求行:**
```
GET /index.html HTTP/1.1
```
#### 2.1.2 请求头
请求头是一系列以键值对形式出现的行,包含了有关请求的其他信息,如:
- Host:指定请求的主机名或IP地址。
- User-Agent:指定客户端的类型和版本。
- Accept:指定客户端可以接受的响应内容类型。
- Content-Type:指定请求体的数据类型。
- Content-Length:指定请求体的大小(字节)。
**示例请求头:**
```
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Content-Type: application/json
Content-Length: 100
```
#### 2.1.3 请求体
请求体是请求报文中包含实际请求数据的可选部分。请求体的数据类型由Content-Type请求头指定。
**示例请求体:**
```json
{
"name": "John Doe",
"age": 30
}
```
### 2.2 HTTP响应报文结构
HTTP响应报文由三部分组成:响应行、响应头和响应体。
#### 2.2.1 响应行
响应行是响应报文的第一行,包含了以下信息:
- HTTP版本:指定HTTP协议的版本。
- 状态码:指定请求处理的结果,如200(成功)、404(未找到)等。
- 状态消息:对状态码的简要描述。
**示例响应行:**
```
HTTP/1.1 200 OK
```
#### 2.2.2 响应头
响应头是一系列以键值对形式出现的行,包含了有关响应的其他信息,如:
- Content-Type:指定响应体的数据类型。
- Content-Length:指定响应体的大小(字节)。
- Server:指定处理请求的服务器软件。
- Date:指定响应发送的时间。
**示例响应头:**
```
Content-Type: text/html
Content-Length: 1024
Server: Apache/2.4.41 (Ubuntu)
Date: Mon, 10 Oct 2022 15:00:00 GMT
```
#### 2.2.3 响应体
响应体是响应报文中包含实际响应数据的可选部分。响应体的数据类型由Content-Type响应头指定。
**示例响应体:**
```html
<html>
<head>
<title>Example Page</title>
</head>
<body>
```
0
0