强制要求压缩 Response 的 检测

强制要求压缩 Response 的 检测
如果希望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
10      private   static  String ACCEPT_COMPRESSION_HEADER  =   " accept-encoding " ;
11      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    }

你可能感兴趣的:(强制要求压缩 Response 的 检测)