亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

annuaire recherche
Guides Access control CORS Authentication Browser detection using the user agent Caching Caching FAQ Compression Conditional requests Connection management in HTTP 1.x Content negotiation Content negotiation: List of default Accept values Cookies CSP Messages Overview Protocol upgrade mechanism Proxy servers and tunneling Proxy servers and tunneling: Proxy Auto-Configuration (PAC) file Public Key Pinning Range requests Redirections Resources and specifications Resources and URIs Response codes Server-Side Access Control Session Guides: Basics Basics of HTTP Choosing between www and non-www URLs Data URIs Evolution of HTTP Identifying resources on the Web MIME Types MIME types: Complete list of MIME types CSP Content-Security-Policy Content-Security-Policy-Report-Only CSP: base-uri CSP: block-all-mixed-content CSP: child-src CSP: connect-src CSP: default-src CSP: font-src CSP: form-action CSP: frame-ancestors CSP: frame-src CSP: img-src CSP: manifest-src CSP: media-src CSP: object-src CSP: plugin-types CSP: referrer CSP: report-uri CSP: require-sri-for CSP: sandbox CSP: script-src CSP: style-src CSP: upgrade-insecure-requests CSP: worker-src Headers Accept Accept-Charset Accept-Encoding Accept-Language Accept-Ranges Access-Control-Allow-Credentials Access-Control-Allow-Headers Access-Control-Allow-Methods Access-Control-Allow-Origin Access-Control-Expose-Headers Access-Control-Max-Age Access-Control-Request-Headers Access-Control-Request-Method Age Allow Authorization Cache-Control Connection Content-Disposition Content-Encoding Content-Language Content-Length Content-Location Content-Range Content-Type Cookie Cookie2 Date DNT ETag Expect Expires Forwarded From Headers Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Keep-Alive Large-Allocation Last-Modified Location Origin Pragma Proxy-Authenticate Proxy-Authorization Public-Key-Pins Public-Key-Pins-Report-Only Range Referer Referrer-Policy Retry-After Server Set-Cookie Set-Cookie2 SourceMap Strict-Transport-Security TE Tk Trailer Transfer-Encoding Upgrade-Insecure-Requests User-Agent User-Agent: Firefox Vary Via Warning WWW-Authenticate X-Content-Type-Options X-DNS-Prefetch-Control X-Forwarded-For X-Forwarded-Host X-Forwarded-Proto X-Frame-Options X-XSS-Protection Methods CONNECT DELETE GET HEAD Methods OPTIONS PATCH POST PUT Status 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 416 Range Not Satisfiable 417 Expectation Failed 426 Upgrade Required 428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 451 Unavailable For Legal Reasons 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version Not Supported 511 Network Authentication Required Status
personnages

通過重復使用先前提取的資源,可以顯著提高網(wǎng)站和應用程序的性能。Web緩存減少了延遲和網(wǎng)絡流量,從而減少了顯示資源表示所需的時間。通過使用HTTP緩存,網(wǎng)站變得更加快速響應。

不同種類的緩存

緩存是一種技術(shù),可存儲給定資源的副本,并在請求時將其返回。當Web緩存在其存儲中具有請求的資源時,它攔截該請求并返回其副本,而不是從原始服務器重新下載。這實現(xiàn)了幾個目標:它減輕了不需要為所有客戶端服務的服務器的負載,并且通過更接近客戶端來提高性能,即,將資源傳回的時間更短。對于一個網(wǎng)站來說,它是實現(xiàn)高性能的一個重要組成部分。另一方面,它必須正確配置,因為并非所有資源都永遠保持一致:僅在資源緩存更改時才緩存資源,這一點非常重要。

有幾種緩存:這些緩存可以分為兩大類:私有緩存或共享緩存。甲共享高速緩存是由一個以上的用戶存儲用于重用響應的高速緩存中。一個私有緩存專用于單個用戶。該頁面主要討論瀏覽器和代理緩存,但也有部署在Web服務器上的網(wǎng)關(guān)緩存,CDN,反向代理緩存和負載平衡器,以提高網(wǎng)站和Web應用程序的可靠性,性能和擴展性。

私人瀏覽器緩存

專用緩存專用于單個用戶。您可能已經(jīng)在瀏覽器的設置中看到“緩存”。瀏覽器緩存保存用戶通過HTTP下載的所有文檔。該緩存用于使訪問文檔可用于后退/前進導航,保存,以源代碼查看等,而無需額外訪問服務器。它同樣改進了緩存內(nèi)容的離線瀏覽。

共享代理緩存

共享緩存是一個緩存,用于存儲將被多個用戶重用的響應。例如,ISP或貴公司可能已將Web代理設置為其本地網(wǎng)絡基礎(chǔ)架構(gòu)的一部分,以便為許多用戶提供服務,從而使常用資源多次重復使用,從而減少網(wǎng)絡流量和延遲。

