<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 小一敗涂地 閱讀(30821) 評論(0)  編輯  收藏 所屬分類: http相關

    主站蜘蛛池模板: baoyu777永久免费视频 | eeuss免费影院| 国内精品免费视频自在线| 亚洲噜噜噜噜噜影院在线播放 | a级成人免费毛片完整版| 亚洲一级特黄大片无码毛片| 一级毛片高清免费播放| 亚洲成av人片一区二区三区 | 在线看无码的免费网站| 亚洲无人区视频大全| 最近免费中文在线视频| 456亚洲人成影院在线观| 永久免费观看的毛片的网站| 高潮毛片无遮挡高清免费| 精品亚洲成α人无码成α在线观看| 国产日韩在线视频免费播放| 亚洲国产精品无码久久久秋霞2| 久久久久国色av免费看| 亚洲一区二区三区亚瑟| 日本免费观看网站| 亚洲黄片手机免费观看| 亚洲av日韩av无码黑人| 国产成人无码免费看视频软件| 亚洲国产AV一区二区三区四区| 亚洲美女高清一区二区三区| 在线观看免费黄网站| 亚洲永久中文字幕在线| 日韩中文无码有码免费视频 | 91香蕉国产线在线观看免费| 亚洲欧美成人一区二区三区| 亚洲电影日韩精品| 人妻无码久久一区二区三区免费| 亚洲AV成人噜噜无码网站| 国产一级一片免费播放i| 国产精成人品日日拍夜夜免费| 亚洲香蕉久久一区二区| 亚洲日本va午夜中文字幕久久| 久久精品无码精品免费专区| 亚洲一区二区三区在线观看网站| 亚洲?V无码成人精品区日韩| **实干一级毛片aa免费|