<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    使用tomcat的compression來提高網(wǎng)頁加載速度

    Posted on 2010-09-15 23:39 瘋狂 閱讀(13569) 評論(4)  編輯  收藏 所屬分類: java java性能web
             當網(wǎng)站從服器端請求的數(shù)據(jù)較大時,在有限的帶寬下就會造成瀏覽器加載緩慢,有時候會造成頁面沒有響應,使用戶體驗變得很差,tomcat為我們提供了有效的解決了辦法,就是使用壓縮來解決傳輸問題。
            tomcat使用HTTP/1.1 GZIP 來壓縮,以減少帶寬壓力,
           首先介紹下gzip:
            HTTP協(xié)議上的GZIP編碼是一種用來改進WEB應用程序性能的技術(shù)。大流量的WEB站點常常使用GZIP壓縮技術(shù)來讓用戶感受更快的速度。這一般是指WWW服務器中安裝的一個功能,當有人來訪問這個服務器中的網(wǎng)站時,服務器中的這個功能就將網(wǎng)頁內(nèi)容壓縮后傳輸?shù)絹碓L的電腦瀏覽器中顯示出來.一般對純文本內(nèi)容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點擊網(wǎng)址后會很快的顯示出來.當然這也會增加服務器的負載. 一般服務器中都安裝有這個功能模塊的.
          我們使用簡單的例子來介紹tomcat的壓縮使用:(使用firebug查看請求情況)

     首先是一個簡單的servlet:
    內(nèi)容:
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {

            response.setContentType(
    "text/html");
            PrintWriter out 
    = response.getWriter();
            out
                    .println(
    "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
            out.println("<HTML>");
            out.println(
    "  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
            out.println(
    "  <BODY>");
            out.print(
    " <select> ");
            
    for (int i = 0; i < 100000; i++{
                out.print(
    "<option>testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest"+i+"</option>");
            }

            out.println(
    "</select>");
            out.println(
    "  </BODY>");
            out.println(
    "</HTML>");
            out.flush();
            out.close();
        }

    我們將輸出一個十萬個選項的下拉框,在不使用的壓縮的時候:


        請求數(shù)據(jù)達到9m ,大概的計算下我的下載用時(4m長城寬帶):9*1024/(4*1024/8)=18m  ,加上多人共享帶寬,也就是差不多20m。firebug顯示20.96。

        這個速度網(wǎng)站體驗肯定是很差的,接下來使用tomcat的壓縮以后看看:

       當然是要對其進行配置:
       有以下幾個參數(shù)可以使用:

        compression="on" 
    是否啟用壓縮 on為啟用(文本數(shù)據(jù)壓縮) off為不啟用, force 壓縮所有數(shù)據(jù)
    compressionMinSize1="2048" 
    當超過最小數(shù)據(jù)大小才進行壓縮
     noCompressionUserAgents="gozilla, traviata" 
    哪些客戶端發(fā)出的請求不壓縮,默認是不限制
    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
    配置想壓縮的數(shù)據(jù)類型,默認是 text/html,text/xml,text/plain

    配置以后是這樣的:
    <Connector port="8088" protocol="HTTP/1.1" 
                   connectionTimeout
    ="20000" 
                   redirectPort
    ="8443"
                   compression
    ="on" 
                   compressionMinSize1
    ="2048" 
                   noCompressionUserAgents
    ="gozilla, traviata" 
                   compressableMimeType
    ="text/html,text/xml,text/javascript,text/css,text/plain"/>

    啟動后再看:

     
    這次數(shù)據(jù)被壓縮到274.7k,響應速度也減少了一半,當然,服務器的數(shù)據(jù)壓縮和瀏覽器的數(shù)據(jù)解壓都需要使用時間。

     
    例子完畢,
       當然tomcat的壓縮技術(shù)還有很多其他的特性,然而對于大數(shù)據(jù)量的請求不光是要使用這種技術(shù),還需要在其他地方下功夫,比如ajax技術(shù),緩存等等,
    也希望大家補充學習,謝謝。
     

    評論

    # re: 使用tomcat的compression來提高網(wǎng)頁加載速度  回復  更多評論   

    2010-09-16 00:51 by anuxs
    壓縮省流量,確實加快了速度,但有沒有意識到這對服務器帶來的cpu壓力哦。

    # re: 使用tomcat的compression來提高網(wǎng)頁加載速度  回復  更多評論   

    2010-09-16 13:07 by sgz
    謝謝分享

    # re: 使用tomcat的compression來提高網(wǎng)頁加載速度  回復  更多評論   

    2010-10-11 17:37 by Tkk
    壓縮不是會造成亂碼的嗎?

    # re: 使用tomcat的compression來提高網(wǎng)頁加載速度  回復  更多評論   

    2012-07-19 08:54 by Anderson Mao
    友情提醒,如果是Tomcat 6/7, (影響最新Tomcat 7.0.29)
    需要在Connector里面加上:
    useSendfile=”false”
    否則大于大于48K的文件不會壓縮。(Tomcat 的Bug)
    主站蜘蛛池模板: 噜噜嘿在线视频免费观看| 午夜视频在线免费观看| 成年私人影院免费视频网站| 亚洲综合一区二区精品导航| 中国极品美軳免费观看| 亚洲码国产精品高潮在线| 中国毛片免费观看| 久久精品国产精品亚洲蜜月| 香港a毛片免费观看| 亚洲美女激情视频| 四虎影视www四虎免费| 亚洲爆乳AAA无码专区| 亚洲国产精品尤物yw在线| 一级全免费视频播放| 亚洲国产精品一区第二页 | 久久高潮一级毛片免费| 亚洲精品狼友在线播放| 午夜精品一区二区三区免费视频| 亚洲第一页在线观看| 好吊妞在线成人免费| 一级做性色a爰片久久毛片免费| 在线观看午夜亚洲一区| 999久久久免费精品播放| 亚洲午夜理论片在线观看| 午夜亚洲av永久无码精品| 四虎在线成人免费网站| 香蕉大伊亚洲人在线观看| 国产精品久免费的黄网站| 国产成人1024精品免费| 久久久久亚洲AV无码永不| 日韩一级视频免费观看| 中文字幕久无码免费久久| 亚洲国产成人九九综合| 亚洲AV无码乱码在线观看性色扶| 免费毛片a线观看| 亚洲日韩国产欧美一区二区三区| 国产成人亚洲综合| 一个人免费观看视频www| 亚欧国产一级在线免费| 中文字幕无码亚洲欧洲日韩| 亚洲精品成人网站在线观看|