這篇文章分享給大家的內容是關於http前端儲存的總結,內容很詳細,接下來我們就來看看具體的內容,希望可以幫助到有需要的朋友。
http協定的無狀態,所謂無狀態即是伺服器並不是知道這次的請求和上次的請求是不是同一個client發來的,就好比你常去一家超市買東西,老闆並不記得你是誰。但如果你每次帶著你的會員卡過來,那麼老闆就可以辨識出你是誰了,cookie的作用類似於會員卡所扮演的角色。
當伺服器收到HTTP請求時,伺服器可以在回應頭裡面新增一個Set-Cookie選項。瀏覽器收到回應後通常會儲存下Cookie,之後對該伺服器每一次請求中都會透過Cookie請求頭部將Cookie訊息傳送給伺服器。另外,Cookie的過期時間、網域、路徑、有效期限、適用站點都可以依需求來指定。
當然了,瀏覽器端也可以操作cookie,document.cookie可以取得目前頁面的所有cookie。
#這兩個屬性決定了cookie是否會被傳送到哪些URL
Domain 識別指定了哪些主機可以接受Cookie。如果不指定,預設為目前文件的主機(不包含子網域)。如果指定了Domain,則一般包含子網域。
例如,如果設定 Domain=mozilla.org,則Cookie也包含在子網域中(如developer.mozilla.org)。
Path 識別指定了主機下的哪些路徑可以接受Cookie(該URL路徑必須存在於請求網址中)。以字元 %x2F ("/") 作為路徑分隔符,子路徑也會被匹配。
例如domain=qq.com,path=/blog,則該cookie會被發送到:
具體的細節為:
為避免跨域腳本(XSS) 攻擊,透過JavaScript的Document.cookie API無法存取帶有HttpOnly標記的Cookie,它們只應該傳送給服務端。如果包含服務端 Session 資訊的 Cookie 不想被客戶端 JavaScript 腳本調用,那麼就應該為其設定 HttpOnly 標記。
如下圖是GitHub的設定cookie
瀏覽器直接在JavaScript裡操作即可:
document.cookie="age=12; expires=Thu, 26 Feb 2116 11:50:25 GMT; domain=github.com; path=/";
getItem(key)
只有頁面刷新才不會清除掉sessionStorage。剩下的都會清理掉sessionStorage(例如開啟新的tab、關掉目前tab再新開一個tab,更別提關閉瀏覽器了)
setItem(key, val);
getItem(key)
以上是關於http前端儲存的總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!