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

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

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

    隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
    數據加載中……

    http返回頭中content-length與Transfer-Encoding: chunked的問題釋疑

    先說說問題出現的背景:
            公司服務器與手機客戶端交互,客戶端請求一個動態生成的XML文件,在用firebug查看http響應頭的時候,有時候發現有content-length屬性,有時候沒有這個屬性,取而代之的是Transfer-Encoding: chunked屬性。由于客戶端強制要求,服務器端必須返回content-length,否則,客戶端將不予解析。于是測試發現,當XML文件很小的時候,是有content-length屬性的,到達一個值時,就成了Tansfer-Encoding:chunked。

    再引用一段話,解釋一下Transfer-Encoding:chunked這個屬性的意義:
            通常,HTTP協議中使用Content-Length這個頭來告知數據的長度。然后,在數據下行的過程中,Content-Length的方式要預先在服務器中緩存所有數據,然后所有數據再一股腦兒地發給客戶端。
        如果要一邊產生數據,一邊發給客戶端,WEB 服務器就需要使用"Transfer-Encoding: chunked"這樣的方式來代替Content-Length。

    最后說說自己的理解與解決方式:
            通過種種跡象,我得出的結論是,JSP頁面有一個緩存大小,當輸出數據的長度沒有到達這個大小的時候,服務器是知道總的數據長度的,所以服務器會輸出content-length頭。但如果超過緩存大小,那么,緩存一滿,服務器就得輸出內容給客戶端,所以,不能判斷整個內容的大小,于是返回Transfer-Encoding:chunked這個頭信息。
            解決方式是:在JSP頁面中加入代碼,response.setBufferSize(402800);40820即400K,其實只要這個值大于你返回的數據的大小就行了。具體設置多少,你可以根據實際情況,合理配置。另外說一句,在page指令中加入buffer="400kb",是不管用的,我測試的情況是這樣。

    posted on 2010-10-28 12:48 小一敗涂地 閱讀(30822) 評論(0)  編輯  收藏 所屬分類: http相關

    主站蜘蛛池模板: 亚洲一卡二卡三卡| 亚洲avav天堂av在线不卡| 亚洲午夜成人精品无码色欲| 91麻豆国产免费观看| 亚洲国产女人aaa毛片在线 | 99无码人妻一区二区三区免费| 亚洲av永久无码精品漫画 | 男人扒开添女人下部免费视频| 日韩精品无码人妻免费视频 | 亚洲无av在线中文字幕| 精品一区二区三区免费视频| 中文字幕久久亚洲一区| 华人在线精品免费观看| 久久水蜜桃亚洲av无码精品麻豆| 性xxxx视频免费播放直播| 亚洲综合色一区二区三区小说| 一级毛片免费观看不卡视频| 亚洲欧洲日本国产| 在线v片免费观看视频| jizzjizz亚洲日本少妇| 亚洲国产香蕉人人爽成AV片久久| 中文在线观看永久免费| 日韩亚洲Av人人夜夜澡人人爽| 最近中文字幕免费mv在线视频| 亚洲av午夜精品无码专区| 国产高清免费观看| 91成人免费福利网站在线| 91精品国产亚洲爽啪在线影院| 性色av无码免费一区二区三区| 国产亚洲男人的天堂在线观看| 在线观看午夜亚洲一区| 在线免费观看你懂的| 亚洲天然素人无码专区| 精品国产日韩亚洲一区| 69精品免费视频| 青娱乐在线视频免费观看| 亚洲国产女人aaa毛片在线| 成人毛片免费观看| 两性色午夜视频免费播放| 亚洲伊人久久大香线蕉影院| 免费日本黄色网址|