Node.js 具有内容和接受编码头的较大有效负载

Node.js 具有内容和接受编码头的较大有效负载,node.js,rest,express,http-headers,Node.js,Rest,Express,Http Headers,我有一个用例 我使用大小为20-30MB的负载从客户机服务器向RESTAPI发出POST请求,请求头包含设置为gzip的内容编码,因此它在n/w级别被压缩 除此之外,我还需要在API级别启用gzip压缩吗 现在,假设上面的POST请求成功地将更大的负载写入数据库,并且当我尝试将数据检索回客户机时,这也是一个POST请求(这就是它的设计方式,发出一个POST请求来检索数据),是否需要设置检索数据以接受编码的POST请求头:gzip RESTAPI是一个node/express应用程序,数据库是ca

我有一个用例

  • 我使用大小为20-30MB的负载从客户机服务器向RESTAPI发出POST请求,请求头包含设置为gzip的内容编码,因此它在n/w级别被压缩
  • 除此之外,我还需要在API级别启用gzip压缩吗
  • 现在,假设上面的POST请求成功地将更大的负载写入数据库,并且当我尝试将数据检索回客户机时,这也是一个POST请求(这就是它的设计方式,发出一个POST请求来检索数据),是否需要设置检索数据以接受编码的POST请求头:gzip

  • RESTAPI是一个node/express应用程序,数据库是cassandra。

    我认为您误解了它的工作原理

    请求头包含设置为gzip的内容编码,因此它在n/w级别被压缩

    这意味着您的客户端正在压缩有效负载。不是网络。
    content encoding
    HTTP头告诉另一方正文的发送格式,而不是您希望正文的发送格式。通常,HTTP客户端、服务器或库会为您处理所有这些

    除此之外,我还需要在API级别启用gzip压缩吗

    不可以。如果客户机已经在压缩它,那么在客户机代码中(可能使用标准HTTP库),在代码中再次压缩它不会有任何好处

    现在,假设上面的POST请求成功地将更大的负载写入数据库,并且当我尝试将数据检索回客户机时(这也是POST请求的设计方式,发出POST请求以检索数据),我是否需要设置检索数据的POST请求头以接受编码:gzip

    如果您的客户端可以处理gzip,那么它应该自动设置
    接受编码:gzip
    。然后,如果您的服务器能够以gzip方式交付,它就会。
    accept encoding
    头是一个可选的信息位,客户端可以发送此信息,让服务器知道客户端的功能。这是一个提示(“嘿,我可以接受gzip的回复,所以如果你愿意的话就使用它”),并且不是一个必须遵守的命令(也就是说,它不是“你必须以gzip格式发送给我”)

    文件在服务器上的实际存储方式完全取决于您的应用程序,但通常它是解压缩存储的,这样就可以将其交付给不处理gzip的客户机、处理gzip的客户机或处理其他压缩格式(如brotli)的客户机。然后,web服务器通常根据请求中的
    accept encoding
    头动态压缩