【发布时间】:2018-07-09 19:04:55
【问题描述】:
我们都知道一个 http-request 有一个方法(GET/POST/etc.)。我也想知道http-response有什么具体的方法吗?
【问题讨论】:
标签: http request httprequest response httpresponse
我们都知道一个 http-request 有一个方法(GET/POST/etc.)。我也想知道http-response有什么具体的方法吗?
【问题讨论】:
标签: http request httprequest response httpresponse
【讨论】:
虽然 HTTP 请求包含一个 方法 来指示请求的语义,但 HTTP 响应包含一个 状态代码 来指示操作的结果。
请参阅下面来自RFC 7230 的一些相关引用,该文档定义了 HTTP/1.1 的消息语法:
HTTP 消息可以是客户端到服务器的请求,也可以是服务器到客户端的响应。从语法上讲,这两种类型的消息仅在起始行有所不同,起始行是请求行(用于请求)或状态行(用于响应)[...]
请求行以方法标记开头,后跟一个空格 (
SP)、请求目标、另一个空格 (SP)、协议版本,并以CRLF结尾。request-line = method SP request-target SP HTTP-version CRLF方法标记表示要对目标资源执行的请求方法。请求方法区分大小写。
method = token[...]
响应消息的第一行是状态行,由协议版本、空格 (
SP)、状态码、另一个空格、可能为空的描述状态码的文本短语组成,并以CRLF.status-line = HTTP-version SP status-code SP reason-phrase CRLFstatus-code 元素是一个 3 位整数代码,描述了服务器尝试理解和满足客户端相应请求的结果。 [...]
status-code = 3DIGIT[...]
【讨论】:
HTTP 响应由服务器向客户端发出。响应的目的是向客户端提供其请求的资源,或通知客户端其请求的操作已执行;或者通知客户端在处理其请求时发生错误。 HTTP 响应包含:
A status line.
A series of HTTP headers, or header fields.
A message body, which is usually needed.
就像在请求消息中一样,每个 HTTP 标头后跟一个回车换行符 (CRLF)。在最后一个 HTTP 标头之后,使用了一个额外的 CRLF(给出一个空行),然后开始消息正文。
【讨论】: