XXX2高清在线观看免费视频,free国产粉嫩熟妇xxxhd,亚洲欧美日韩在线不卡,久久久精品人妻一区二区三区蜜桃

青島網(wǎng)站建設(shè)公司,青島網(wǎng)站制作公司-奈薇建站網(wǎng)
建站咨詢(xún)熱線:0532-88781131、15166683288 
知識(shí)普及 ? 什么是cache緩存

什么是cache緩存

奈薇網(wǎng)站制作 2016-08-14 18:24發(fā)表
閱讀次數(shù) 2850
  一個(gè)使用緩存Cache的站點(diǎn)會(huì)監(jiān)聽(tīng)客戶端向服務(wù)器端發(fā)出的請(qǐng)求,并保存服務(wù)器端的回應(yīng)——比如HTML頁(yè)面、圖片等文件。接著,如果有另外一個(gè)使用相同URL發(fā)送請(qǐng)求,他能夠使用之前已經(jīng)保存下來(lái)的反饋文件,而不是再次向服務(wù)器發(fā)出請(qǐng)求。

  有兩個(gè)主要的理由讓人們使用緩存:

  減少延遲—因?yàn)樗l(fā)出的網(wǎng)頁(yè)請(qǐng)求是指向更接近客戶端的緩存而不再是源服務(wù)器端,因此請(qǐng)求所花費(fèi)時(shí)間更短,這讓網(wǎng)站看上去反應(yīng)更快。

  降低網(wǎng)絡(luò)負(fù)荷—因?yàn)榫彺嫖募梢灾貜?fù)使用,節(jié)省了不少的帶寬.這也給用戶省了不少流量.

  緩存Caches種類(lèi)

  瀏覽器緩存Caches

  在現(xiàn)代瀏覽器(比如IE、Chrome、Mozilla等等)都有緩存設(shè)置選項(xiàng),它可以將你瀏覽過(guò)的網(wǎng)頁(yè)全部保存到你本地電腦的硬盤(pán)中。當(dāng)你點(diǎn)擊瀏覽器的“后退”或者曾經(jīng)瀏覽過(guò)的頁(yè)面的鏈接時(shí)就能使用這種緩存了,同樣的,如果你在自己的網(wǎng)站使用導(dǎo)航圖片,瀏覽器緩存也能迅速地做出反應(yīng)。瀏覽器緩存原理機(jī)制(擴(kuò)展閱讀>>)如下圖所示:

  代理緩存Caches

  web代理緩存使用相同的原理,但卻有大得多的規(guī)模,代理可以用相同的方法為幾百甚至幾千的使用者服務(wù);一些大公司和ISPs通常為它們?cè)O(shè)置了防火墻,或者單獨(dú)的設(shè)備。

  因?yàn)榇砭彺婕炔粚儆诳蛻舳艘膊粚儆诜?wù)器端,而是利用網(wǎng)絡(luò)路由請(qǐng)求信息。有一種方式可以做到這一點(diǎn),就是手動(dòng)設(shè)置瀏覽器的代理。你還可以使用網(wǎng)頁(yè)代理,網(wǎng)頁(yè)代理將你的url請(qǐng)求通過(guò)它潛在的網(wǎng)絡(luò)定向到他們,所以用戶甚至無(wú)須手動(dòng)配置它們。

  代理緩存是共享緩存的一種,不是只有一個(gè)人正在使用它們,而是同時(shí)又大量的用戶,因?yàn)樗麄兛梢苑浅:玫墓?jié)約了帶寬和網(wǎng)頁(yè)延遲。

  網(wǎng)關(guān)緩存

  就像前面提到的“反向代理緩存”和“代理緩存”,網(wǎng)關(guān)緩存同樣是充當(dāng)一種代理的角色,通過(guò)網(wǎng)絡(luò)管理員(或是站長(zhǎng)自己),可以讓帶寬更有效的利用,讓他們的網(wǎng)站變得更加可靠。

  Contentdeliverynetworks(CDNs)出售他們的緩存服務(wù).SpeederaandAkamai就是非常著名的CDNs.

  緩存對(duì)網(wǎng)站的影響?怎樣正確地使用緩存?

  網(wǎng)站的緩存經(jīng)常被誤解,站長(zhǎng)認(rèn)為代理緩存可以“隱藏”起來(lái),給他們的用戶帶去麻煩的同時(shí),又不能及時(shí)地更新網(wǎng)站的內(nèi)容。本教程可以讓你網(wǎng)站的教程變得友好起來(lái)。CDNs不像代理緩存,他們的網(wǎng)關(guān)服務(wù)緩存可以根據(jù)網(wǎng)站自行設(shè)置。另一方面,這種緩存還能加快你網(wǎng)站的加載速度,用戶體驗(yàn)得到質(zhì)的提高。

  許多大公司花費(fèi)了幾百萬(wàn)美金在全世界的進(jìn)行服務(wù)器集群來(lái)復(fù)制他們的網(wǎng)站內(nèi)容,就是為了保證使用網(wǎng)站的用戶能保持最快的響應(yīng)速度。緩存能夠?yàn)槟阕鐾瑯拥氖拢踔量梢哉f(shuō)緩存更接近終端用戶,而這一切是免費(fèi)的。

  不管你愿不愿意,代理緩存和瀏覽器緩存是既存的事實(shí)。如果你不能夠正確地配置你網(wǎng)站緩存,網(wǎng)站將始終保持緩存功能。

  網(wǎng)站緩存的工作原理

  所有的緩存都有一整套工作機(jī)制(當(dāng)然,在緩存沒(méi)有被禁止的前提下),其中一些規(guī)則來(lái)自于HTTP協(xié)議(擴(kuò)展閱讀>>)(HTTP

  1.0和

  1.1),另一些則來(lái)自管理員(有可能是瀏覽器,也有可能是代理)。

  通常來(lái)說(shuō),它們有一些共有的規(guī)則:

  header響應(yīng)頭部分可以設(shè)置了是否進(jìn)行緩存.

  如果請(qǐng)求是經(jīng)過(guò)HTTP認(rèn)證(HTTPAUTH擴(kuò)展閱讀>>)或是SSL安全鏈接(i.e.,HTTPS),緩存也無(wú)法工作.

  如果符合以下條件,緩存機(jī)制的啟用是通過(guò)頁(yè)面的刷新引起(不需要經(jīng)過(guò)檢測(cè)服務(wù)器就可以直接發(fā)送到客戶端):

  時(shí)間沒(méi)有超過(guò)已設(shè)置的緩存頁(yè)面過(guò)期時(shí)間或者其它類(lèi)似age-controlling(指示客戶機(jī)可以接收生存期不大于指定時(shí)間的響應(yīng))的設(shè)置。

  緩存是最近請(qǐng)求時(shí)保存的,或是緩存修改的時(shí)間也是新的。

  當(dāng)資源過(guò)期時(shí)(使用Cache-Control標(biāo)識(shí)的max-age),發(fā)現(xiàn)資源具有Last-Modified(Etag)聲明,則再次向web服務(wù)器請(qǐng)求時(shí)帶上頭If-Modified-Since(If-None-Match),表示客戶端請(qǐng)求時(shí)間。web服務(wù)器收到請(qǐng)求后發(fā)現(xiàn)有頭If-Modified-Since(If-None-Match)則與被請(qǐng)求資源的最后修改時(shí)間進(jìn)行比對(duì)。若最后修改時(shí)間較新,說(shuō)明資源又被改動(dòng)過(guò),則響應(yīng)整片資源內(nèi)容(寫(xiě)在響應(yīng)消息包體內(nèi)),HTTP200;若最后修改時(shí)間較舊,說(shuō)明資源無(wú)新修改,則響應(yīng)HTTP304(無(wú)需包體,節(jié)省瀏覽),告知瀏覽器繼續(xù)使用所保存的cache。

  特定情況—比如,與服務(wù)器斷開(kāi)連接—緩存會(huì)直接作為請(qǐng)求的響應(yīng).

  刷新和驗(yàn)證都是緩存機(jī)制作用于網(wǎng)站內(nèi)容的方式,用戶行為和瀏覽器緩存之間的聯(lián)系可參考下圖:

  用戶行為和瀏覽器緩存

  用戶行為和瀏覽器緩存

  如何設(shè)置網(wǎng)站的緩存Caches

  有一些工具可以幫助站長(zhǎng)和開(kāi)發(fā)人員為他們的網(wǎng)站設(shè)置緩存。它可能會(huì)要求配置你的服務(wù)器,更具體的內(nèi)容點(diǎn)擊這里Implementation。

  HTMLMeta標(biāo)簽Tagsvs.HTTP報(bào)頭Headers

  我們可以在HTML文件中的<HEAD>部分寫(xiě)入tag標(biāo)簽來(lái)描述該文件的屬性。metatags常??梢杂脕?lái)標(biāo)簽文件是否啟用緩存和設(shè)置緩存的過(guò)期時(shí)間。Metatags很容易使用,但是卻很沒(méi)效率.那是因?yàn)樗麄冎粚?duì)瀏覽器部分的緩存有用,而代理緩存(代理從來(lái)不會(huì)讀取HTML文件).如果你的主機(jī)放在ISP或者集群服務(wù)器,他們講不會(huì)給你隨意寫(xiě)入HTTP協(xié)議的權(quán)限(Expires以及Cache-Control).

  另一方面,真正的HTTPheaders是不能在HTML文件里看到的,他們通常由Web服務(wù)器自動(dòng)地生成.即使這樣,你仍然可以依據(jù)網(wǎng)站所在的服務(wù)器,在某種程度上控制它們。接下來(lái),你講發(fā)現(xiàn)HTTP協(xié)議headers十分有趣.

  HTTPheaders在服務(wù)器端發(fā)送HTML之前就已經(jīng)傳輸了,你只能通過(guò)類(lèi)似firebug之類(lèi)的瀏覽器插件檢查.典型的HTTP

  1.1頭部響應(yīng)就像下面這段代碼:

  HTTP/1.1200OK

  Date:Fri,30Oct199813:19:41GMT

  Server:Apache/1.3.3(Unix)

  Cache-Control:max-age=3600,must-revalidate

  Expires:Fri,30Oct199814:19:41GMT

  Last-Modified:Mon,29Jun199802:28:12GMT

  ETag:"3e86-410-3596fbbc"

  Content-Length:1040

  Content-Type:text/html

  HTML將出現(xiàn)在這些頭部信息的下面,更多設(shè)置HTTPHeaders方法Implementation點(diǎn)擊這里.

  PragmaHTTPHeaders(為什么HTTP頭對(duì)緩存不起作用?)

  許多人相信設(shè)置一個(gè)Pragma:no-cacheHTTP協(xié)議可以控制緩存是否開(kāi)啟。這其實(shí)不是完全正確的。HTTP協(xié)議的詳細(xì)說(shuō)明中并沒(méi)有設(shè)置任何有關(guān)Pragma的條例,相反,Pragma請(qǐng)求十分有爭(zhēng)議。雖然一部分緩存會(huì)受到此參數(shù)的影響,但大多數(shù)一點(diǎn)作用也沒(méi)有,請(qǐng)使用header頭協(xié)議代替它!

  HTTPHeader控制緩存更新

  過(guò)期HTTP協(xié)議header是控制緩存的基本意義所在。它能夠告訴所有的緩存生存時(shí)間。超過(guò)了那個(gè)時(shí)間,緩存就要去請(qǐng)求一次服務(wù)器來(lái)查看網(wǎng)頁(yè)文件是否已經(jīng)更新。過(guò)期時(shí)間的頭部設(shè)置幾乎支持所有的緩存。

  大多數(shù)的網(wǎng)站服務(wù)器允許你有好幾種的方式來(lái)設(shè)置過(guò)期頭部信息。通常,允許設(shè)置一個(gè)確定的過(guò)期時(shí)間(與用戶最新一次發(fā)出請(qǐng)求的時(shí)間做對(duì)比),或者是服務(wù)器端的最后一次修改網(wǎng)頁(yè)文件的時(shí)間。

  過(guò)期時(shí)間的頭部設(shè)置尤其對(duì)生成靜態(tài)的圖片有好處(比如logo,按鈕等)。因?yàn)樗麄儾粫?huì)有太多的改動(dòng),你能夠?qū)λ鼈冊(cè)O(shè)置很長(zhǎng)的過(guò)期時(shí)間,使得你的站點(diǎn)響應(yīng)更快。這種方式對(duì)更新很有規(guī)律的頁(yè)面同樣受用。比如,如果你更新一個(gè)新聞頁(yè)面在每天6點(diǎn)鐘左右,你就可以把過(guò)期時(shí)間設(shè)置為那個(gè)時(shí)間點(diǎn),這樣一來(lái),即使你的用戶沒(méi)有點(diǎn)擊“重新加載”也能夠更新緩存。

  注意:Expires的值是HTTP協(xié)議日期,任何其它值都會(huì)被當(dāng)做已過(guò)期緩存的時(shí)間,這就會(huì)直接導(dǎo)致無(wú)法進(jìn)行頁(yè)面緩存。HTTP協(xié)議日期是格林威治時(shí)間而不是你的本地時(shí)間。

  Forexample:

  Expires:Fri,30Oct199814:19:41GMT

  當(dāng)你要使用Expires參數(shù)時(shí),確保你的網(wǎng)站服務(wù)器時(shí)間精確,這一點(diǎn)非常重要。你可以用NetworkTimeProtocol(NTP)做到這一點(diǎn)。雖然Expires過(guò)期時(shí)間的設(shè)置很有用,但是依然限制很多,首先,它涉及一個(gè)時(shí)間,網(wǎng)站服務(wù)器時(shí)間必須和緩存時(shí)間保持同步。另一問(wèn)題就是,你很容易忘記一些已經(jīng)設(shè)置了Expires的網(wǎng)頁(yè),如果你沒(méi)有在超過(guò)網(wǎng)站的過(guò)期時(shí)間之前更新Expires,以后的每個(gè)請(qǐng)求都會(huì)返回到您的Web服務(wù)器,增加負(fù)載和延遲。

  HTTPHeader參數(shù)Cache-Control

  HTTP

  1.1(互動(dòng)百科|維基百科)引入了Cache-Control響應(yīng)頭參數(shù)以給站長(zhǎng)們更多控制網(wǎng)站內(nèi)容的權(quán)力,同時(shí)彌補(bǔ)了Expires的局限.

  Cache-Control的參數(shù)包括:

  max-age=[單位:秒seconds]—設(shè)置緩存最大的有效時(shí)間.類(lèi)似于Expires,但是這個(gè)參數(shù)定義的是時(shí)間大?。ū热纾?0)而不是確定的時(shí)間點(diǎn).單位是[秒seconds].

  s-maxage=[單位:秒seconds]—類(lèi)似于max-age,但是它只用于公享緩存(e.g.,proxy).

  public—響應(yīng)會(huì)被緩存,并且在多用戶間共享。正常情況,如果要求HTTP認(rèn)證,響應(yīng)會(huì)自動(dòng)設(shè)置為private.

  private—響應(yīng)只能夠作為私有的緩存(e.g.,在一個(gè)瀏覽器中),不能再用戶間共享。

  no-cache—響應(yīng)不會(huì)被緩存,而是實(shí)時(shí)向服務(wù)器端請(qǐng)求資源。這一點(diǎn)很有用,這對(duì)保證HTTP認(rèn)證能夠嚴(yán)格地禁止緩存以保證安全性很有用(這是指頁(yè)面與public結(jié)合使用的情況下).既沒(méi)有犧牲緩存的效率,又能保證安全。

  no-store—在任何條件下,響應(yīng)都不會(huì)被緩存,并且不會(huì)被寫(xiě)入到客戶端的磁盤(pán)里,這也是基于安全考慮的某些敏感的響應(yīng)才會(huì)使用這個(gè)。

  must-revalidate—響應(yīng)在特定條件下會(huì)被重用,以滿足接下來(lái)的請(qǐng)求,但是它必須到服務(wù)器端去驗(yàn)證它是不是仍然是最新的。

  proxy-revalidate—類(lèi)似于must-revalidate,但不適用于代理緩存.

  Forexample:

  Cache-Control:max-age=3600,must-revalidate

  如果Cache-Control和Expires同時(shí)設(shè)置,Cache-Control優(yōu)先.如果你打算使用Cache-Control,別忘記好好看看關(guān)于HTTP

  1.1協(xié)議的文檔。【查看ReferencesandFurtherInformation更多相關(guān)信息>>.】

  緩存的驗(yàn)證程序

  之前我們討論過(guò)網(wǎng)站緩存是如何工作的?,我們所討論的緩存驗(yàn)證指,當(dāng)響應(yīng)的資源做出了改變時(shí),服務(wù)器與緩存之間的通信所使用的驗(yàn)證。通過(guò)這種驗(yàn)證,如果在本地已有一份拷貝資源,緩存就可以避免下載整個(gè)資源文件。

  驗(yàn)證器十分重要:假如沒(méi)有它,就沒(méi)有更新的報(bào)頭(ExpiresorCache-Control),緩存將無(wú)法存儲(chǔ)響應(yīng)資源.大多數(shù)的驗(yàn)證程序是記錄了資源最后一次修改的時(shí)間(報(bào)頭參數(shù)中的Last-Modified),當(dāng)緩存保存了包含參數(shù)Last-Modified的響應(yīng)資源時(shí),它將使用一個(gè)包含參數(shù)If-Modified-Since的請(qǐng)求與服務(wù)器上資源的最后修改時(shí)間做對(duì)比,以查看資源是否已作出改變。

  HTTP

  1.1協(xié)議同時(shí)引入一個(gè)新的驗(yàn)證器,名為Etag。這種驗(yàn)證器擁有特殊的標(biāo)示符,它來(lái)自于服務(wù)器,并且隨著響應(yīng)資源的改變而改變。簡(jiǎn)單點(diǎn)即服務(wù)器響應(yīng)時(shí)給請(qǐng)求URL標(biāo)記,并在HTTP響應(yīng)頭中將其傳送到客戶端,在Http響應(yīng)頭中包含Etag:“5d8c72a5edda8d6a:3239”標(biāo)識(shí),等于告訴客戶端,你拿到的這個(gè)的資源有表示ID:5d8c72a5edda8d6a:3239。當(dāng)下次需要發(fā)Request索要同一個(gè)URI的時(shí)候,瀏覽器同時(shí)發(fā)出一個(gè)If-None-Match報(bào)頭(HttpRequestHeader)此時(shí)包頭中信息包含上次訪問(wèn)得到的,即Etag:“5d8c72a5edda8d6a:3239”標(biāo)識(shí):

  If-None-Match:"5d8c72a5edda8d6a:3239"

  這樣,客戶端等于Cache了兩份,服務(wù)器端就會(huì)比對(duì)2者的Etag。如果If-None-Match為False,返回304(緩存讀取),不返回200(服務(wù)器讀取)。

  幾乎所有的緩存都是使用了Last-Modified作為驗(yàn)證器,而Etag有更高的優(yōu)先權(quán)。大多數(shù)的網(wǎng)站服務(wù)器將自動(dòng)產(chǎn)生ETag及Last-Modified作為靜態(tài)內(nèi)容的驗(yàn)證器(i.e.,files);你不需要做任何改變。但是,對(duì)于動(dòng)態(tài)內(nèi)容(像CGI,PHPordatabasesites之類(lèi))卻毫無(wú)作用;你可以查看本文介紹的相關(guān)內(nèi)容怎樣寫(xiě)動(dòng)態(tài)網(wǎng)站的緩存腳本.

  設(shè)置優(yōu)良的網(wǎng)站緩存機(jī)制方法

  有很多的方法可以讓你的網(wǎng)站緩存更加友好:

  使用一致的URLs—這是使用緩存的黃金法則.如果你為不同的用戶提供、或是從不同的網(wǎng)站采集相同的內(nèi)容到不同的網(wǎng)站頁(yè)面,請(qǐng)使用一條URL地址。Forexample,如果你一旦使用了“/index.html”,對(duì)于其他的HTML文件URL也采用相同的命名方式.

  使用圖片庫(kù)來(lái)查閱不同地方使用的圖片.

  創(chuàng)建緩存保存不常變動(dòng)的圖片和頁(yè)面,可以把參數(shù)Cache-Control:max-age報(bào)頭參數(shù)的值設(shè)置得大些.

  為規(guī)律更新的網(wǎng)頁(yè)設(shè)置定時(shí)緩存,可以設(shè)置合適的max-ageorexpiration時(shí)間參數(shù).

  如果一個(gè)資源(尤其是可下載文件)改變了,把它的名字也改了.用這種方式,你可以讓緩存在很長(zhǎng)的一段時(shí)間之后才過(guò)期,并且保證提供的版本是正確的。鏈接到改資源的網(wǎng)頁(yè)需要將緩存時(shí)間設(shè)置得短一些.

  除非必要,不要隨意修改文件.如果隨意修改,報(bào)頭參數(shù)Last-Modified將始終使用最新的日期.比如,當(dāng)你升級(jí)網(wǎng)站,不要復(fù)制整個(gè)站點(diǎn);只要移動(dòng)你修改的文件即可.

  只在有必要的地方使用cookies—cookies非常難緩存,大多數(shù)情況也沒(méi)必要緩存.如果你一定需要有cookies,將它們限制在動(dòng)態(tài)頁(yè)面中.

  盡量少地使用SSL安全協(xié)議—因?yàn)榧用艿捻?yè)面將不會(huì)采用共享緩存的方式儲(chǔ)存,盡量在需要的時(shí)候使用SSL,并且在SSL頁(yè)面盡量少用圖片.

  用REDbot檢測(cè)你的網(wǎng)站頁(yè)面—本教程所描述的大多數(shù)概念在使用該工具時(shí)都很有用.

  怎樣寫(xiě)動(dòng)態(tài)網(wǎng)站的緩存腳本

  默認(rèn)情況下,大多數(shù)的腳本語(yǔ)言將不會(huì)返回驗(yàn)證器(Last-ModifiedorETag響應(yīng)頭)或者緩存更新提示(ExpiresorCache-Control)。同時(shí),一些真正的腳本語(yǔ)言是動(dòng)態(tài)的(意味著他們對(duì)每個(gè)請(qǐng)求返回不同的響應(yīng)資源),大多數(shù)站點(diǎn)(像搜索引擎和數(shù)據(jù)庫(kù)驅(qū)動(dòng)站點(diǎn))都能從緩存腳本從受益。

  一般來(lái)講,如果在間隔的時(shí)間段(不管是相差幾天還是幾分鐘),發(fā)出相同的請(qǐng)求,能夠復(fù)寫(xiě)一個(gè)腳本輸出,那么它就能夠緩存。如果腳本輸出的內(nèi)容會(huì)隨著URL的改變而改變,也是可以進(jìn)行緩存的;但是如果腳本輸出要依賴(lài)cookies,認(rèn)證等,則不能緩存。

  寫(xiě)一個(gè)優(yōu)良的緩存腳本的最好辦法是:不管內(nèi)容何時(shí)更改,都將腳本的內(nèi)容輸出到普通的文件中,以便網(wǎng)站的服務(wù)器能夠想其他網(wǎng)頁(yè)一樣對(duì)待它,從而生成和使用緩存的驗(yàn)證器。記住只對(duì)那些已經(jīng)改變的文件進(jìn)行寫(xiě)入,這樣可以讓Last-Modified的值被保護(hù)起來(lái).

  另一個(gè)讓腳本可以緩存的方法是,設(shè)置一個(gè)有關(guān)存活時(shí)間的響應(yīng)頭,值設(shè)置為腳本能夠使用的時(shí)間。雖然Expires設(shè)置可以實(shí)現(xiàn)這一點(diǎn),但是設(shè)置Cache-Control:max-age是最簡(jiǎn)單的,它可以在一次請(qǐng)求發(fā)生后的一段時(shí)間里又發(fā)出新的請(qǐng)求。

  如果你不能做到這些,你將需要讓腳本生成一個(gè)驗(yàn)證器,然后對(duì)瀏覽器發(fā)出請(qǐng)求中的If-Modified-Since和/或If-None-Match做出響應(yīng).通過(guò)分析HTTP頭你能夠做到這一點(diǎn),只要在適當(dāng)?shù)臅r(shí)候返回304(緩存讀取)響應(yīng)狀態(tài)即可。

  小技巧:

  如非必要,盡量不使用POST方式.大多數(shù)的緩存無(wú)法保持對(duì)POST方式響應(yīng),你過(guò)你想通過(guò)路徑或請(qǐng)求(GET)發(fā)送一些信息,緩存能夠在未來(lái)存貯信息。

  除非整個(gè)內(nèi)容是要呈現(xiàn)給完整的用戶,否則不要用URL來(lái)傳遞用戶的身份信息.

  不要指望來(lái)自一個(gè)用戶的所有請(qǐng)求都是從同一個(gè)主機(jī)發(fā)出的,因?yàn)榫彺娼?jīng)常一起產(chǎn)生作用.

  設(shè)置響應(yīng)頭中的Content-Length(用于描述HTTP消息實(shí)體的傳輸長(zhǎng)度).它允許你的腳本可以在長(zhǎng)連接通信時(shí)仍有響應(yīng),并且客戶端可以通過(guò)一個(gè)TCP/IP連接請(qǐng)求不同的資源,而不是為一次請(qǐng)求的都建立一個(gè)通信.

  點(diǎn)擊查看更多內(nèi)容.

  緩存常見(jiàn)問(wèn)題大全

  哪些內(nèi)容是需要設(shè)置為緩存的?

  有一個(gè)很好的策略,確定出網(wǎng)站最多人瀏覽、數(shù)據(jù)量(尤其是圖片)最大的部分。

  我怎樣用緩存讓我的網(wǎng)頁(yè)盡可能快?

  大多數(shù)的緩存響應(yīng)資源都設(shè)置了刷新請(qǐng)求時(shí)間,緩存驗(yàn)證可以幫助你減少查看資源是否更新的時(shí)間,但是緩存始終是需要和服務(wù)器通信來(lái)檢查更新的。

  我已經(jīng)知道緩存的優(yōu)勢(shì),但我需要為我的頁(yè)面統(tǒng)計(jì)流量數(shù)據(jù)!

  如果你必須知道頁(yè)面每次被瀏覽的數(shù)據(jù),你可以在頁(yè)面上分類(lèi)一小部分設(shè)置為不緩存,比如,將一個(gè)1*1大小的圖片放到每一個(gè)頁(yè)面中,相關(guān)的響應(yīng)頭將包含所在頁(yè)面的信息。

  考慮到這樣做不僅無(wú)法統(tǒng)計(jì)有關(guān)準(zhǔn)確的用戶數(shù)據(jù),并且有害于網(wǎng)絡(luò)和用戶(產(chǎn)生無(wú)效流量,增加延遲時(shí)間),你可以考慮使用第三方統(tǒng)計(jì)工具相關(guān)信息>>.

  如何查看HTTP協(xié)議頭?

  許多瀏覽器可以在頁(yè)面信息中查看到Expires和Last-Modified頭部參數(shù),也可用Chrome或是Mozilla的firebug查看.

  如果響應(yīng)更完整的響應(yīng)頭信息,你可以用Telnet客戶端來(lái)連接網(wǎng)站,方法如下:

  第一步:在“開(kāi)始”菜單中,點(diǎn)擊“運(yùn)行”命令,輸入“telnetnev.cn:80”。

  第二步:打開(kāi)本地顯示。輸入你想要查看的響應(yīng)頭地址,比如,你想查看頁(yè)面http://nev.cn/683_webfilecoding.html

  GET/683_webfilecoding.htmlHTTP/1.1[return]

  Host:nev.cn[return][return]

  每次看到[return]時(shí)按下回車(chē);最后要點(diǎn)擊兩次回車(chē).它將打印所有頭部信息,和響應(yīng)資源,如果只需要頭部信息,將GET換成HEAD。

  我的頁(yè)面設(shè)置了密碼保護(hù),代理緩存會(huì)怎樣處理它們呢?

  默認(rèn)情況下,設(shè)置了HTTP認(rèn)證的頁(yè)面會(huì)被當(dāng)做private處理;它們將不會(huì)被共享緩存保存下來(lái)。然而,你能通過(guò)頁(yè)面頭部設(shè)置參數(shù)Cache-Control來(lái)達(dá)到目的;HTTP

  1.1-協(xié)議將會(huì)采用緩存.

  如果你想要這個(gè)頁(yè)面能夠被緩存起來(lái),但是卻能夠驗(yàn)證每一個(gè)用戶,將Cache-Control:public和no-cache結(jié)合起來(lái).它讓客戶端發(fā)送的驗(yàn)證信息在連接數(shù)據(jù)庫(kù)之前先讀取了緩存內(nèi)容:

  Cache-Control:public,no-cache

  不管怎樣,盡量少地使用驗(yàn)證;比如,如果你頁(yè)面的圖片是沒(méi)必要經(jīng)過(guò)驗(yàn)證的,你就把他們放到單獨(dú)的文件夾中,并且配置你的服務(wù)器不要驗(yàn)證它。

  通過(guò)緩存瀏覽我的網(wǎng)站是否安全?

  代理服務(wù)器上SSL頁(yè)面不會(huì)被緩存(不推薦被緩存),所以你不必為此擔(dān)心。但是,由于緩存保存了非SSL請(qǐng)求和從他們抓取的URL,你要意識(shí)到?jīng)]有安全保護(hù)的網(wǎng)站,可能被不道德的管理員可能搜集用戶隱私,特別是通過(guò)URL。

  實(shí)際上,位于服務(wù)器和客戶端之間的管理員可以搜集這類(lèi)信息。特別是通過(guò)CGI腳本在通過(guò)URL傳遞用戶名和密碼的時(shí)候會(huì)有很大問(wèn)題;這對(duì)泄露用戶名和密碼是一個(gè)很大的漏洞;

  如果你初步懂得互聯(lián)網(wǎng)的安全機(jī)制,你不會(huì)對(duì)緩存服務(wù)器有任何。

  我在尋找一個(gè)包含在Web發(fā)布系統(tǒng)解決方案,那些是比較有緩存意識(shí)的系統(tǒng)?

  這很難說(shuō),一般說(shuō)來(lái)系統(tǒng)越復(fù)雜越難緩存。最差就是全動(dòng)態(tài)發(fā)布并不提供校驗(yàn)參數(shù);你無(wú)發(fā)緩存任何內(nèi)容??梢韵蛳到y(tǒng)提供商的技術(shù)人員了解一下,并參考后面的實(shí)現(xiàn)說(shuō)明。

  我的圖片設(shè)置了1個(gè)月后過(guò)期,但是我現(xiàn)在需要現(xiàn)在更新。

  過(guò)期時(shí)間是繞不過(guò)去的,除非緩存(瀏覽器或者代理服務(wù)器)空間不足才會(huì)刪除副本,緩存副本在過(guò)期之間會(huì)被一直使用。

  最好的辦法是改變它們的鏈接,這樣,新的副本將會(huì)從源服務(wù)器上重新下載。記住:引用它們的頁(yè)面本身也會(huì)被緩存。因此,使用靜態(tài)圖片和類(lèi)似內(nèi)容是很容易緩存的,而引用他們的HTML頁(yè)面則要保持非常更新;

  如果你希望對(duì)指定的緩存服務(wù)器重新載入一個(gè)副本,你可以強(qiáng)制使用“刷新”(在FireFox中在reload的時(shí)候按住shift鍵:就會(huì)有前面提到惡Pragma:no-cache頭信息發(fā)出)。或者你可以讓緩存的管理員從他們的界面中刪除相應(yīng)內(nèi)容;

  我運(yùn)行一個(gè)Web托管服務(wù),如何讓我的用戶發(fā)布緩存友好的網(wǎng)頁(yè)?

  如果你使用apahe,可以考慮允許他們使用.htaccess文件并提供相應(yīng)的文檔;

  另外一方面:你也可以考慮在各種虛擬主機(jī)上建立各種緩存策略。例如:你可以設(shè)置一個(gè)目錄/cache-1m專(zhuān)門(mén)用于存放訪問(wèn)1個(gè)月的訪問(wèn),另外一個(gè)/no-cache目錄則被用提供不可存儲(chǔ)副本的服務(wù)。

  無(wú)論如何:對(duì)于大量用戶訪問(wèn)還是應(yīng)該用緩存。對(duì)于大網(wǎng)站,這方面的節(jié)約很明顯(帶寬和服務(wù)器負(fù)載);

  我標(biāo)記了一些網(wǎng)頁(yè)是可緩存的,但是瀏覽器仍然每次發(fā)送請(qǐng)求給服務(wù)。如何強(qiáng)制他們保存副本?

  緩存服務(wù)器并不會(huì)總保存副本并重用副本;他們只是在特定情況下會(huì)不保存并使用副本。所有的緩存服務(wù)器都回基于文件的大小,類(lèi)型(例如:圖片頁(yè)面),或者服務(wù)器空間的剩余來(lái)確定如何緩存。你的頁(yè)面相比更熱門(mén)或者更大的文件相比,并不值得緩存。

  所以有些緩存服務(wù)器允許管理員根據(jù)文件類(lèi)型確定緩存副本的優(yōu)先級(jí),允許某些副本被永久緩存并長(zhǎng)期有效;

  緩存機(jī)制的實(shí)現(xiàn)-Web服務(wù)器端配置

  一般說(shuō)來(lái),應(yīng)該選擇最新版本的Web服務(wù)器程序來(lái)部署。不僅因?yàn)樗鼈儼嗬诰彺娴墓δ?,新版本往往在性能和安全性方面都有很多的改善?br />
  ApacheHTTP服務(wù)器

  Apache有些可選的模塊來(lái)包含這些頭信息:包括Expires和Cache-Control。這些模塊在1.2版本以上都支持;

  這些模塊需要和apache一起編譯;雖然他們已經(jīng)包含在發(fā)布版本中,但缺省并沒(méi)有啟用。為了確定相應(yīng)模塊已經(jīng)被啟用:找到httpd程序并運(yùn)行httpd-l它會(huì)列出可用的模塊,我們需要用的模塊是mod_expires和mod_headers

  如果這些模塊不可用,你需要聯(lián)系管理員,重新編譯并包含這些模塊。這些模塊有時(shí)候通過(guò)配置文件中把注釋掉的配置啟用,或者在編譯的時(shí)候增加-enable-module=expires和-enable-module=headers選項(xiàng)(在apache

  1.3和以上版本)。參考Apache發(fā)布版中的INSTALL文件;

  Apache一旦啟用了相應(yīng)的模塊,你就可以在.htaccess文件或者在服務(wù)器的access.conf文件中通過(guò)mod_expires設(shè)置副本什么時(shí)候過(guò)期。你可設(shè)置過(guò)期從訪問(wèn)時(shí)間或文件修改時(shí)間開(kāi)始計(jì)算,并且應(yīng)用到某種文件類(lèi)型上或缺省設(shè)置,參考模塊的文檔獲得更多信息,或者遇到問(wèn)題的時(shí)候向你身邊的apache專(zhuān)家討教。

  應(yīng)用Cache-Control頭信息,你需要使用mod_headers,它將允許你設(shè)置任意的HTTP頭信息,參考mod_headers的文檔可以獲得更多資料;

  這里有個(gè)例子說(shuō)明如何使用頭信息:

  .htaccess文件允許web發(fā)布者使用命令只在配置文件中用到的命令。他影響到所在目錄及其子目錄;問(wèn)一下你的服務(wù)器管理員確認(rèn)這個(gè)功能是否啟用了。

  ###啟用mod_expires

  ExpiresActiveOn

  ###設(shè)置.gif在被訪問(wèn)過(guò)后1個(gè)月過(guò)期。

  ExpiresByTypeimage/gifA2592000

  ###其他文件設(shè)置為最后修改時(shí)間1天后過(guò)期

  ###(用了另外的語(yǔ)法)

  ExpiresDefault"modificationplus1day"

  ###在index.html文件應(yīng)用Cache-Control頭屬性

  <Filesindex.html>

  HeaderappendCache-Control"public,must-revalidate"

  </Files>

  注意:在適當(dāng)情況下mod_expires會(huì)自動(dòng)計(jì)算并插入Cache-Control:max-age頭信息

  Apache

  2.0的配置和1.3類(lèi)似,更多信息可以參考2.0的mod_expires和mod_headers文檔;

  MicrosoftIIS服務(wù)器

  Microsoft的IIS可以非常容易的設(shè)置頭信息,注意:這只針對(duì)IIS

  4.0服務(wù)器,并且只能在NT服務(wù)器上運(yùn)行。

  為網(wǎng)站的一個(gè)區(qū)域設(shè)置頭信息,先要到管理員工具界面中,然后設(shè)置屬性。選擇HTTPHeader選單,你會(huì)看到2個(gè)有趣的區(qū)域:?jiǎn)⒂脙?nèi)容過(guò)期和定制HTTP頭信息。頭一個(gè)設(shè)置會(huì)自動(dòng)配置,第二個(gè)可以用于設(shè)置Cache-Control頭信息;

  設(shè)置asp頁(yè)面的頭信息可以參考后面的ASP章節(jié),也可以通過(guò)ISAPI模塊設(shè)置頭信息,細(xì)節(jié)請(qǐng)參考MSDN。

  Netscape/iPlanet企業(yè)服務(wù)器

  3.6版本以后,Netscape/iPlanet已經(jīng)不能設(shè)置Expires頭信息了,他從3.0版本開(kāi)始支持HTTP

  1.1的功能。這意味著HTTP

  1.1的緩存(代理服務(wù)器/瀏覽器)優(yōu)勢(shì)都可以通過(guò)你對(duì)Cache-Control設(shè)置來(lái)獲得。

  使用Cache-Control頭信息,在管理服務(wù)器上選擇內(nèi)容管理|緩存設(shè)置目錄。然后:使用資源選擇器,選擇你希望設(shè)置頭信息的目錄。設(shè)置完頭信息后,點(diǎn)擊“OK”。更多信息請(qǐng)參考Netscape/iPlanet企業(yè)服務(wù)器的手冊(cè)。

  緩存機(jī)制的實(shí)現(xiàn):服務(wù)器端腳本

  需要注意的一點(diǎn)是:也許服務(wù)器設(shè)置HTTP頭信息比腳本語(yǔ)言更容易,但是兩者你都應(yīng)該使用。

  因?yàn)榉?wù)器端的腳本主要是為了動(dòng)態(tài)內(nèi)容,他本身不產(chǎn)生可緩存的文件頁(yè)面,即使內(nèi)容實(shí)際是可以緩存的。如果你的內(nèi)容經(jīng)常改變,但是不是每次頁(yè)面請(qǐng)求都改變,考慮設(shè)置一個(gè)Cache-Control:max-age頭信息;大部分用戶會(huì)在短時(shí)間內(nèi)多次訪問(wèn)同一頁(yè)面。例如:用戶點(diǎn)擊“后退”按鈕,即使沒(méi)有新內(nèi)容,他們?nèi)匀灰俅螐姆?wù)器下載內(nèi)容查看。

  CGI程序

  CGI腳本是生成內(nèi)容最流行的方式之一,你可以很容易在發(fā)送內(nèi)容之前的擴(kuò)展HTTP頭信息;大部分CGI實(shí)現(xiàn)都需要你寫(xiě)Content-Type頭信息,例如這個(gè)Perl腳本:

  #!/usr/bin/perl

  print"Content-type:text/html\n";

  print"Expires:Thu,29Oct199817:04:19GMT\n";

  print"\n";

  ###后面是內(nèi)容體...

  由于都是文本,你可以很容易通過(guò)內(nèi)置函數(shù)生成Expires和其他日期相關(guān)的頭信息。如果你使用Cache-Control:max-age;會(huì)更簡(jiǎn)單;

  print"Cache-Control:max-age=600\n";

  這樣腳本可以在被請(qǐng)求后緩存10分鐘;這樣用戶如果按“后退”按鈕,他們不會(huì)重新提交請(qǐng)求;

  CGI的規(guī)范同時(shí)也允許客戶端發(fā)送頭信息,每個(gè)頭信息都有一個(gè)‘HTTP_’的前綴;這樣如果一個(gè)客戶端發(fā)送一個(gè)If-Modified-Since請(qǐng)求,就是這樣的:

  HTTP_IF_MODIFIED_SINCE=Fri,30Oct199814:19:41GMT

  參考一下cgi_buffer庫(kù),一個(gè)自動(dòng)處理ETag的生成和校驗(yàn)的庫(kù),生成Content-Length屬性和對(duì)內(nèi)容進(jìn)行g(shù)zip壓縮。在Python腳本中也只需加入一行;

  服務(wù)器端包含ServerSideIncludes

  SSI(經(jīng)常使用.shtml擴(kuò)展名)是網(wǎng)站發(fā)布者最早可以生成動(dòng)態(tài)內(nèi)容的方案。通過(guò)在頁(yè)面中設(shè)置特別的標(biāo)記,也成為一種嵌入HTML的腳本;

  大部分SSI的實(shí)現(xiàn)無(wú)法設(shè)置校驗(yàn)器,于是無(wú)法緩存。但是Apache可以通過(guò)對(duì)特定文件的組執(zhí)行權(quán)限設(shè)置實(shí)現(xiàn)允許用戶設(shè)置那種SSI可以被緩存;結(jié)合XbitHack調(diào)整整個(gè)目錄。更多文檔請(qǐng)參考mod_include文檔。

  PHP

  PHP是一個(gè)內(nèi)建在web服務(wù)器中的服務(wù)器端腳本語(yǔ)言,當(dāng)做為HTML嵌入式腳本,很像SSI,但是有更多的選項(xiàng),PHP可以在各種Web服務(wù)器上設(shè)置為CGI模式運(yùn)行,或者做為Apache的模塊;

  缺省PHP生成副本沒(méi)有設(shè)置校驗(yàn)器,于是也無(wú)法緩存,但是開(kāi)發(fā)者可以通過(guò)Header()函數(shù)來(lái)生成HTTP的頭信息;

  例如:以下代碼會(huì)生成一個(gè)Cache-Control頭信息,并設(shè)置為3天以后過(guò)期的Expires頭信息;

  <?php

  Header("Cache-Control:must-revalidate");$offset=60*60*24*3;

  $ExpStr="Expires:".gmdate("D,dMYH:i:s",time()+$offset)."GMT";

  Header($ExpStr);

  ?>

  記住:Header()的輸出必須先于所有其他HTML的輸出;

  正如你看到的:你可以手工創(chuàng)建HTTP日期;PHP沒(méi)有為你提供專(zhuān)門(mén)的函數(shù)(新版本已經(jīng)讓這個(gè)越來(lái)越容易了,請(qǐng)參考PHP的日期相關(guān)函數(shù)文檔),當(dāng)然,最簡(jiǎn)單的還是設(shè)置Cache-Control:max-age頭信息,而且對(duì)于大部分情況都比較適用;

  更多信息,請(qǐng)參考header相關(guān)的文檔;

  也請(qǐng)參考一下cgi_buffer庫(kù),自動(dòng)處理ETag的生成和校驗(yàn),Content-Length生成和內(nèi)容的gzip壓縮,PHP腳本只需包含1行代碼;

  ColdFusion

  ColdFusion是Macromedia的商業(yè)服務(wù)器端腳本引擎,并且支持多種Windows平臺(tái),Linux平臺(tái)和多種Unix平臺(tái)。ColdFusion通過(guò)CFHEADER標(biāo)記設(shè)置HTTP頭信息相對(duì)容易。可惜的是:以下的Expires頭信息的設(shè)置有些容易誤導(dǎo);

  <CFHEADERNAME="Expires"VALUE="#Now()#">

  它并不像你想像的那樣工作,因?yàn)闀r(shí)間(本例中為請(qǐng)求發(fā)起的時(shí)間)并不會(huì)被轉(zhuǎn)換成一個(gè)符合HTTP時(shí)間,而且打印出副本的Coldfusion的日期/時(shí)間對(duì)象,大部分客戶端會(huì)忽略或者將其轉(zhuǎn)換成1970年1月1日。

  但是:ColdFusion另外提供了一套日期格式化函數(shù),GetHttpTimeSTring.結(jié)合DateAdd函數(shù),就很容易設(shè)置過(guò)期時(shí)間了,這里我們?cè)O(shè)置一個(gè)Header聲明副本在1個(gè)月以后過(guò)期;

  <cfheadername="Expires"value="#GetHttpTimeString(DateAdd('m',1,Now()))#">

  你也可以使用CFHEADER標(biāo)簽來(lái)設(shè)置Cache-Control:max-age等其他頭信息;

  記?。篧eb服務(wù)器也會(huì)將頭信息設(shè)置轉(zhuǎn)給ColdFusion(做為CGI運(yùn)行的時(shí)候),檢查你的服務(wù)器設(shè)置并確定你是否可以利用服務(wù)器設(shè)置代替ColdFusion。

  ASP和ASP.NET

  在asp中設(shè)置HTTP頭信息是:確認(rèn)Response方法先于HTML內(nèi)容輸出前被調(diào)用,或者使用Response.Buffer暫存輸出;同樣的:注意某些版本的IIS缺省設(shè)置會(huì)輸出Cache-Control:private頭信息,必須聲明成public才能被共享青島網(wǎng)站設(shè)計(jì)緩存服務(wù)器緩存。

  IIS的ASP和其他web服務(wù)器都允許你設(shè)置HTTP頭信息,例如:設(shè)置過(guò)期時(shí)間,你可以設(shè)置Response對(duì)象的屬性;

  <%Response.Expires=1440%>

  設(shè)置請(qǐng)求的副本在輸出的指定分鐘后過(guò)期,類(lèi)似的:也可以設(shè)置絕對(duì)的過(guò)期時(shí)間(確認(rèn)你的HTTP日期格式正確)

  <%Response.ExpiresAbsolute=#May31,199613:30:15GMT#%>

  Cache-Control頭信息可以這樣設(shè)置:

  <%Response.CacheControl="public"%>

  在ASP.NET中,Response.Expires已經(jīng)不推薦使用了,正確的方法是通過(guò)Response.Cache設(shè)置Cache相關(guān)的頭信息;

  Response.Cache.SetExpires(DateTime.Now.AddMinutes(60));

  Response.Cache.SetCacheability(HttpCacheability.Public);

  參考MSDN文檔可以找到更多相關(guān)新年系;

