十分鐘學 [ Cookie ]
簡介
當伺服器收到Request,就傳回一個包含了一或多個Set-Cookie欄的HTTP Response給瀏覽器。
這一欄包含了伺服器想儲存的Cookie資訊。瀏覽器就會將Cookie儲存起來,通常儲存在一個檔案內。
當瀏覽器要求某一個網頁時,瀏覽器會檢查它儲存了的Cookie是否允許被該網頁存取,
如果允許就會在HTTP Request Header加入Cookie。
細節
基本格式如下:
Set-Cookie: name=value; expires=date; path=path; domain=domain; secure
參數和說明
name=value
|
name是Cookie的名稱,value是該Cookie的值,這個字串會以16進制編碼。
五個參數之中,只有這 個參數是必需的。
|
expires=date
|
指定Cookie的有效日期,當過了有效日期後,那個Cookie
就不會再儲存在瀏覽器;date是GMT格式的有效日期。
如果不指定這個參數,該Cookie的有效日期就是使用者
退出瀏覽器時(End of Browser Session)。
|
path=path
|
指定可以存取該Cookie的路徑,如果瀏覽器要求的
URL乎合Cookie的網域和路徑名稱 (domain 和 path),就會傳
送該Cookie到伺服器。如果不指定這個參數,path就指定為設定該Cookie
的網頁所在的路徑。
|
domain=domain
|
指定可以存取該Cookie的網域。如果不指定這個參數,domain
就指定為設定該Cookie的網頁所在的網域。
|
secure
|
指定Cookie只可以傳送給HTTPS伺服器 (用SSL的HTTP伺服器)
|
For JavaScript
如果已經有Cookie的存在了,那可以直接由document.cookie讀到。
如果沒有Cookie的存在,document.cookie將是空。
如果想要刪除Cookie,把該Cookie重設為過期就可以了。
Cookie 的 expire欄位需用GMT格式。
cookie.js提供了容易使用的cookie functions,
包括設定cookie、取得cookie、判斷瀏覽器是否有開啟cookie功能。
判斷是否有開啟cookie的方法如下:
isCookieEnabled();
設定和取得cookie的方法則如下:
setCookie(CookieName, value, null);
getCookie(CookieName, default_value);