欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

WebCore中的http響應信息維護

系統(tǒng) 2077 0

摘要:WebCore源代碼分析,WebKit,dlmu2001,http模塊,http響應,ResourceResponse,ResourceHandle,ResourceRequest,DocumentLoader,瀏覽器內(nèi)核,curl

在“WebCore中的http請求信息維護”中,我們曾經(jīng)簡單介紹過http的原理,并分析了WebCore中對請求信息的維護,這篇文章則分析WebCore對http響應信息的維護。

1. 作用

ResourceResponse負責維護服務器返回的http響應的信息,包括http的頭部、體部及其它信息。

2. ResourceResponse類分析

ResourceResponse繼承自ResourceResponseBase,大部分功能在ResourceResponseBase類中實現(xiàn)。

FastAllocBase—>ResourceResonseBase—>ResourceResponse

ResourceResponseBase類成員變量一般由http響應的信息轉換而來:

      KURL m_url; String m_mimeType;
      
        long
      
      
        long
      
      m_expectedContentLength; String m_textEncodingName; String m_suggestedFilename;
      
        int
      
      m_httpStatusCode; String m_httpStatusText; HTTPHeaderMap m_httpHeaderFields; time_t m_lastModifiedDate; bool m_wasCached : 1;
      
        unsigned
      
      m_connectionID; bool m_connectionReused : 1; RefPtr<ResourceLoadTiming> m_resourceLoadTiming; bool m_isNull : 1;
    

響應頭部以HTTPHeaderMap的結構存儲,要查找某一個頭部的值,可以參考FrameLoader::didBeginDocument函數(shù)中"X-DNS-Prefetch-Control"擴展頭部的讀取。

m_suggestedFilename用來設置下載的時候默認的文件名(擴展頭部Content-Disposition指定)。

m_textEncodingName用來存儲Charset頭部,在“Webcore中文本資源編解碼”一文中,我們介紹過文本編碼的確定方式,這里是http頭部指定的方式。

3. ResourceResponse類的維護及上下文

一個html幀對應于一個DocumentLoader,而一個html幀中,會有一個html資源,多個派生資源(image,css,object等),所以每個DocumentLoader維護一個m_response,對應于html資源,維護一個ResourceResponse數(shù)組(ResponseVector m_responses),對應于派生資源(SubresourceLoader)。

類DocumentLoader中既包含ResourceRequest對象,也包含ResourceResponse對象。DocumentLoader中封裝了部分ResourceRequest和ResourceResponse的接口。

ResourceLoader類中也維護了ResourceResponse對象,在調(diào)用didReceiveResponse接口的時候會設置這個對象。

ResourceHandle類維護了ResourceResonse類對象,這是直接同http實現(xiàn)(curl)打交道的類,如curl的headCallback里面,會把相應的頭部信息設置到這個對象中。

下面是一些函數(shù)調(diào)用系列圖:

      
      
        html頁面http請求回調(diào)系列
      
    
      
      
        派生資源http請求回調(diào)系列
      
      
4. 其它

MainResourceLoader::willSendRequest發(fā)起請求前會根據(jù)ResourceResponse的statusCode判斷是否是重定向請求,如果是,設置緩存策略為ReloadIgnoringCacheData

當OFFLINE_WEB_APPLICATIONS宏打開,啟用離線web應用功能的時候,如果服務器返回4**或者5**的響應,就載入對應的Fallback Resource(這里4**是否進行進一步分類比較好?)

版權聲明:本文版權屬于dlmu2001,如有轉載,請注明來源于blog.csdn.net/dlmu2001,謝謝。

WebCore中的http響應信息維護


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本色播 | 欧美白人黑人xxxx猛交 | 日韩精品视频在线 | 午夜视频色 | 挑战者联盟第一季免费观看完整版 | 亚洲精品一区二区三区四区高清 | 亚洲自偷自偷精品 | 成 性毛茸茸xx免费视频 | 亚洲成av人片在线观看 | 日本翁熄系列乱在线视频 | 欧美日韩北条麻妃一区二区 | 91中文字幕在线观看 | 色婷婷AV99XX| 欧美五月激情 | 日产一卡二卡乱码免费 | 综合久久亚洲 | 精品一区二区三区四区五区 | 国产成人禁片免费观看 | 国产精品亚洲片在线va | 九九99国产精品视频 | 日本精品久久久久久久久免费 | 一本伊大人香蕉久久网手机 | 亚洲精品一区二区 | 久久综合丁香激情久久 | 五月天播播网 | 亚洲AV久久综合无码东京 | 日韩免费观看视频 | 看全色黄大色黄大片爽一次 | 亚洲综合干 | 君岛美绪一区二区三区 | 亚洲自拍偷拍色图 | 婷婷亚洲五月琪琪综合 | 日韩三 | 末成年毛片在线播放 | 午夜久久久久久久久久一区二区 | 欧美色综合天天久久综合精品 | 免费一级毛片麻豆精品 | 欧美日本国产VA高清CABAL | 操操片 | 午夜日韩 | 91热久久免费频精品黑人99 |