當前位置:主頁 > 教程 > 編程教程 >

php技術宅細說瀏覽器中的cookie
欄目分類:編程教程   發布日期:2019-06-18   作者:素年    來源:未知

首先我們來看一下瀏覽器中的cookie是如何工作的。 每當瀏覽器向服務器發起http請求的時候,都會檢查本地是否有相應的cookie,如果有則添加到請求頭中一起發送到服務器端。由此可以看出cookie適合存儲那些每次都要發給服務端的內容,比如身份信息等。 下面來
  首先我們來看一下瀏覽器中的cookie是如何工作的。
  
  每當瀏覽器向服務器發起http請求的時候,都會檢查本地是否有相應的cookie,如果有則添加到請求頭中一起發送到服務器端。由此可以看出cookie適合存儲那些每次都要發給服務端的內容,比如身份信息等。
  
  下面來看一下cookie的構成。
  
  cookie有多個屬性,每個屬性都是用鍵值對表示的,鍵值對之間由一個分號和一個空格隔開。例如:document.cookie="nickname=會編程的猿; expires=11 Nov 2018 11:11:11 GMT;"。
  
  cookie中的屬性如下圖所示:
  
  圖1 cookie的屬性
  
  圖1中Name列是cookie的名字;Value列是cookie的值;Domain列是cookie的域;Path列是cookie的路徑;Expires/Max-Age列是cookie的有效期;Size列是cookie大小;Http列是控制cookie只能通過http請求的方式訪問;Secure列控制cookie只能在https下才被發送;SameSite列是限制cookie在不同站點之間是否被傳遞的,用的比較少。
  
  下面我們重點介紹這其中的幾個屬性。
  
  domain和path組合在一起來控制cookie可以被發送到哪些URL地址。當URL的域名是domain或者其子域名并且路徑是path或者其子路徑時,請求該URL就會攜帶cookie信息。舉個例子:假設cookie的domain屬性設置為.abc.def,path屬性設置為/,那么當訪問book.abc.def/novel或者music.abc.def或者abc.def/movie的時候都會攜帶該cookie信息。domain的默認值是當前網頁的域名,path的默認值是當前網頁的路徑。
  
  expires和max-age都可以設置cookie的有效期。expires設置的是一個時間點,到時間點之后cookie失效;max-age設置的是一個時間段,從cookie創建的時候算起,過max-age時間之后cookie失效,他們的等效關系是expires=創建時間 + max-age。如果不設置cookie的有效期,那么瀏覽器關閉之后cookie就會失效,上圖1中的Expires/Max-Age列值為session的就是沒有設置有效期的cookie。
  
  HttpOnly屬性限制cookie只能通過http請求的方式訪問,而不能通過本地js訪問,可以防止js修改cookie的內容。比如上圖1中Http列值為√的就表示設置了HttpOnly屬性,我們在本地通過js獲取cookie如下:
  
  圖2 通過js獲取cookie信息
  
  我們可以看到通過js只能獲取到沒有設置HttpOnly屬性4個的cookie。圖1中有兩個設置了HttpOnly屬性的cookie通過js是獲取不到的。
  
  看到這里真是辛苦了,下面放松一下^_^
  
  公眾號內回復關鍵詞“紅包”即可領取紅包,快快行動吧。
  
  篇幅有限,關于cookie的設置以及cookie跨域的相關內容后續文章再作介紹,感謝閱讀。

相關熱詞:

Copyright © 2016-2020 我愛分享網 版權所有   豫ICP備16008703號-1   關于我們 | 廣告合作 | 版權聲明 | 意見反饋 | 聯系方式 | 原創投稿 | 網站地圖 |
特效 教程 資源 資訊 福利
自由女神电子游艺