HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,它定义了客户端和服务器之间进行通信的规范。HTTP 请求和响应的结构主要包括三个部分:起始行(Start Line)、头部(Headers)和消息体(Message Body)。
HTTP 请求结构:
-
起始行(Start Line):
- 包含请求方法、请求的URI(Uniform Resource Identifier)和协议版本。
bashCopy code GET /example/index.html HTTP/1.1 -
头部(Headers):
- 包含多个键值对,每个键值对占一行,用来传递额外的信息,如用户代理、主机信息、内容类型等。
Host: www.example.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3 -
空行:
- 用于分隔头部和消息体。
(空行) -
消息体(Message Body):
- 包含请求的数据,对于 GET 请求通常为空,而对于 POST 请求等包含用户提交的表单数据、JSON 数据等。
key1=value1&key2=value2
HTTP 响应结构:
-
起始行(Start Line):
- 包含协议版本、状态码和状态消息。
HTTP/1.1 200 OK -
头部(Headers):
- 与请求头部类似,包含服务器信息、内容类型、响应时间等。
Content-Type: text/html; charset=utf-8 Server: Apache -
空行:
- 用于分隔头部和消息体。
(空行) -
消息体(Message Body):
- 包含响应的实际数据,可以是 HTML 页面、JSON 数据等。
<!DOCTYPE html> <html> <head> <title>Example Page</title> </head> <body> <h1>Hello, World!</h1> </body> </html>
这是一个简化的描述,实际上 HTTP 请求和响应的结构可能更加复杂,特别是在处理文件上传、压缩、分块传输等场景时。但上述描述涵盖了 HTTP 最基本的结构。