用于HTTP协议交互的信息被称为HTTP报文。
请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。
HTTP(Hypertext Transfer Protocol)是一种用于在客户端和服务器之间传输数据的协议。HTTP请求报文和响应报文是HTTP通信中的两个关键组成部分,它们用于请求和响应资源,例如网页、图像、视频等。以下是HTTP请求报文和响应报文的基本信息:
HTTP请求报文
HTTP请求报文是客户端发送给服务器以请求特定资源的数据包。它包含以下主要部分:
请求行(Request Line)
请求行包括请求方法、请求的URI(Uniform Resource Identifier)以及HTTP协议版本。常见的请求方法包括GET、POST、PUT、DELETE等。
例如:
GET /index.html HTTP/1.1
请求头部(Request Headers)
请求头部包含关于请求的附加信息,例如User-Agent(客户端标识)、Host(主机名)、Accept(可接受的内容类型)、Cookie等。
例如:
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36
空行
请求头部后面有一个空行,表示请求头的结束。
请求体(Request Body)
对于POST请求等一些特定类型的请求,数据会包含在请求体中。
例如:
username=johndoe&password=secret
HTTP响应报文
HTTP响应报文是服务器发送给客户端以回应请求的数据包。它包含以下主要部分:
状态行(Status Line)
状态行包括HTTP协议版本、状态码以及状态消息。状态码指示了请求的处理结果,例如200表示成功,404表示资源未找到,500表示服务器内部错误等。
例如:
HTTP/1.1 200 OK
响应头部(Response Headers)
响应头部包含关于响应的元信息,例如Server(服务器类型)、Content-Type(响应的内容类型)、Content-Length(响应内容的长度)等。
例如:
Server: Apache/2.4.41 (Unix)
Content-Type: text/html; charset=utf-8
Content-Length: 1234
空行
响应头部后面有一个空行,表示头部的结束。
响应体(Response Body)
响应体包含了实际的响应内容,例如HTML网页、图片、JSON数据等。
例如:
<!DOCTYPE html>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>