国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
解決HTTP數(shù)據(jù)不更新問(wèn)題——no-cache在HTTP通信協(xié)議中的應(yīng)用
解決HTTP數(shù)據(jù)不更新問(wèn)題——no-cache在HTTP通信協(xié)議中的應(yīng)用收藏 收藏
來(lái)源:http://blog.csdn.net/froole/archive/2009/02/13/3886957.aspx HTTP服務(wù)器向客戶(hù)端返回的頭信息中可以包含Cache-Control:no-cache信息,意為“數(shù)據(jù)內(nèi)容不被儲(chǔ)存”。很多WEB程序設(shè)計(jì)中,通常并不需要考慮這一點(diǎn)。但是,對(duì)相同URL的請(qǐng)求,并需要?jiǎng)討B(tài)數(shù)據(jù)時(shí),就需要程序員對(duì)服務(wù)器返回頭信息的進(jìn)行修改。例如,通過(guò)Ajax向同一個(gè)URL發(fā)送請(qǐng)求、頁(yè)面訪(fǎng)問(wèn)同一個(gè)URL并需要?jiǎng)討B(tài)顯示頁(yè)面內(nèi)容。在不對(duì)服務(wù)器所返回頭信息做任何修飾的情況下,Cache-Control可能不被添加,此時(shí),瀏覽器將緩存從服務(wù)器取得的信息。如果再次訪(fǎng)問(wèn)網(wǎng)頁(yè),瀏覽器會(huì)直接讀取緩存數(shù)據(jù),而非訪(fǎng)問(wèn)HTTP服務(wù)器,如果通過(guò)代理再次訪(fǎng)問(wèn)網(wǎng)頁(yè),那么,代理服務(wù)器將會(huì)直接向?yàn)g覽器返回一個(gè)302狀態(tài),命令瀏覽器從緩存讀取數(shù)據(jù)。 本文想定開(kāi)發(fā)人員遭遇以下兩種情況: 1.Ajax中,需要通過(guò)一個(gè)URL適時(shí)提取動(dòng)態(tài)數(shù)據(jù)(例如,使用DWR提取某個(gè)POJO的數(shù)據(jù)); 2.在一個(gè)網(wǎng)頁(yè)中,通過(guò)對(duì)某個(gè)連接的重復(fù)訪(fǎng)問(wèn)(發(fā)送請(qǐng)求),動(dòng)態(tài)讀取不同的頁(yè)面數(shù)據(jù)(例如,根據(jù)某個(gè)項(xiàng)目的列排序)。 如果可以在設(shè)計(jì)階段,就已經(jīng)考慮到通過(guò)URL參數(shù),改變URL,倒也不需要考慮緩存的問(wèn)題。但是,如果URL相同,就會(huì)出現(xiàn)相應(yīng)數(shù)據(jù)更新遲緩的現(xiàn)象。例如,如果訪(fǎng)問(wèn)速度相對(duì)較快,第一次訪(fǎng)問(wèn)和第二次訪(fǎng)問(wèn)的數(shù)據(jù),在同一個(gè)客戶(hù)端是相同的。也就是HTTP數(shù)據(jù)不更新/更新遲緩現(xiàn)象。解決此問(wèn)題的方法,就是向服務(wù)器的返回頭信息“Cache-Control:no-cache”。 PHP的情況,可以向相應(yīng)的返回處理中添加以下代碼: view plaincopy to clipboardprint? header("Cache-Control: no-cache"); header("Cache-Control: no-cache"); Java的情況,可以定義相應(yīng)的URL,通過(guò)操作HttpServletResponse定義頭信息,如下: view plaincopy to clipboardprint? public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } 以上兩個(gè)例子,雖然是在不同語(yǔ)言下的實(shí)現(xiàn),但是從HTTP協(xié)議通信的角度,其效果是類(lèi)似的。 使用Cache-Control需要注意的通過(guò)控制Cache-Control頭信息,可以讓瀏覽器(代理服務(wù)器)及時(shí)更新請(qǐng)求數(shù)據(jù)。但是要注意的是,只有在HTTP1.1下才Cache-Control被支持。當(dāng)然,HTTP的版本在大多數(shù)WEB開(kāi)發(fā)中,同樣不需要考慮。而目前的主流瀏覽器也都是默認(rèn)支持HTTP1.1。但是,如果使用IE6,并且通過(guò)代理服務(wù)器訪(fǎng)問(wèn)網(wǎng)站的時(shí)候,瀏覽器的HTTP請(qǐng)求就要變成HTTP1.0了。這個(gè)時(shí)候,Cache-Control就會(huì)失效,而且無(wú)法從服務(wù)器端控制HTTP協(xié)議版本。只能通過(guò)瀏覽器的設(shè)定來(lái)解決,方法是,通過(guò)IE詳細(xì)設(shè)置中的HTTP1.1設(shè)定來(lái)解決。如果可能,也可以把目標(biāo)服務(wù)器排除在代理目標(biāo)之外。
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/tongdoudpj/archive/2009/02/15/3894103.aspx
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
谷歌 Web 開(kāi)發(fā)最佳實(shí)踐手冊(cè)(4.2.3):HTTP 緩存
html頁(yè)面清除緩存
Http頭介紹:Expires,Cache
什么是HTTP緩存機(jī)制
程序設(shè)計(jì)中緩存的使用
一文輕松讀懂經(jīng)典的HTTP協(xié)議(由請(qǐng)求和響應(yīng)構(gòu)成打開(kāi)頭條的Web頁(yè)面通過(guò)F12打開(kāi)控制臺(tái)我們挑選一個(gè)請(qǐng)求來(lái)分析下HTTP的結(jié)構(gòu))
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服