TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
如果希望http response 总是能压缩后传给客户端, 需要在服务端对客户的请求进行检测, 看是否有 accept-encoding = gzip 的头, 一般用浏览器做客户端,都回包含accept-encoding 的头, 是否压缩response 就由服务器自己决定, 但是如果是其他程序做客户端, 可能不包含accept-encoding 头, 所以在服务器端要进行检查
1
protected
void
doPost(HttpServletRequest req, HttpServletResponse res)
2
throws
ServletException, IOException

{
3
4 if(!isAcceptCompression(req))
5 // error handle
6
7 super.doPost(req, res);
8 }
9
1
0
private
static
String ACCEPT_COMPRESSION_HEADER
=
"
accept-encoding
"
;
1
1
private
static
String ACCEPT_COMPRESSION_GZIP
=
"
gzip
"
;
12
protected
boolean
isAcceptCompression(HttpServletRequest req)
13

{
14 java.util.Enumeration en = req.getHeaderNames();
15 while (en.hasMoreElements())
16 {
17 String headerName = (String)en.nextElement();
18 String headerValue = req.getHeader(headerName);
19 if(ACCEPT_COMPRESSION_HEADER.equalsIgnoreCase(headerName))
20 {
21 if((headerValue!= null) && ((headerValue.toLowerCase().indexOf(ACCEPT_COMPRESSION_GZIP) >=0)))
22 return true;
23 }
24 }
25 return false;
26 } |
|