📜  HTTP消息

📅  最后修改于: 2021-01-03 03:04:53             🧑  作者: Mango

HTTP消息

HTTP消息用于显示客户端和服务器之间如何交换数据。它基于客户端-服务器体系结构。 HTTP客户端是一种与服务器建立连接以发送一个或多个HTTP请求消息的程序。 HTTP服务器是通过发送HTTP响应消息来接受连接以服务HTTP请求的程序。

HTTP消息可以分类如下:

讯息类型

HTTP消息由初始请求行和初始响应行组成。

格式:

HTTP-message = Request | Response ; HTTP/1.1 messages

1)初始请求线

对于请求和响应,初始行是不同的。请求行包括三部分:方法名称,请求资源的本地路径以及所使用的HTTP版本。所有这些部分都由空格分隔。

句法:

GET /path/to/file/index.html HTTP/1.0

这里,

  • GET是最常见的HTTP方法。
  • 路径显示主机名后面的URL部分。也称为请求URI。
  • HTTP的版本始终采用大写形式“ HTTP / xx ”。

2)初始响应热线

初始响应行也称为状态行。它还包括三个部分:HTTP版本,给出请求结果的响应状态代码以及描述状态代码的英语原因短语。

例:

HTTP/1.0 200 OK
or
HTTP/1.0 404 Not Found

这里,

响应行和请求行的HTTP版本与“ HTTP / xx”相同。

邮件标题

Message标头提供有关请求和响应的信息。它还提供有关在邮件正文中发送的对象的信息。邮件头有四种类型:

  • General Header:它对于请求消息和响应消息都具有普遍适用性。
  • 请求标头:它仅适用于请求消息。
  • 响应头:它仅适用于响应消息。
  • 实体标题:它定义有关实体主体以及请求所标识的资源的元信息。

以上所有标头均采用相同的通用格式。每个标头字段均包含一个名称,后跟一个冒号和以下字段值:

message-header = field-name ":" [ field-value ]

邮件正文

HTTP消息的消息正文用于承载与请求和响应关联的整个正文。仅当应用了传输编码时,消息主体才与整体有所不同,如Transfer-Encoding头字段所示。

句法

message-body = entity-body
        | 

传输编码务必用于指示应用程序所应用的任何传输编码,以确保安全正确地传输消息。传输编码是邮件的属性。

讯息长度

消息的传输长度是消息正文的长度,它出现在消息中。

在消息中,当允许消息正文并给出Content-Length时,其字段值务必与消息正文中的OCTET数量完全匹配。当接收到无效长度并检测到无效长度时,HTTP / 1.1用户代理务必通知用户。

一般标题字段

某些标头字段对于请求消息和响应消息都具有适用性。这些头字段仅在发送消息时适用。

句法

general-header = Cache-Control