压缩HTTP响应(GZIP)时为什么删除“Content-Length”标头?

时间:2015-11-28 20:13:32

标签: java http servlets glassfish gzip

为什么使用GZIP压缩HTTP响应时会删除Content-Length标头?

当我设置响应标题时:

response.setHeader("Content-Encoding", "gzip");
response.setContentLengthLong(46464);

GlassFish4服务器不发送Content-Length标头。我的问题是 - 为什么要删除它?

我正在使用java Servlet / 3.1。

响应标题:

Server: GlassFish Server Open Source Edition  4.1
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition  4.1  Java/Oracle Corporation/1.8)
Date: Sat, 28 Nov 2015 19:36:53 GMT
Accept-Ranges: bytes
Connection: keep-alive
Keep-Alive: timeout=1800
Content-Disposition: inline;filename*=utf-8''big-buck-bunny_traixler.webm
ETag: big-buck-bunny_traixler.webm-2165175-1448346083000
Cache-Control: private,max-age=604800
Last-Modified: Tue, 24 Nov 2015 06:21:23 GMT
Content-Encoding: gzip

response.setContentLengthLong(46464);在压缩数据写入字节数组后设置(因此您知道压缩数据长度),并在压缩数据写入输出流并刷新之前设置。

此外 - Content-Type标题已删除...

0 个答案:

没有答案