Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTTP响应头是否有效,没有传输编码和内容长度?_Http_Http Headers - Fatal编程技术网

HTTP响应头是否有效,没有传输编码和内容长度?

HTTP响应头是否有效,没有传输编码和内容长度?,http,http-headers,Http,Http Headers,即使不包含内容长度或传输编码,HTTP响应头(如下所示)是否合法 - Http: Response, HTTP/1.1, Status: Ok, URL: /AAA/B.json ProtocolVersion: HTTP/1.1 StatusCode: 200, Ok Reason: OK Expires: Fri, 05 Oct 2012 01:41:30 GMT Date: Fri, 05 Oct 2012 01:40:46 GMT Vary: Accept-

即使不包含内容长度或传输编码,HTTP响应头(如下所示)是否合法

- Http: Response, HTTP/1.1, Status: Ok, URL: /AAA/B.json
  ProtocolVersion: HTTP/1.1
  StatusCode: 200, Ok
  Reason: OK
  Expires:  Fri, 05 Oct 2012 01:41:30 GMT
  Date:  Fri, 05 Oct 2012 01:40:46 GMT
  Vary:  Accept-Encoding
  Accept-Ranges:  bytes
  Cache-Control:  public, max-age=43
  Server:  Noelios-Restlet-Engine/1.1.10
  ContentType:  application/json;charset=UTF-8
  ContentEncoding:  gzip
  Connection:  close
  X-Served-By:  85.111
  HeaderEnd: CRLF
我希望看到内容长度或传输编码,但它们都不存在

我读了HTTP-RFC,但仍然不确定


@CodeCaster,我确实阅读了RFC第4.4节,但仍然不清楚,正如您所看到的,响应头用于返回json流,因此:

  • 第4.4节,规则1定义不得包含消息正文,似乎不适用于我的情况
  • 第4.4节,规则4,对此不确定,但由于我在响应标题中没有看到“multipart/byteranges”,这是否意味着此规则不适用于我
  • 第4.4节规则5,这对我来说很不清楚,因为标题实际包含“连接:关闭”,是否相关

那么,还有什么评论吗?

是的,它是有效的。有五种方法可以确定消息长度:

:

消息的传输长度是消息正文的长度,如下所示: 它出现在消息中;也就是说,在任何转移编码完成后 已应用。当消息正文包含在消息中时 该实体的传输长度由以下其中一项确定 (按优先顺序):

  • “不得”包含消息正文的任何响应消息(如 作为1xx、204和304响应以及对头部的任何响应 请求)始终由 标题字段,与中存在的实体标题字段无关 信息

  • 如果存在传输编码头字段(第14.41节),并且 具有除“标识”以外的任何值,则传输长度为 通过使用“分块”传输编码(第3.6节)进行定义, 除非通过关闭连接终止消息

  • 如果存在内容长度标题字段(第14.13节),则其 以八位字节为单位的十进制值表示实体长度和长度 传输长度。不得发送内容长度标题字段 如果这两个长度不同(即,如果传输编码 标题字段不存在)。如果接收到带有两个 传输编码头字段和内容长度头字段, 后者必须被忽略

  • 如果消息使用媒体类型“multipart/byteranges”,则 如果未另行指定传输长度,则此自身- 分隔介质类型定义传输长度。此媒体类型 [M] 除非发件人知道收件人可以解析,否则不得使用 信息技术请求中存在多字节的范围标头- 来自1.1客户端的范围说明符意味着客户端可以解析 多部分/byteranges响应

    范围标头可能由1.0代理转发,该代理不 了解多部分/字节表;在这种情况下,服务器必须 使用第1、3或5项中定义的方法对消息进行分隔 本节

  • 由服务器关闭连接。(关闭连接 不能用于指示请求正文的结束,因为 将不允许服务器发回响应。)


  • 我确实阅读了RFC第4.4节,但仍然不清楚,如您所见,响应头用于返回json流,因此:-第4.4节,规则1定义不得包含消息体,似乎不适用于我的情况。-第4.4节,规则4,对此不确定,但由于我在响应标题中没有看到“multipart/byteranges”,这是否意味着此规则不适用于我第4.4节规则5,这对我来说很不清楚,因为标题实际包含“连接:关闭”,是否相关?那么,还有什么评论吗?谢谢@user1721757规则1仅适用于上述状态代码。您收到一个200,并且有一个
    连接:close
    头,因此您的客户端应该一直读取,直到服务器关闭连接。是的,如果您将pfsense与snort一起使用。它将被阻塞。