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
- session與cookie的區別SessionCookie
- cookie與session的區別與聯絡CookieSession
- Session與Cookie的區別與聯絡SessionCookie
- cookie和session的詳解與區別CookieSession
- cookie與session的區別(圖文詳解)CookieSession
- 理解cookie、session、localStorage、sessionStorage的關係與區別CookieSession
- cookie和session的區別CookieSession
- cookie、sessionStorage、localStorage的區別?CookieSession
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- cookie,session,sessionStorage,localStotage的區別CookieSession
- cookie與session的區別以及在Django中的實現CookieSessionDjango
- localStorage、sessionStorage、Cookie的區別及用法SessionCookie
- Cookie 和 Session 關係和區別CookieSession
- Token ,Cookie、Session 三者區別CookieSession
- session 和 cookie 有什麼區別?SessionCookie
- cookie和session 有什麼區別?CookieSession
- HTTP 頭部欄位 Cache Control max-age = 0 和 no-cache 的區別HTTP
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- localStorage,sessionStorage和cookie的區別及使用SessionCookie
- cookie和session的區別(全面總結)CookieSession
- cookie和session有什麼區別?Python學習!CookieSessionPython
- http中session和cookie的區別和關係HTTPSessionCookie
- cookie是什麼?和session有什麼區別?CookieSession
- HTTP協議Cookie和Session有什麼區別HTTP協議CookieSession
- 一文搞懂Session和Cookie的用法及區別SessionCookie
- Cookie、localStorage 和 sessionStorage 的區別及應用例項CookieSession
- cookie和session有什麼區別?Python學習分享CookieSessionPython
- ??與?:的區別
- Cookie和Session的區別以及設計測試用例CookieSession
- Session與CookieSessionCookie
- mouseenter與mouseover區別
- currentTarget與target區別
- mouseout與mouseleave區別
- classList與className區別
- innerText與textContent區別
- GET與POST區別