2010-10-17 100 views
27

什麼是HTTP標頭「年齡」?具體來說,什麼值爲0(Age: "0")是什麼意思?「年齡:0」HTTP標頭

+21

所以,這是一個女孩或男孩 – Benoit 2010-10-17 16:53:24

+3

@Benoit:這是一個男孩 – BoltClock 2010-10-17 16:54:12

回答

26

見關於Age header field什麼HTTP 1.1 specification旨在被用於:

年齡響應頭字段傳送的時間量的發送者的估計,因爲所述響應(或其再驗證)在產生原始服務器。

該信息被用於通過中間代理來convey an estimate of how old a stored response is

HTTP/1.1需要原始服務器發送一個Date頭,如果可能的話,與每一個響應,給在其處產生的響應的時間(見14.18節)。我們使用術語「date_value」來表示Date報頭的值,採用適合算術運算的形式。

HTTP/1.1使用Age響應頭來傳達從緩存中獲取響應消息的估計時間。 Age字段值是緩存對從源服務器生成或重新生效響應以來的時間量的估計值。

此外,年齡頭字段旨在僅通過中間緩存一起使用:

的年齡報頭字段的響應存在意味着一個響應不是第一手。

這意味着頭字段Age: 0的存在意味着接收到的響應是由中間緩存發送的,並且僅爲零秒。所以它可能只是在將源文件發送到客戶端之前從源服務器獲取。

+0

可暗示這個!‘緩存’是另一個代理服務器或應該是另一個代理服務器,如果它是直接響應的原始服務器,則不應該設置年齡響應標頭。我在標準中沒有看到它,它可能是原始服務器緩存號? – Blub 2014-12-18 10:59:17

+0

@Blub緩存可以是客戶端和服務器之間的任何節點,路由上可能有多個代理或根本沒有代理,緩存會根據所請求資源的存儲表示的年齡設置* Age *頭字段值。 – Gumbo 2014-12-18 14:13:45

3

恰好是指定in the protocol

年齡響應頭域傳送 量的時間的發送者的估計,因爲所述響應(或其再驗證)是在原始服務器生成 。如果其年齡未超過其新鮮度壽命,則緩存的響應是「新鮮的」。年齡值爲 ,按第13.2.3節的規定計算。

 
    Age = "Age" ":" age-value 
    age-value = delta-seconds 

年齡值是非負的十進制整數,較 秒時間。 如果緩存接收到的值大於最大的正數 整數,它可以表示,或者如果其年齡計算中的任何一個計算結果溢出,它必須傳輸值爲 2147483648(2^31)的Age標頭。包含緩存的HTTP/1.1服務器必須在自己的緩存中生成的每個響應中包含一個Age標頭字段。緩存應該使用至少31位的算術類型。 「

5

」Age標頭表示從原始Web服務器上次請求資源以來所請求的資源的年齡的估計值(以秒爲單位)。「

」由於網絡延遲可能導致計算的年齡不合適,因此根據跳躍之間的估計時間,在返回路徑中的每個步驟重新計算年齡。通常根據代理的當前日期和包含在HTTP響應中的日期通用標題之間的差異來計算年齡,而不是依賴於其他中間代理所做的計算。 如果不同步的時鐘使此計算結果產生負差,則使用0的年齡。

克里斯·夏夫利特,‘HTTP開發者手冊’,第83頁。