为什么使用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
标题已删除...