网站优化之开启tomcat的gzip压缩传输特性

这篇具有很好参考价值的文章主要介绍了网站优化之开启tomcat的gzip压缩传输特性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文于2015年底完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。


基于tomcat 8.0.x版本的文档,可以了解到tomcat支持基于gzip实现的压缩返回数据的特性。

配置方法

最简单的配置样例如下:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           compression="on" 
           />

关于启用gzip压缩传输特性,tomcat 8.0.x版本提供了如下几个参数:

  • compression,默认值为off。可能的取值有:

    • on,启用压缩传输特性;
    • off,关闭压缩的特性;
    • force,表示无条件启用压缩特性;
    • 正整数,启用压缩传输特性,同时指定了压缩操作门限值,当传输数据量超出门限时,tomcat即对传输数据执行压缩。

    当tomcat无法预先得知待传输数据的具体长度,而compression被设置为on,则tomcat自动压缩传输数据。

  • compressionMinSize,默认值是2048,即2KB,当传输的数据量大于2KB时,tomcat自动将待传输的数据执行压缩。

  • compressableMimeType,默认值为text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,基本上涵盖了当前能遇到的文件类型。

  • noCompressionUserAgents,默认值为空字符串,即不限制。tomcat将本配置的值当成正则表达式来使用,用来判定是否向特定的浏览器传输压缩数据,比如配置为"gozilla",则遇到UserAgent类型为gozilla的浏览器,则不对返回的数据执行压缩。

确认gzip已启用的方法

使用抓包工具或者浏览器的调试工具监控页面请求过程中的网络交互情况,重点检查tomcat返回浏览器的页面响应头部,可以发现gzip压缩传输启用前、后的差异。

  • 启用前

      Content-Length:1014
      Content-Type:text/html;charset=UTF-8
      Date:Sat, 14 Nov 2015 14:34:36 GMT
      Server:Apache-Coyote/1.1
    
  • 启用后

      Content-Encoding:gzip
      Content-Type:text/html;charset=UTF-8
      Date:Sat, 14 Nov 2015 14:37:34 GMT
      Server:Apache-Coyote/1.1
      Transfer-Encoding:chunked
      Vary:Accept-Encoding
    

因此使用抓包工具或者使用浏览器的调试工具观察HTTP交互数据时,如果发现响应头部的报文中带有如下三部分头部信息,基本上可以确认Web系统的tomcat已启用了gzip压缩传输的特性。

  • Content-Encoding:gzip
  • Transfer-Encoding:chunked
  • Vary:Accept-Encoding

注意事项

  • 依据官方文档,当用户选择的Connector支持sendfile特性时,如传输数据大于48KB,则优先使用sendfile特性来传输数据,并不会对待传输的数据执行压缩操作。

    如果需要对大于48KB的数据执行压缩操作,依据官方文档,有两种选择:

    1. 配置useSendfilefalse,则不会启用sendfile特性。
    2. 调整启用sendfile的门限值,修改${CATALINA_BASE}/conf/web.xmlDefaultServlet的配置项sendfileSize的取值,比如修改为96,则表明当待传输的数据大于96KB时,使用sendfile特性,低于96KB的数据则执行压缩。
  • 压缩传输可以有效降低浏览器与tomcat之间传输的数据量,但天下没有免费的午餐,启用压缩特性后,虽说减少了传输数据量,但却提升了浏览器和Web服务器的CPU占用率,因此不能为了追求压缩率,而将compressionMinSize配置为过小的值。文章来源地址https://www.toymoban.com/news/detail-775273.html

参考资料

  • Apache Tomcat 8 Configuration Reference: Overview
  • Apache Tomcat 8 Configuration Reference: The HTTP Connector
  • sendfile
  • linux的sendfile()系统调用

