Cookie
Cookie是在服務端傳回資料的時候,通過Set-Cookie這個header設定到浏覽器裡面,儲存到浏覽器裡面的内容。
浏覽器儲存了這個Cookie之後,在下次同域的請求當中,就會帶上這個Cookie,可以實作使用者在通路這個網站的會話當中,通過Cookie一直在傳輸的内容,保證我們傳回的内容是這個使用者的。
下次請求就會自動帶上
鍵值對的形式儲存,可以設定多個
Cookie屬性max-age 和 expires 設定過期時間
Secure 隻在HTTPS的時候發送
HttpOnly 無法通過JS的document.cookie通路(安全性,防攻擊)禁止一些重要的資訊通過JS的當時去通路
啟動服務
cookie是可以傳回多個的傳數組來儲存多個cookie
cookie是存在時效的,如果沒有給他設定一個過期時間,那麼浏覽器關閉後就沒有了。
cookie設定了過期時間以後,過了以後,就沒了。expires是到了這個時間點。
設定HttpOnly屬性,
列印出來的便沒有age=18。
cookie的通路權限的域的設定:domain一般來說,目前域寫了cookie之後,其他域是不能通路的。對于同一個域名,cookie也有限制方案,比如http://a.com有個二級域名http://a.xxx.com我們有辦法讓這個二級域名通路到http://a.com的cookie。就是通過domain這種方式來實作。
去Chrome裡面添加個工具
然後,做個映射。
這時候我們再啟動伺服器,浏覽器輸入http://a.xxx.com:8888 就會映射到127.0.0.1:8888
再添加個http://b.xxx.com,也映射到127.0.0.1
這時候通路http://b.xxx.com
在http://a.xxx.com是有cookie的,但是在http://b.xxx.com中是沒有cookie的。不同域名之間的cookie是不能共享的。但是他們都有http://xxx.com這個二級域名,如要一級域名下所有http://xxx.com這個二級域名都可以通路cookie。
在同一個主域名下,二級域名是可以共享cookie的。
Session
在網站開發中,最常用的就是使用cookie來保證session。
經常會做的是把使用者登入後的一個id,給設定到cookie裡面。根據這個id來搜尋使用者的資訊。為了保證安全,可以把這個id轉換為一個對應的key,隻要能保證定位到使用者,就是session的一種實作方案。