相關(guān)熱點(diǎn)推薦
網(wǎng)站設(shè)計(jì)中程序員和美工
Tab(選項(xiàng)卡)的產(chǎn)品
從精簡(jiǎn)導(dǎo)航談小型網(wǎng)站的
如今虛擬外鏈對(duì)我們的作
網(wǎng)頁(yè)設(shè)計(jì)中的版式原理-
使用框架和滑動(dòng)門(mén)技術(shù)進(jìn)
清新的網(wǎng)站設(shè)計(jì)風(fēng)格
網(wǎng)頁(yè)設(shè)計(jì)之視覺(jué)信息傳達(dá)
用戶體驗(yàn)與網(wǎng)頁(yè)界面設(shè)計(jì)
沒(méi)有交互意識(shí)的設(shè)計(jì)師,
企業(yè)網(wǎng)站規(guī)劃和網(wǎng)頁(yè)設(shè)計(jì)
網(wǎng)站大改版=壯烈的死亡
2016年百度排名的算
網(wǎng)站建設(shè)合同簽訂需要注
人機(jī)交互界面設(shè)計(jì)的三個(gè)
系統(tǒng)化學(xué)習(xí)SEO技術(shù)的
用戶體驗(yàn)中溝通的技巧
迭代的設(shè)計(jì)
網(wǎng)站中視覺(jué)元素的設(shè)計(jì)
網(wǎng)站設(shè)計(jì)的前期溝通之重
在青島,企業(yè)網(wǎng)站建設(shè)對(duì)
手機(jī)建站時(shí)容易進(jìn)入哪些
如何有效的提高網(wǎng)站關(guān)鍵
淺談品牌的視覺(jué)識(shí)別
怎樣充分利用你的網(wǎng)站設(shè)
TDK是什么?有什么作
微信為什么這么人在用
網(wǎng)站排名第三頁(yè)不到首頁(yè)
青島網(wǎng)站設(shè)計(jì)中關(guān)于al
好設(shè)計(jì)應(yīng)該是平凡的設(shè)計(jì)
網(wǎng)站LOGO簡(jiǎn)論
網(wǎng)頁(yè)布局設(shè)計(jì)基礎(chǔ)
優(yōu)秀網(wǎng)站的五大特點(diǎn)
新站快速推廣經(jīng)驗(yàn),百度
為中文而設(shè)計(jì)的文本框
關(guān)于網(wǎng)站優(yōu)化五大技巧
如何進(jìn)行網(wǎng)站首頁(yè)改版
web設(shè)計(jì)師可以走得更
專(zhuān)業(yè)設(shè)計(jì)網(wǎng)站的公司哪里
青島網(wǎng)站設(shè)計(jì)的幾點(diǎn)知識(shí)
奈薇建站網(wǎng)青島網(wǎng)站建設(shè)公司/青島網(wǎng)站制作公司,專(zhuān)業(yè)提供"氣質(zhì)"型網(wǎng)站建設(shè)及精美網(wǎng)站制作服務(wù),同時(shí)歡迎各地網(wǎng)站建設(shè)公司、網(wǎng)站制作公司代理我們的奈薇建站系統(tǒng)共同發(fā)展

熱點(diǎn)地區(qū):青島網(wǎng)站建設(shè)價(jià)格 青島即墨網(wǎng)站制作公司 開(kāi)發(fā)區(qū)信息港 山東在線門(mén)戶
建站咨詢(xún)熱線0532-88781131 15166683288 18562723728
版權(quán)所有© BangJianZhan.Com & Nev.Cn 青島網(wǎng)站建設(shè)/網(wǎng)站制作公司
青島雨后網(wǎng)絡(luò)科技有限公司 - 青島市市北區(qū)福州北路90號(hào),景泰尚都6層
已經(jīng)為您服務(wù)了
208個(gè)月 11