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

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

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

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks

    http://m.tkk7.com/emu/archive/2011/02/27/345262.html
      
          這個問題不是太廣為人知,但也算不上新鮮知識了,IE6如果接收到一個gzip壓縮的http響應,那么這個響應中的Etag信息會被拋棄,此時只能依賴last-modified時間來設計cache策略。某些類型的Vary值據說也會導致相同的問題。
            為了這個問題emu在http頭上動了n多手術,甚至把200響應狀態硬生生換成206等狀態,IE6一直都非常頑固的不肯吐出If-None-Match信息。幾乎要放棄了。
            丟開這個bug,我們來看問題的實質是什么。實質是,我們有一個叫做Etag的,響應內容的一個hash值,需要在響應的時候從服務器送給瀏覽器,并且要求在瀏覽器下次請求同一個路徑的時候把這個hash值送回給服務器校驗。http中規定了,我們可以在http header內容中通過一個叫做Etag的header來做這個事,但是現在瀏覽器不給力啊,有啥別的手段可以做相同的事情呢?

            答案一點也不難想,我們一天到晚在實現“把一個值從服務器送給瀏覽器,并讓瀏覽器吧它送回服務器”這件事的時候都是用什么手段的呢?沒錯啦,就是cookie。而且cookie還支持path!
            因此需要做的事情就是,server在發現User-Agent是IE6的時候,在返回gzip內容的時候出了要送Last-Modified時間之外,不要送Etag頭了,改為返回一個set-cookie頭:
            Set-Cookie: etag=hash; pagh=/mypath
            服務器在下次收到請求的時候,如果收到了If-Modified-Since信息,表明客戶端有一份當前請求的cache,就可以從cookie里面驗證etag值來決定是否返回304拉!
    posted on 2011-02-27 00:37 emu 閱讀(3444) 評論(8)  編輯  收藏

    評論

    # re: IE6上Gzip+Etag問題的解決方案[未登錄] 2011-03-02 22:35 ryan
    If-Modified-Since不就已經可以判斷這個請求是否需要下發304還是原本的文件的么?

    為什么還需要額外的模擬etag的工作方式呢?  回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案 2011-03-14 14:09 煤矸石粉碎機
    不錯,過來學習了  回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案 2011-03-21 10:45 emu
    @ryan

    http://developer.yahoo.com/performance/rules.html
    ETags were added to provide a mechanism for validating entities that is more flexible than the last-modified date.
    有不同的應用場景的。
      回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案[未登錄] 2011-04-02 10:06 小海
    簡單明了,樓主寫得很好哈~~~  回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案 2011-05-04 11:10 http://ask.zhongguoren.me
    感謝`~~來學習了~~  回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案 2011-05-04 11:13 移動破碎站
    寫的不錯,還是我朋友介紹我來看的·  回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案[未登錄] 2011-05-08 18:00 1
    寫的很好. http://www.7004054.com 期待您的回訪.  回復  更多評論
      

    # re: IE6上Gzip+Etag問題的解決方案[未登錄] 2012-02-05 10:55 ryan
    @emu

    etag字符串的最后一部分整合了機器信息,
    Entity tags (ETags) are a mechanism that web servers and browsers use to determine whether the component in the browser's cache matches the one on the origin server.

    但這個在CDN部署上,恰恰是最不適宜帶上的。 所以如果要保證來自統一服務器,那么Etag建議帶上,如果CDN多地域機器部署,這個Etag就不合適了,至少要把機器信息干掉,所以直接用If-Modified-Since 更為合適吧  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品国产人成亚洲区| 亚洲福利中文字幕在线网址| 国产亚洲精品va在线| 一进一出60分钟免费视频| 亚洲A∨午夜成人片精品网站| 免费黄网站在线看| 毛片免费全部播放一级| 亚洲免费电影网站| 中文字幕无码视频手机免费看| 中文字幕亚洲一区二区va在线| 偷自拍亚洲视频在线观看| 免费国产成人午夜电影| 亚洲成人黄色网址| 国产一区二区免费视频| 亚洲国产综合无码一区| 久久成人免费电影| 国产亚洲精品精品国产亚洲综合| 一级做a爱过程免费视频高清| 国产av无码专区亚洲国产精品| 亚洲乱妇熟女爽到高潮的片| 浮力影院第一页小视频国产在线观看免费 | 午夜视频免费在线观看| 亚洲国产精品一区二区第一页免| 全部在线播放免费毛片| 国产高清免费的视频| 日韩成人毛片高清视频免费看| 国产亚洲精久久久久久无码AV| 特级做A爰片毛片免费看无码| 亚洲AV永久无码精品一百度影院| 18禁无遮挡无码国产免费网站| 久久久久久久综合日本亚洲| 成人无码视频97免费| 久久亚洲精品成人AV| 久久aⅴ免费观看| 亚洲最大av资源站无码av网址| 国产小视频在线观看免费| 福利免费在线观看| 亚洲人成网站日本片| 亚洲av区一区二区三| 久久久免费的精品| 亚洲欧美第一成人网站7777|