到了这里,关于网站优化之开启tomcat的gzip压缩传输特性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 本地测试使用自签名证书以开启网站https(例子说明:Nginx、Tomcat)

    原文链接 数字证书是由证书颁发机构(CA)签名并颁发的电子文件,用于建立网络连接的身份认证和加密通信。SSL 证书是数字证书的一种。 SSL 证书包含以下信息: 针对其颁发证书的域名 证书颁发给哪一个人、组织或设备 证书由哪一证书颁发机构颁发 证书颁发机构的数字签名

    2024年02月09日
    浏览(44)
  • Spring Boot进阶(44):如何为你的项目开启HTTPS协议加密传输,让你的网站更加安全?

            随着互联网的发展,网络安全问题越来越引人关注。为了确保网站数据传输的安全性,大多数网站都选择使用HTTPS协议进行加密传输。而本篇文章就将带领大家,一步一步地了解如何为你的项目开启HTTPS协议,让你的网站更加安全可靠。不仅如此,我们还会介绍HTTPS协

    2024年02月07日
    浏览(56)
  • Nginx的Gzip压缩

    Nginx的Gzip压缩      Nginx开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化Nginx性能!在Nginx配置文件中可以配置Gzip的使用,相关指令可以在http区域 server区域、location区域配置。Nginx可以通过ngx_http_gzip_module模块、ngx_http_gzip_st

    2024年02月05日
    浏览(37)
  • Python教程:Gzip解压缩

    我们将介绍 Python 中的 gzip 解压。我们还将介绍如何使用gzip解压来解压压缩的内容。 在Python中为压缩和解压目的建立了许多库,但我们将介绍Gzip 库。它是一个流行的数据压缩工具。 我们可以使用gzip ,通过对数据进行特殊格式的编码来减少文件的大小,这种格式不能被人类

    2024年02月11日
    浏览(30)
  • Nginx中配置GZIP压缩详解

    网站访问速度对用户来说是很重要的体验,有时候除了增大带宽外,还需要对文件进行压缩。 首先找到Nginx安装路径下的配置文件: 保存后,使用nginx -t检查配置文件是否OK:         上述报错证明nginx在编译安装时候没有连同http_ssl_module模块一同编译;现在的情况是nginx已经

    2024年02月04日
    浏览(32)
  • Linux压缩、解压缩及归档工具(tar、zip、gzip...)

    压缩、归档 解压 文件后缀 备注 compress uncompress .Z 很老的命令 gzip gunzip .gz bzip2 bunzip2 .bz2 xz unxz .xz zip unzip .zip tar .tar/.tar.gz 常用命令 cpio 用于从归档包中存入和读取文件,copy-in/copy-out         gzip [OPTION]...FILE... 生成压缩文件,删除原文件                 -d:解压缩

    2024年02月12日
    浏览(45)
  • 【Linux命令详解 | gzip命令】 gzip命令用于压缩文件,可以显著减小文件大小

    在Linux中, gzip 命令是一款强大的文件压缩工具,它可以通过压缩文件的方式显著减小文件大小,从而节省存储空间并加速文件传输。无论是在文件备份、数据传输还是发布软件包时, gzip 命令都是一个非常有用的工具。在本文中,我们将深入探讨 gzip 命令的各个方面,包括

    2024年02月12日
    浏览(48)
  • 前端构建工具 代码优化压缩 模块管理 依赖管理 资源处理转换 自动化任务 流程优化 高级特性 Webpack Parcel Rollup Gulp 静态资源

    前端构建在前端开发中具有重要的意义,主要有以下几个方面: 代码优化和压缩:前端构建工具可以对前端代码进行优化和压缩,例如去除注释、空格,合并和缩小文件大小等。这可以减少文件的加载时间和传输大小,提高网页加载速度,优化用户体验 模块管理和依赖管理

    2024年02月09日
    浏览(42)
  • 三、nginx两种压缩配置[gzip]

    解释:通过配置参数,让nginx压缩指定后缀格式文件,然后发送给用户,但是这样这些压缩文件无法使用sendfile的高效传送( 使用其能使得文件传输不经过程序,加载到缓存直接发送,相反off的话,需要在硬盘-缓存-程序-发送 ),因为文件需要先经过nginx压缩 gzip on/off; :开启

    2024年02月16日
    浏览(39)
  • .Net 5中对于http请求的压缩和解压缩(GZip,Brotli)

    背景:(1)经常会有一些接口返回数据大,导致请求缓慢 (2)在后台请求一些第三方API时,需要解压缩响应数据,再进行处理 解决:可以通过对http请求进行压缩和解压来满足场景需求 1.先了解一下几种不同压缩算法,GZip、Deflate、Brotli Gzip: Gzip 基于 DEFLATE 算法,它是 LZ77

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包