Http头接受编码

Http头接受编码,http,header,Http,Header,我很难理解这个标题是如何工作的 简而言之,我的问题是 如果我请求某个资源的帖子,那么让我们 假设在第一种情况下,响应是一些json字符串,在第二种情况下,响应是一个.jar文件 1.在发送HTTP请求时,客户端是否应该在两种情况下都包含accept头:gzip、deflate,并知道第一个头会生成json字符串 2.如果响应已经压缩,现在在已经压缩的数据上压缩响应不会产生问题,那该怎么办 3.如果在接收json字符串的第一种情况中包含accept encoding:gzip,会发生什么。所以我收

我很难理解这个标题是如何工作的

简而言之,我的问题是

如果我请求某个资源的帖子,那么让我们 假设在第一种情况下,响应是一些json字符串,在第二种情况下,响应是一个.jar文件

1.在发送HTTP请求时,客户端是否应该在两种情况下都包含accept头:gzip、deflate,并知道第一个头会生成json字符串

2.如果响应已经压缩,现在在已经压缩的数据上压缩响应不会产生问题,那该怎么办

3.如果在接收json字符串的第一种情况中包含accept encoding:gzip,会发生什么。所以我收到一个压缩数据作为我的响应(我甚至不确定是得到压缩数据还是一些编码数据作为响应。我认为压缩数据意味着像.jar/.zip这样的压缩数据,而编码数据意味着原始数据的编码数据,是压缩还是编码)

4.假设服务器发送ContentType头为“application/octet stream”的响应。现在必须使用accept头:gzip,deflate

  • 是的,为什么不呢?如果JSON负载很大,压缩它将非常有意义

  • 就在头顶上

  • 您可能会收到gzip数据,而不是ZIP文件。您可能需要阅读RFC 7230和RFC 7231了解详细信息

  • 有效载荷的互联网媒体类型完全独立于内容编码

  • 是的,为什么不呢?如果JSON负载很大,压缩它将非常有意义

  • 就在头顶上

  • 您可能会收到gzip数据,而不是ZIP文件。您可能需要阅读RFC 7230和RFC 7231了解详细信息

  • 有效载荷的互联网媒体类型完全独立于内容编码


  • 客户机可以使用
    Accept Encoding
    HTTP请求头通知服务器它可以接受压缩响应

    服务器可以使用请求头来决定是否应该发送压缩响应。它可以忽略报头并始终发送非压缩响应(可能效率较低)。它可以忽略报头并始终发送压缩响应(有可能给客户端一个无法解码的响应)

    客户端是否应该包括accept头:gzip,在这两种情况下都要放气

    我想不出任何理由不告诉服务器客户端可以处理压缩响应(假设事实属实)

    如果响应已经压缩,那么现在在已经压缩的数据上压缩响应不会产生问题

    这可能会浪费处理器的能量,只节省很少或根本不节省字节

    但这并不是客户机说它无法处理压缩响应的原因。这是在服务器上做出的决定

    如果在接收json字符串的第一种情况中包含accept encoding:gzip,会发生什么

    然后客户端告诉服务器压缩响应是可以接受的

    因此,我收到一个压缩数据作为我的响应

    服务器可能会发送压缩响应。它可能会忽略标题

    我甚至不确定是否得到压缩数据或一些编码数据作为响应

    这里没有“或”

    使用压缩算法对数据进行编码

    假设服务器将ContentType头作为“应用程序/八位字节流”发送响应

    这只意味着服务器不知道它正在发送什么类型的数据。不是说“这是JSON”或“这是一个jar文件”,而是说“我不知道这是什么,对我来说只是一个字节流”

    现在必须使用accept头:gzip,deflate

    这没什么区别


    服务器可以压缩数据。它可以发送未压缩的数据。它可以使用
    接受编码
    请求头来决定两者中的哪一个。

    客户端可以使用
    接受编码
    HTTP请求头来告诉服务器它可以接受压缩响应

    服务器可以使用请求头来决定是否应该发送压缩响应。它可以忽略报头并始终发送非压缩响应(可能效率较低)。它可以忽略报头并始终发送压缩响应(有可能给客户端一个无法解码的响应)

    客户端是否应该包括accept头:gzip,在这两种情况下都要放气

    我想不出任何理由不告诉服务器客户端可以处理压缩响应(假设事实属实)

    如果响应已经压缩,那么现在在已经压缩的数据上压缩响应不会产生问题

    这可能会浪费处理器的能量,只节省很少或根本不节省字节

    但这并不是客户机说它无法处理压缩响应的原因。这是在服务器上做出的决定

    如果在接收json字符串的第一种情况中包含accept encoding:gzip,会发生什么

    然后客户端告诉服务器压缩响应是可以接受的

    因此,我收到一个压缩数据作为我的响应

    服务器可能会发送压缩响应。它可能会忽略标题

    我甚至不确定是否得到压缩数据或一些编码数据作为响应

    这里没有“或”

    使用压缩算法对数据进行编码

    假设服务器将ContentType头作为“应用程序/八位字节流”发送响应

    这只意味着服务器不知道它正在发送什么类型的数据。不是说“这是JSON”或“这是一个jar文件”,而是说“我不知道这是什么,对我来说只是一个字节流”

    现在必须使用accept头:gzip,deflate

    这没什么区别


    服务器可以压缩数据。它可以发送未压缩的数据。它可以使用
    Accept Encoding
    request头来决定两者中的哪一个。

    我想你的意思是说“Accept Encoding”?是的,谢谢。我猜你的意思是说“acce”