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
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
头动态压缩