HTTP响应的格式是什么?

  • Post category:Python

HTTP响应包括状态行、响应头、响应体三个部分,格式如下:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1254
Connection: keep-alive

<!DOCTYPE html>
<html>
<head>
    <title>Example Page</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>

其中,状态行由HTTP协议版本、状态码和状态消息三部分组成;响应头由多行键值对组成,以空行分割响应头和响应体;响应体为服务器响应的实际内容。

下面分别对状态行、响应头和响应体做详细说明。

状态行

状态行由三个部分组成,用空格分隔,格式如下:

HTTP/1.1 200 OK

其中:

  • HTTP/1.1:指定HTTP协议版本
  • 200:指定HTTP状态码,表示请求成功
  • OK:指定状态消息,简要说明状态码的含义

HTTP状态码是指每个HTTP响应的状态标识,数字代码表示。下面列举一些常见的状态码:

  • 200 OK:表示请求成功,正常返回响应数据
  • 301 Moved Permanently:永久性重定向,请求的资源已经被分配了新的 URL
  • 302 Found:临时性重定向,请求的资源已经被暂时分配了新的 URL
  • 400 Bad Request:表示请求语法错误,服务器无法处理此请求
  • 401 Unauthorized:表示请求需要身份验证,但客户端没有提供正确的身份验证信息
  • 404 Not Found:表示请求失败,请求的资源未找到
  • 500 Internal Server Error:表示服务器内部错误,无法完成请求

响应头

响应头由多行键值对组成,每行以冒号分隔键和值,格式如下:

Content-Type: text/html
Content-Length: 1254
Connection: keep-alive

常见的响应头字段包括:

  • Content-Type:指定响应体内容的类型
  • Content-Length:指定响应体内容的长度
  • Connection:指定TCP连接是否要保持持久连接
  • Cache-Control:指定浏览器和缓存服务器如何缓存响应的负载

响应体

响应体实际上就是服务器返回给客户端的内容,格式根据Content-Type头字段指定的内容类型而有所不同。下面举例两种常见的Content-Type头字段类型。

Content-Type: text/html

当Content-Type头字段的值为text/html时,响应体通常包含HTML代码,如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>Example Page</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>

Content-Type: application/json

当Content-Type头字段的值为application/json时,响应体通常包含JSON格式的数据,如下所示:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

以上是HTTP响应的格式以及常见的状态码、响应头字段和Content-Type类型的简介。不同的应用场景和不同的业务需求会有不同的响应格式和响应内容,所以具体的实现方法需要根据实际情况进行调整。