網(wǎng)上有很多關(guān)于pos機響應(yīng)碼if,HTTP響應(yīng)頭之Etag的知識,也有很多人為大家解答關(guān)于pos機響應(yīng)碼if的問題,今天pos機之家(www.shineka.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
pos機響應(yīng)碼if
什么是 ETagETag全稱Entity Tag,用來標(biāo)識一個資源。通常情況下,ETag更類似于指紋,如果資源發(fā)生變化了就會生成一個新的指紋,這樣可以應(yīng)用于客戶端的緩存:服務(wù)器產(chǎn)生ETag,并在HTTP響應(yīng)頭中將其傳送到客戶端,服務(wù)器用它來判斷頁面是否被修改過,如果未修改返回304,無需傳輸整個對象。
如上圖所示,第一次請求,服務(wù)器在返回響應(yīng)時,在Http頭中包含一個值為"x1323ddx"的ETag(注:HTTP中并沒有指定如何生成ETag,哈希是比較理想的選擇),狀態(tài)碼為200。
如上圖所示,第二次請求,這個時候客戶端請求同時發(fā)送一個If-None-Match頭,這個頭的內(nèi)容就是我們第一次請求時服務(wù)器返回的ETag,服務(wù)器收到請求后如果資源沒有發(fā)生改變,服務(wù)器的ETag是同一值,服務(wù)器就不返回200,而是返回304的響應(yīng),告訴客戶端緩存有效。(由于不返回數(shù)據(jù)體,所以在資源不變的情況下后續(xù)的請求對流量消耗比較小。)
ETag語法ETag: W/"<etag_value>"ETag: "<etag_value>"W/ 可選'W/'(大小寫敏感) 表示使用弱驗證器。 弱驗證器很容易生成,但不利于比較。 強驗證器是比較的理想選擇,但很難有效地生成。 相同資源的兩個弱Etag值可能語義等同,但不是每個字節(jié)都相同。"<etag_value>"實體標(biāo)簽唯一地表示所請求的資源。 它們是位于雙引號之間的ASCII字符串(如“675af34563dc-tr34”)。 沒有明確指定生成ETag值的方法。 通常,使用內(nèi)容的散列(哈希值的方式會帶來一些服務(wù)器資源的消耗),最后修改時間戳的哈希值,或簡單地使用版本號。ETag 的作用
1、一些文件也許會周期性更改,但是他的內(nèi)容并不改變(僅僅改變的修改時間),我們并不希望客戶端認(rèn)為這個文件被修改了,而重新GET;
2、某些文件修改非常頻繁,比如在秒以下的時間內(nèi)進(jìn)行修改,(比方說1s內(nèi)修改了N次),If-Modified-Since能檢查到的粒度是s級的,這種修改無法判斷;
3、某些服務(wù)器不能精確得到文件的最后修改時間;
4、通過設(shè)置不同的響應(yīng)頭Cache-Control來控制瀏覽器和Web代理對緩存的使用策略,通過設(shè)置請求頭If-None-Match和響應(yīng)頭ETag,來對緩存的有效性進(jìn)行驗證。
以上就是關(guān)于pos機響應(yīng)碼if,HTTP響應(yīng)頭之Etag的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機響應(yīng)碼if的知識,希望能夠幫助到大家!
