📌  相关文章
📜  RFC 7231 (1)

📅  最后修改于: 2023-12-03 14:47:05.241000             🧑  作者: Mango

RFC 7231介绍

RFC 7231是HTTP协议的一部分,它定义了HTTP/1.1协议中的请求方法、状态码、首部字段、实体内容以及与缓存相关的内容。

请求方法

HTTP/1.1中定义了七种请求方法,分别为GET、HEAD、POST、PUT、DELETE、CONNECT和OPTIONS。这些方法用于请求服务器执行特定的操作。

状态码

HTTP/1.1中定义了五个状态码类别,分别为1xx、2xx、3xx、4xx和5xx。每个状态码类别定义了一组相关的状态码,用于指示请求的处理结果。

其中,2xx表示请求已成功处理,3xx表示需要重定向,4xx表示客户端请求有误,5xx表示服务器端处理出错。

首部字段

HTTP/1.1协议中定义了多种首部字段,用于在请求和响应报文中传递元数据信息。这些信息可以包括用户代理、服务器、缓存或连接选项等。

常见的首部字段包括User-Agent、Server、Accept、Content-Type、Content-Length等。

实体内容

HTTP/1.1协议中定义了多种实体内容类型,用于传递请求或响应中的数据。根据Content-Type首部字段的值来确定实体内容类型。

常见的实体内容类型包括text/plain、text/html、image/png、application/json等。

缓存机制

HTTP/1.1协议中定义了多种缓存机制,用于在客户端和服务器端之间缓存请求和响应数据。这些机制可以减少网络传输的数据量,降低响应延迟和服务器负载。

常见的缓存机制包括Expires、Cache-Control、ETag、If-Modified-Since等。

以上就是RFC 7231中HTTP/1.1协议的一些基础知识介绍。

代码示例

以下是一个HTTP/1.1请求报文的示例。

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

以上是一个HTTP/1.1响应报文的示例。

HTTP/1.1 200 OK
Date: Wed, 11 Dec 2019 14:38:37 GMT
Server: Apache/2.4.39 (Unix) OpenSSL/1.1.1b
Last-Modified: Mon, 02 Dec 2019 14:52:38 GMT
ETag: "2f15-59cf1b1d6efb3"
Accept-Ranges: bytes
Content-Length: 12053
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html>
<html>
<head>
  <title>Example Page</title>
</head>
<body>
  <h1>Welcome to Example Page</h1>
  <p>Hello World!</p>
</body>
</html>