网站建设 教学大纲,钢铁网站哪家做的好,四川省建筑信息网,外贸网站 站长工具转载自 Java压缩技术#xff08;五#xff09; GZIP相关——浏览器解析
GZIP本身就是一种网络流压缩算法#xff0c;而且应用相当广泛。如果网络访问过程中#xff0c;其数据流较大#xff0c;势必降低网络访问效率#xff0c;此时就需要考虑使用压缩#xff01;当然五 GZIP相关——浏览器解析
GZIP本身就是一种网络流压缩算法而且应用相当广泛。如果网络访问过程中其数据流较大势必降低网络访问效率此时就需要考虑使用压缩当然在浏览器与服务器的交互中要考虑浏览器是否支持这些算法以及服务器运行压缩所带来的负载。如果你关注浏览器上传的“Accept-Encoding”属性你就能看明白这一点。 GZIP如何压缩我这里就不废话了不清楚的朋友请关注Java压缩技术四 GZIP——Java原生实现 至于如何使得服务器支持gzip的流输出关键点只有一行代码
Java代码response.setHeader(Content-Encoding, gzip); 经过这项设置浏览器就能够很好的作出响应 先看FireFox如图 再看Opera如图 浏览器在打开该页面时就可解压获得并展示其内容至于IE就惨了愣是要求下载可能缺少什么设置注意后续服务器配置不是无解哦 你不信就这么简单上代码 Java代码 /** * 2010-4-14 */ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.GZIPOutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * GZip服务 * * author a hrefmailto:zlex.donglianggmail.com梁栋/a * since 1.0 */ public class GZipServlet extends HttpServlet { private static final long serialVersionUID -4811926975427533081L; private static final String ENCODING UTF-8; /** * 压缩 * * param data * return * throws Exception */ private byte[] compress(byte[] data) throws Exception { ByteArrayOutputStream baos new ByteArrayOutputStream(); // 压缩 GZIPOutputStream gos new GZIPOutputStream(baos); gos.write(data, 0, data.length); gos.finish(); byte[] output baos.toByteArray(); baos.flush(); baos.close(); return output; } /** * param request * param response * throws ServletException * throws IOException */ private void excute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { byte[] data 我是一个中国人.getBytes(ENCODING); try { byte[] output compress(data); // 设置Content-Encoding这是关键点 response.setHeader(Content-Encoding, gzip); // 设置字符集 response.setCharacterEncoding(ENCODING); // 设定输出流中内容长度 response.setContentLength(output.length); OutputStream out response.getOutputStream(); out.write(output); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } /** * see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { excute(request, response); } /** * see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { excute(request, response); } } 其实就这些内容当然除了上述代码方式针对于tomcat可以通过修改配置获得支持Xml代码 Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort443 URIEncodingUTF-8 compressionon noCompressionUserAgentsgozilla, traviata compressableMimeTypetext/html,text/xml,text/javascript,text/css,text/plain,application/json / 说说配置细节 compressionon 开启压缩支持noCompressionUserAgentsgozilla, traviata 不压缩的内容compressableMimeTypetext/html,text/xml,text/javascript,text/css,text/plain,application/json 压缩的类型至于代码你无需写一行代码轻松获得服务器访问加速并且IE也支持哦借网友经验如下实现轻松获得IE支持 Java代码 response.setContentType(text/plain;charsetutf-8); gzipServer.rar (5.6 KB)下载次数: 452