8.25.2014

[JS] JavaScript Cookie....

cookie這個東西已經很久了,但之前都沒有花時間好好地去瞭解它;所以,現在只好再重新認識一次。把之前的印象再復習一次:

1. 每一個cookie的大小,最大只能到4 KB;如果資料太大的話,該cookie就會被剪短。

2. 每一個網站,最多只能設定20筆cookie。

3. 若需要在cookie中儲存時間,其時間格式必須為GMT格式WEK, DD-MM-YY hh:mm:ss GMT。我們毋需另外寫一支函式,可直接使用JavaScript內建的toGMTString()方法

HTTP Cookie運作原理:

a). 當使用者開啟瀏灠器輸入某個URI之後 (以下簡稱為Client),就會向後端的網頁伺服器 (以下簡稱為Server)發送一個HTTP Request Package。

b). 當Server收到這個HTTP Request之後,會回傳HTTP Response給Client。

c). 當Server回傳HTTP Response時,就可以對Client設定cookie;設定的原理,就是利用Response封包中的Set-Cookie欄位。

d). 之後,Client再開啟網頁時,就會檢查Browser Cookie的相關資訊 (或是設定),倘若有,就會在HTTP Request中增加Cookie欄位,一同傳送給Server。

e). 無論是Request的Cookie、Response的Set-Cookie,或者是爾后要在JavaScript中設定的window.document.cookie,其格式都一樣,會有5個參數:"name=value;expires=date;path=path;domain=domain;secure"

Cookie參數說明:

a). name=value
name是cookie的設定名稱,value是其設定的值。value的值會以16進制編碼來儲存;5個參數之中,只有這參數是必須的。

b). expires=date
指定cookie的有效日期,過了有效日期之後,該筆cookie就不再儲存於Browser。date的格式必須為GMT格式;若不指定這個參數,有效日期的預設值為使用者退出瀏灠器時。

c). path=path
指定可以存取該cookie的路徑。如果Browser所要求的URI符合cookie中的path和domain的設定,就會傳送該cookie到Server;若無設定此一參數,path的預設值為該cookie的網頁所在的路徑。

d). domain=domain
指定可以存取該cookie的網域;若無設定此一參數,domain的預設值為該cookie的網頁所在的網域。

e). secure
指定cookie只能傳送到HTTPS Server (HTTP Secure, or HTTP over SSL)。

原本的計劃是要寫個範例,但覺得麻煩,因此做罷!!

沒有留言:

張貼留言