網頁與網頁間本身沒有記憶,
當你登入網站後,透過cookie 就不需要在每一個網頁都要重新登入,
cookie 就像是一把鑰匙,可以讓你快速通關,
如果server需要記住client的資料時,此時需要cookies與session的協助。
那麼,先來筆記cookies是什麼?
cookie是http header裡面其中一個欄位,cookie裡的資料以key/value的形式儲存。
簡單的來說就是,當你瀏覽網頁時,cookies 會儲存各種資訊,
包含個人資訊(例如:姓名、電子信箱...)
或者是用來儲存你的偏好語言與位置等內容。
例如:
登入網站時,網站會要求你輸入帳號、密碼,
某些網站提供用戶勾選「下次自動登入」的選項。
如果勾選了,網站就會透過cookies記錄你的個人資訊,
如此一來,用戶登入後就不用再輸入帳號密碼。
用戶瀏覽網站時,瀏覽器會將cookies儲存在記憶體裡,
當瀏覽器關閉後,所有尚未到期的cookies會被儲存到 硬碟(cookies.txt 的純文字檔)裡,
下次用戶再瀏覽該網頁時,
瀏覽器便會根據 路徑(path) 與 domain 將 cookies 回傳給伺服器。
cookies按照客戶端的儲存位置,存在client端(客戶端),
可分為記憶體Cookie和硬碟Cookie。
記憶體的Cookie存在記憶體裡,由瀏覽器管理,瀏覽器關閉後Cookie就消失了。
硬碟的Cookie存在硬碟裡,除非用戶手動清理或到了過期時間,
否則硬碟Cookie不會被刪除。
簡單的來說,cookies 存在你的電腦裡面,
依照儲存時間,分為長期和臨時cookies。
cookies通常為記憶體的Cookie,存在你的瀏覽器裡,
傳送的過程中,容易被惡意的有心人士攔截你的個人資料,
針對此問題,可以透過以下方法:
1. 針對你的Cookie進行加密
2. 在瀏覽器裡設定時間定期或手動刪除cookie。
但還是建議開發者不要存敏感資料在cookies裡。
client(客戶端)最多可以同時擁有 300 個 cookies,
一旦Cookie超過300個,舊Cookie就會被自動刪除。
同一個伺服器最多只能建立 20 個 cookies 給同一個使用者。
每個 cookies 最大只能到 4K。
cookies.txt 最大只能到 1.2MB。
小結:
當server想要儲存使用者的某些狀態時,可以發送cookie給client。
Cookies 和 Session 的神秘關係
http://andikan.github.io/blog/2012/10/03/cookie-and-session/
Session 與 Cookies 程式設計
http://www.jollen.org/php/216_session_cookies/
維基百科-Cookie
http://zh.wikipedia.org/wiki/Cookie#.E4.BD.BF.E7.94.A8.E5.92.8C.E7.A6.81.E7.94.A8Cookies
What are session cookies used for?
http://www.allaboutcookies.org/cookies/session-cookies-used-for.html