Cookie max-age與expires 區別
當前閱讀程式碼的時候,採用expires屬性設定過期時間仍佔大多數。
主要出於如下幾個原因:
(1).max-age是新屬性,低版本IE瀏覽器支援度不夠。
(2).expires屬性可以相容當前所有主流瀏覽器。
下面結合程式碼片段對max-age與expires設定Cookie過期時間的區別進行一下介紹。
一.瀏覽器相容性:
前文已經提到,由於max-age是新屬性,所以低版本IE瀏覽器支援度不夠。
expires屬性則可以非常好被當前所有主流瀏覽器支援,如果要相容低版本瀏覽器推薦使用此屬性。
隨著軟硬體的進步,推薦使用max-age屬性設定Cookie過期時間,它的特點後面會進行分析。
二.屬性值區別:
expires屬性值是一個具體的時間字串,比如可以具體到年月日小時分鐘秒。
max-age屬性值是整數,規定在多少秒後過期,是一個相對日期。
三.max-age優點:
1.expires在不同瀏覽器過期時間格式可能不同:
expires屬性設定過期時間,首先需要將時間日期轉換為GMT/UTC格式,否則某些瀏覽器可能會出現誤差。
上述問題可以參閱JavaScript 設定Cookie過期時間無效一章節。
max-age屬性設定,在各個瀏覽器的最終生成的過期時間統一為GMT/UTC格式。
2.max-age優先順序更高:
這個並不算是優點,畢竟它的優先順序高嘛,勉強算是優點吧。
如果同時設定expires和max-age屬性,那麼max-age屬性設定的過期時間會生效。
3.伺服器與客戶端時間不同時:
通常時候,我們都是認為伺服器時間與客戶端時間是相同的。
很明顯,也有不同的可能,如果採用expires屬性設定會出現誤差,簡述如下:
(1).假設在伺服器端設定Cookie兩分鐘後過期。
(2).expires設定的是一個具體日期時間,在伺服器中只能以伺服器時間為參考。
(3).如果客戶端時間與伺服器時間差距很大,例如比伺服器端快兩分鐘,那麼這個Cookie立馬過期了。
(4).如果採用max-age屬性設定,則不會上述情況,依然是兩分鐘後過期。
[JavaScript] 純文字檢視 複製程式碼document.cookie = 'softwhy="青島市南區";max-age=120;path=/'
通過max-age屬性設定Cookie在120秒後過期,同時設定expires屬性,以max-age為準。
相關文章
- Cookie expires 屬性Cookie
- Cookie max-age 屬性Cookie
- cookie與session的區別CookieSession
- session與cookie的區別SessionCookie
- cookie與session的區別與聯絡CookieSession
- Session與Cookie的區別與聯絡SessionCookie
- cookie和session的詳解與區別CookieSession
- Session和Cookie的聯絡與區別SessionCookie
- Session和Cookie的區別與聯絡SessionCookie
- cookie與session的區別(圖文詳解)CookieSession
- cookie, localStorage, sessionStorage區別CookieSession
- Session 和 Cookie 區別SessionCookie
- cookie、sessionStorage、localStorage區別CookieSession
- 理解cookie、session、localStorage、sessionStorage的關係與區別CookieSession
- cookie、sessionStorage、localStorage的區別?CookieSession
- cookie和session的區別CookieSession
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- cookie,session,sessionStorage,localStotage的區別CookieSession
- cookie與session的區別以及在Django中的實現CookieSessionDjango
- Token ,Cookie、Session 三者區別CookieSession
- cookie和session 有什麼區別?CookieSession
- session 和 cookie 有什麼區別?SessionCookie
- localStorage、sessionStorage、Cookie的區別及用法SessionCookie
- Cookie 和 Session 關係和區別CookieSession
- cookie 和session 的區別詳解CookieSession
- COOKIE和SESSION有什麼區別?CookieSession
- Cookie和Session的區別詳解CookieSession
- 由JSESSIONID談cookie與SESSION的區別和聯絡JSSessionCookie
- cookie和session的區別(全面總結)CookieSession
- localStorage,sessionStorage和cookie的區別及使用SessionCookie
- PHP中session和cookie的區別薦PHPSessionCookie
- HTTP 頭部欄位 Cache Control max-age = 0 和 no-cache 的區別HTTP
- cookie、 sessionStorage 、localStorage之間的區別和使用CookieSession
- 【轉】Session ID/session token 及和cookie區別SessionCookie
- &與&&, |與||區別
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- nginx expires if_modifiedNginx
- lighttpd之expireshttpd