Cookie 是什麼,能吃嗎?


Posted by Wes on 2021-02-27

Cookie 是造訪過的網站所建立的檔案,可以儲存使用者的瀏覽紀錄、記住網站偏好設定等等,並利用這些資訊辨識使用者的身份。

Cookie 儲存在 Client-side,依照儲存位置可分為記憶體 Cookie 和硬碟 Cookie。記憶體 Cookie 儲存在記憶體中,瀏覽器關閉後就消失了,其存在時間是短暫的。硬碟 Cookie 儲存在硬碟裡,有一個過期時間,除非使用者手動清理,或者到了過期時間,否則硬碟 Cookie 不會被刪除,其存在時間是長期的。

HTTP 本身是無狀態的(stateless),伺服器獨立回應每一個 Request,不與其他 Request 有關聯,也就是說伺服器不知道使用者上一次做了什麼,而利用 Cookie 可以將資訊儲存在瀏覽器中。

當伺服器收到瀏覽器發送的請求後,在 Response Headers 中回傳 Set-Cookie,瀏覽器收到後把這些資訊儲存起來,在後續的 Request Headers 都加上 Cookie,這樣透過 HTTP Request 與 Response 建立有狀態的(stateful)Session 的方法,就能夠讓伺服器辨別使用者的身份,以及記住使用者的操作和設定。

如果在一台電腦中安裝多個瀏覽器,每個瀏覽器都會以獨立的空間存放 Cookie。因為 Cookie 中不但可以確認用戶資訊,還能包含電腦和瀏覽器的資訊,所以一個用戶使用不同的瀏覽器登入或者用不同的電腦登入,都會得到不同的 Cookie 資訊,另一方面,對於在同一台電腦上使用同一瀏覽器的多用戶群,Cookie 不會區分他們的身分,除非他們使用不同的用戶名稱登入。

References


#cookie #HTTP







Related Posts

Closure 閉包

Closure 閉包

物件導向基礎與 prototype

物件導向基礎與 prototype

DAY12:Complementary DNA

DAY12:Complementary DNA


Comments