昨天講到 HTTP 和 HTTPS 的時候,我開始想一件很奇怪的事情
我們平常使用網站的時候,好像網站很知道我們在幹嘛
例如我登入 Instagram 之後,就算把網頁重新整理,我還是登入的狀態
去購物網站買東西,把商品加入購物車之後,過一下再回去看,東西居然還在裡面,甚至有些網站還會記得我之前做過什麼
那網站到底是怎麼知道這個人就是剛剛那個人?
今天就來認識一個很常聽到,但以前其實沒有很了解的東西:Cookie
一、Cookie 到底是什麼?
Cookie 不是餅乾
在網站裡,Cookie 可以想成是
網站存在你瀏覽器裡的一小段資料
當我們使用網站時,網站可以透過 Cookie 記住一些和我們這次使用有關的資訊。
像是
所以 Cookie 有點像是網站放在你瀏覽器裡的小紙條
下次你再回來時,網站可以根據這些資訊知道一些之前的狀態。
二、為什麼網站需要 Cookie?
這其實跟我們前面學到的 HTTP 有關
HTTP 本身是一種一來一回的溝通方式
像是你跟網站說我要看這個網頁
網站回覆:好,這是網頁資料
下一次你又發送一個請求時,網站不一定知道這是不是剛剛的你
所以網站需要一些方法來辨認使用者的狀態
這時候 Cookie 就派上用場了。
三、登入網站時到底發生什麼?
拿一個很常見的情況來想
假設我登入某個網站
輸入帳號密碼之後,網站確認資料正確,就會建立一個登入狀態
接著,瀏覽器可能會收到一個 Cookie
裡面通常不是直接寫著這個人的帳號密碼是多少
而是可能包含一個可以用來辨認登入狀態的資訊,例如 Session ID
之後我再瀏覽網站其他頁面時,瀏覽器會把相關 Cookie 帶給網站
網站看到這個資訊,就能知道
喔,這是剛剛已經登入的那個使用者
所以我們才不用每點一個頁面就重新輸入一次帳號密碼。
四、那為什麼購物車也會記得?
這個應該是 Cookie 最容易理解的例子之一
假設我今天逛網路商店,看到一件衣服,然後按下加入購物車。
網站需要想辦法記住這個使用者的購物車裡有這件商品
其中一種做法就是透過 Cookie 或其他網站端的儲存機制,搭配伺服器上的資料來維持這個狀態。
所以當我換到其他頁面,甚至重新整理時,網站還是能知道我的購物車裡有什麼。
這也是為什麼我們會覺得網站怎麼記得我剛剛買了什麼
其實背後有很多機制一起運作
五、Cookie 是不是等於網站一直在監控我?
一開始聽到 Cookie,我其實也會有一點這種感覺。
但 Cookie 本身比較像是一種保存資訊的機制,真正怎麼使用,要看網站怎麼設計
有些 Cookie 是為了讓網站正常運作
例如記住登入狀態、購物車或語言設定
另外也有一些 Cookie 會被用來記錄使用者在網站上的行為,或協助網站進行分析、廣告等功能
所以看到 Cookie 時,不需要直接把它理解成「監控工具」。
比較準確的理解是
Cookie 是網站用來保存、辨認或傳遞一些資訊的一種方式。
六、那為什麼有些網站會跳出 Cookie 同意通知?
這也是我以前很常看到,但其實不太知道原因的東西。
第一次進入某些網站時,可能會跳出我們使用 Cookie
然後要我們選擇接受或調整設定
主要是因為不同類型的 Cookie,使用目的可能不一樣,有些涉及網站分析、個人化或廣告等用途,因此網站可能需要讓使用者知道相關資訊並提供選擇。
所以以後再看到 Cookie 彈窗,我就不會只覺得又來了,怎麼每個網站都要按這個
至少知道它是在處理網站如何使用 Cookie 這件事。
七、心得
以前我一直覺得網站記得我是一件很理所當然的事情
登入過一次,網站就知道我是誰
加入購物車,東西就會留在裡面
重新整理之後,狀態也不會消失
但今天才發現,原來背後需要很多機制一起配合
其中 Cookie 就像是一個小小的記憶工具,讓網站可以保存一些資訊,維持我們使用網站時的狀態
這也讓我開始發現
我們每天覺得理所當然的功能,其實背後都有一套設計。
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
明日預告
今天知道網站怎麼「記住我」之後,我又想到另一個問題。
我們平常傳一則 LINE 訊息,按下送出之後,到底發生了什麼?
訊息是直接從我的手機跑到朋友手機嗎?
還是中間其實經過了很多地方?
下一篇就來看看:
「LINE 傳一則訊息,究竟發生了什麼?」📱