📅  最后修改于: 2021-01-03 03:04:53             🧑  作者: Mango
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
这里,
2)初始响应热线
初始响应行也称为状态行。它还包括三个部分:HTTP版本,给出请求结果的响应状态代码以及描述状态代码的英语原因短语。
例:
HTTP/1.0 200 OK
or
HTTP/1.0 404 Not Found
这里,
响应行和请求行的HTTP版本与“ HTTP / xx”相同。
Message标头提供有关请求和响应的信息。它还提供有关在邮件正文中发送的对象的信息。邮件头有四种类型:
以上所有标头均采用相同的通用格式。每个标头字段均包含一个名称,后跟一个冒号和以下字段值:
message-header = field-name ":" [ field-value ]
HTTP消息的消息正文用于承载与请求和响应关联的整个正文。仅当应用了传输编码时,消息主体才与整体有所不同,如Transfer-Encoding头字段所示。
句法
message-body = entity-body
|
传输编码务必用于指示应用程序所应用的任何传输编码,以确保安全正确地传输消息。传输编码是邮件的属性。
消息的传输长度是消息正文的长度,它出现在消息中。
在消息中,当允许消息正文并给出Content-Length时,其字段值务必与消息正文中的OCTET数量完全匹配。当接收到无效长度并检测到无效长度时,HTTP / 1.1用户代理务必通知用户。
某些标头字段对于请求消息和响应消息都具有适用性。这些头字段仅在发送消息时适用。
句法
general-header = Cache-Control