http 协议笔记

                     

贡献者: addis

  • 本文处于草稿阶段。

常识

版本改进

图
图 1:http 不同版本

http/1.0

http/2

http/3

<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。

1. 方法

2. 服务器回应

   服务器回应的消息有不同的结构

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>

3. 响应状态码

4. 常见字段

                     

© 小时科技 保留一切权利