緩存操作的目標

HTTP緩存是可選的,但通常需要重新使用緩存資源。但是,常見的HTTP緩存通常僅限于緩存響應GET并可能拒絕其他方法。主緩存鍵由請求方法和目標URI組成(通常只有URI被使用,因為只有GET請求才是緩存目標)。常見的緩存條目形式是:

  • 檢索請求的成功結(jié)果:200GET包含諸如HTML文檔,圖像或文件等資源的請求的(確定)響應。

  • 永久重定向:a 301(永久移動)響應。

  • 錯誤響應:一個404(未找到)結(jié)果頁面。

  • 不完整的結(jié)果:(206部分內(nèi)容)響應。

  • 除了GET定義適合用作緩存鍵的東西之外的其他響應。

如果請求是內(nèi)容協(xié)商的目標,則高速緩存條目也可能由多個由輔助鍵區(qū)分的存儲響應組成。有關(guān)更多詳細信息,請參閱Vary下面的標題信息。

控制緩存

Cache-control

Cache-ControlHTTP / 1.1通用頭字段用于指定在請求和響應緩存機制的指令。使用這個頭文件可以用它提供的各種指令來定義你的緩存策略。

不存在緩存存儲

緩存不應該存儲有關(guān)客戶端請求或服務器響應的任何內(nèi)容。一個請求被發(fā)送到服務器,并且每次都會下載一個完整的響應。

Cache-Control: no-store
Cache-Control: no-cache, no-store, must-revalidate

沒有緩存

在釋放緩存副本之前,緩存會將請求發(fā)送到原始服務器進行驗證。

Cache-Control: no-cache

私人和公共緩存

“public”指令表明響應可能被任何緩存緩存。如果頁面具有HTTP身份驗證或響應狀態(tài)代碼通常不可緩存的頁面現(xiàn)在應該被緩存,這可能很有用。另一方面,“私有”表示該響應僅適用于單個用戶,并且不得由共享緩存存儲。在這種情況下,私人瀏覽器緩存可能會存儲響應。

Cache-Control: privateCache-Control: public

終止

這里最重要的指令是“ max-age=<seconds>”,這是資源被認為是最新的最大時間量。相反Expires,這個指令是相對于請求的時間而言的。對于應用程序中不會更改的文件,通??梢蕴砑臃e極的緩存。這包括靜態(tài)文件,例如圖像,CSS文件和JavaScript文件。

有關(guān)更多詳細信息,另請參閱下面的“新鮮度”部分。

Cache-Control: max-age=31536000

驗證

使用“ must-revalidate”指令時,緩存必須在使用前驗證陳舊資源的狀態(tài),不應使用過期資源。有關(guān)更多詳細信息,請參閱下面的驗證部分。

Cache-Control: must-revalidate

Pragma

Pragma是一個HTTP / 1.0標頭,它是未指定的HTTP響應,因此不為普通HTTP / 1.1的可靠替換Cache-Control首部,雖然它不表現(xiàn)一樣Cache-Control: no-cache,如果Cache-Control在請求中省略報頭字段。使用Pragma僅適用于HTTP / 1.0客戶端的向后兼容性。

更新度

一旦資源存儲在緩存中,理論上它可以永久存儲在緩存中。緩存具有有限的存儲空間,因此項目會定期從存儲中刪除。這個過程被稱為緩存逐出。另一方面,服務器上的一些資源可能會發(fā)生變化,所以應該更新緩存。由于HTTP是客戶端 - 服務器協(xié)議,因此當資源發(fā)生更改時,服務器無法聯(lián)系緩存和客戶端; 他們必須傳達資源的到期時間。在這個到期時間之前,資源是新鮮的 ; 到期后,資源已過時。驅(qū)逐算法經(jīng)常使新資源超過陳舊的資源。請注意,陳舊的資源不會被驅(qū)逐或忽略; 當緩存接收到過時資源的請求時,它會將此請求轉(zhuǎn)發(fā)給a,If-None-Match以檢查它是否實際上仍然是新的。如果是這樣,服務器返回304(未修改)標題,而不發(fā)送請求資源的主體,節(jié)省一些帶寬。

以下是使用共享高速緩存代理的此過程示例:

更新度使用壽命是根據(jù)多個標題計算得出的。如果Cache-control: max-age=N指定了“ ”標題,則新鮮度生存期等于N.如果該標題不存在(通常是這種情況),則檢查Expires標題是否存在。如果Expires存在標題,則其值減去Date標題的值確定新鮮度生存期。最后,如果兩個標題都不存在,請查找Last-Modified標題。如果存在這個頭部,則緩存的新鮮度壽命等于Date頭部的值減去頭部的值Last-modified除以10。

到期時間計算如下:

