【问题标题】:Are there different methods to send a http response?是否有不同的方法来发送 http 响应?
【发布时间】:2018-07-09 19:04:55
【问题描述】:

我们都知道一个 http-request 有一个方法(GET/POST/etc.)。我也想知道http-response有什么具体的方法吗?

【问题讨论】:

    标签: http request httprequest response httpresponse


    【解决方案1】:

    没有。

    方法是 HTTP 请求消息的属性。它不会出现在响应消息中。

    RFC 7230

    【讨论】:

      【解决方案2】:

      虽然 HTTP 请求包含一个 方法 来指示请求的语义,但 HTTP 响应包含一个 状态代码 来指示操作的结果。

      请参阅下面来自RFC 7230 的一些相关引用,该文档定义了 HTTP/1.1 的消息语法:

      3.1. Start Line

      HTTP 消息可以是客户端到服务器的请求,也可以是服务器到客户端的响应。从语法上讲,这两种类型的消息仅在起始行有所不同,起始行是请求行(用于请求)或状态行(用于响应)[...]

      3.1.1. Request Line

      请求行以方法标记开头,后跟一个空格 (SP)、请求目标、另一个空格 (SP)、协议版本,并以 CRLF 结尾。

      request-line   = method SP request-target SP HTTP-version CRLF
      

      方法标记表示要对目标资源执行的请求方法。请求方法区分大小写。

      method         = token
      

      [...]

      3.1.2. Status Line

      响应消息的第一行是状态行,由协议版本、空格 (SP)、状态码、另一个空格、可能为空的描述状态码的文本短语组成,并以CRLF.

      status-line = HTTP-version SP status-code SP reason-phrase CRLF
      

      status-code 元素是一个 3 位整数代码,描述了服务器尝试理解和满足客户端相应请求的结果。 [...]

      status-code    = 3DIGIT
      

      [...]

      【讨论】:

        【解决方案3】:

        HTTP 响应由服务器向客户端发出。响应的目的是向客户端提供其请求的资源,或通知客户端其请求的操作已执行;或者通知客户端在处理其请求时发生错误。 HTTP 响应包含:

        A status line.
        A series of HTTP headers, or header fields.
        A message body, which is usually needed.
        

        就像在请求消息中一样,每个 HTTP 标头后跟一个回车换行符 (CRLF)。在最后一个 HTTP 标头之后,使用了一个额外的 CRLF(给出一个空行),然后开始消息正文。

        【讨论】:

          猜你喜欢
          • 2017-02-06
          • 1970-01-01
          • 2017-10-21
          • 1970-01-01
          • 1970-01-01
          • 2010-10-04
          • 2011-06-15
          • 2021-12-14
          • 2019-06-28
          相关资源
          最近更新 更多