贡献者: addis
key : value
的形式
HTTP/2
版本。HTTP/3
大概占 10%。
<method> <URI> HTTP/<version>
<Header1>: <value1>
<Header2>: <value2>
...
<HeaderN>: <valueN>
(空行)
<body>
/
代表网站根目录
例子:
GET / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 Chrome/58.0.3029.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
这个 request 没有 body,因为是简单的 GET。
method
有 GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, CONNECT, TRACE
服务器回应的消息有不同的结构
HTTP/<version> <Status> <Reason Phrase>
<Header1>: <value1>
<Header2>: <value2>
...
<HeaderN>: <valueN>
(空行)
<body>
例子:
HTTP/1.1 200 OK
Date: Fri, 29 Dec 2023 12:00:00 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Fri, 29 Dec 2023 10:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 1234
Connection: close
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>Welcome to our website.</p>
</body>
</html>
200 OK
,204 No Content
(响应中没有 body),206 Partial Content
(分块下载或断点续传)
301 Moved Permanently
,302 Found
(临时重定向)。Location
字段用于指明要跳转的 URL。304 Not Modified
重定向已存在的缓冲文件,也称缓存重定 向,用于缓存控制
400 Bad Request
笼统错误。403 Forbidden
禁止访问资源。404 Not Found
资源未找到。
500 Internal Server Error
笼统错误。501 Not Implemented
即将开业,敬请期待。502 Bad Gateway
(网关或代理时返回的错误码,服务器自身工作正常,但最终资源的服务器错误)
503 Service Unavailable
网络服务正忙,请稍 后重试
Host
如 Host: www.A.com
。可以用于区分同一个服务器中的不同网站(只有 IP 的话就区分不了)
Content-Length
回应的数据长度,如 Content-Length: 1000
Connection
常用于客户端要求服务器使用 TCP 持久连接。Connection: keep-alive
。HTTP/1.1 版本的默认连接都是持久连接,但为了兼容老版本的 HTTP。这不是标准字段。
Content-Type
,相应的数据是什么格式,如 Content-Type: text/html; charset=utf-8
Accept
用于请求某种格式的内容,如 Accept: */*
表示都行。
Accept-Encoding
用于请求某种压缩格式:Accept-Encoding: gzip, deflate
。