expirationTime = responseTime + freshnessLifetime - currentAge

responseTime根據(jù)瀏覽器收到響應的時間在哪個位置?

資源已被修改

我們使用緩存資源越多,網(wǎng)站的響應能力和性能就越好。為了優(yōu)化這一點,良好的做法建議盡可能在將來設定到期時間。對于定期更新或經(jīng)常更新的資源,這是可能的,但對于很少和不經(jīng)常更新的資源而言存在問題。他們是從緩存資源中受益最多的資源,但這使得它們很難更新。這是包含并鏈接到每個網(wǎng)頁的技術(shù)資源的典型代表:JavaScript和CSS文件很少更改,但當它們更改時,您希望它們能夠快速更新。

Web開發(fā)人員發(fā)明了一種Steve Sounders稱之為改變的技術(shù)。不經(jīng)常更新的文件以特定的方式命名:在他們的URL中,通常在文件名中添加修訂版(或版本)號。這樣,每一個這個資源的新版本都被認為是永遠不會有的資源變化并且可能在將來有很長的到期時間,通常是一年甚至更長。為了獲得新的版本,所有到它們的鏈接都必須改變,這就是這種方法的缺點:通常由Web開發(fā)人員使用的工具鏈來處理額外的復雜性。當不經(jīng)常變化的資源發(fā)生變化時,它們會對經(jīng)常變化的資源產(chǎn)生額外的變化。當這些被讀取時,其他的新版本也被讀取。

這種技術(shù)還有一個額外的好處:同時更新兩個緩存資源不會導致一種資源的過時版本與另一種資源的新版本結(jié)合使用的情況。當網(wǎng)站具有相互依賴的CSS樣式表或JS腳本時,這是非常重要的,即它們相互依賴,因為它們引用相同的HTML元素。

添加到revved資源中的修訂版本不需要像1.1.3這樣修訂字符串,或者甚至是單調(diào)增長的一組數(shù)字。它可以是防止碰撞的任何東西,比如散列或日期。

Cache validation

當用戶按下重新加載按鈕時,觸發(fā)重新驗證。如果緩存的響應包含“ Cache-control: must-revalidate”標題,它也會在正常瀏覽下觸發(fā)。另一個因素是首Advanced->Cache選項面板中的緩存驗證首選項。每次加載文檔時都有一個強制驗證的選項。

當達到緩存文檔的到期時間時,它將被驗證或再次提取。驗證只有在服務器提供強驗證器弱驗證器時才會發(fā)生。

ETags

ETag響應報頭是不透明到所述-用戶代理 ,可以作為強驗證值使用。這意味著HTTP用戶代理(如瀏覽器)不知道該字符串代表什么,也無法預測其價值。如果ETag頭部是資源響應的一部分,則客戶端可以在未來請求的頭部中發(fā)出 If-None-Match以驗證緩存的資源。

Last-Modified響應報頭可以被用作弱驗證器。它被認為是微弱的,因為它只有1秒的分辨率。如果Last-Modified標題出現(xiàn)在響應中,則客戶端可以發(fā)出If-Modified-Since請求標頭來驗證緩存的文檔。

當發(fā)出驗證請求時,服務器可以忽略驗證請求并以普通方式進行響應200 OK,也可以返回304 Not Modified(使用空的主體)來指示瀏覽器使用其緩存副本。后一個響應還可以包括更新緩存文檔到期時間的標題。

變化的反應

VaryHTTP響應頭決定如何滿足未來的請求頭,以決定一個緩存的響應是否可以使用,而不是從源服務器請求新的一個。

當緩存接收到具有Vary頭字段的緩存響應可以滿足的請求時,它不得使用該緩存的響應,除非頭中指定的所有頭字段Vary在原始(緩存)請求和新請求中都匹配。

例如,這對于動態(tài)提供內(nèi)容非常有用。使用Vary: User-Agent標題時,緩存服務器在決定是否從緩存中提供頁面時應考慮用戶代理。如果您向移動用戶提供不同的內(nèi)容,它可以幫助您避免緩存可能會錯誤地將您的網(wǎng)站的桌面版本提供給移動用戶。此外,它可以幫助Google和其他搜索引擎發(fā)現(xiàn)頁面的移動版本,并且可能會告訴他們沒有打算使用Cloaking。

Vary: User-Agent

由于User-Agent移動和桌面客戶端的標頭值不同(“變化”),緩存將不會用于將移動內(nèi)容錯誤地提供給桌面用戶,反之亦然。

擴展內(nèi)容

  • RFC 7234:超文本傳輸協(xié)議(HTTP / 1.1):緩存

  • 緩存教程 - 馬克諾丁漢

  • HTTP緩存 -  Ilya Grigorik

  • RedBot,一種檢查與緩存相關(guān)的HTTP標頭的工具。

Article précédent: Article suivant: