📜  HTTP响应(1)

📅  最后修改于: 2023-12-03 15:31:20.728000             🧑  作者: Mango

HTTP响应

HTTP响应是客户端向服务器发送请求后服务器返回的数据。该数据由一个状态行、若干首部和实体构成。

状态行

状态行由HTTP协议版本、状态码和状态码的文本描述组成。形如:

HTTP/1.1 200 OK

其中,HTTP/1.1 表示HTTP协议的版本号;200表示状态码;OK为状态码的文本描述。

常见的状态码包括:

  • 200 OK:请求成功。
  • 301 Moved Permanently:请求的URL已经永久移动到了新的位置,需要重新发送请求到新的URL。
  • 302 Found:请求的URL已经暂时移动到了新的位置,需要重新发送请求到新的URL。
  • 404 Not Found:请求的资源不存在。
  • 500 Internal Server Error:服务器内部错误。
HTTP首部

HTTP首部用于描述HTTP请求或响应的附加信息,分为通用首部、请求首部、响应首部和实体首部。

通用首部:用于请求和响应消息的首部信息,常见的有:

  • Date:表示消息创建的日期和时间。
  • Cache-Control:用于控制缓存的行为。
  • Connection:表示为这个连接指定的选项。
  • Via:表示报文经过的中间节点。

请求首部:用于请求消息的首部信息,常见的有:

  • Host:表示被请求资源的主机名和端口号。
  • User-Agent:表示客户端程序的类型和版本号。
  • Accept:表示客户端期望接收的响应体的类型。
  • Referer:表示请求的URL来源。

响应首部:用于响应消息的首部信息,常见的有:

  • Server:服务器的名称和版本号。
  • Content-Type:表示响应体的类型。
  • Content-Length:表示响应体的长度。
  • Last-Modified:表示被请求资源的最后修改时间。

实体首部:用于实体消息的首部信息,常见的有:

  • Content-Encoding:表示响应体的编码格式。
  • Content-Language:表示响应体的语言。
实体

HTTP响应的实体一般为服务器返回的HTML页面、CSS文件、图片等内容。实体是可选的,可为空。

最后,HTTP响应的每一部分都以一个换行符(\r\n)结束。完整的HTTP响应通常包括状态行、首部、一个空行和实体。