บทที่ 5 · อ่าน 6 นาที
ทำไมเว็บจำเราได้
Login Facebook ทิ้งไว้เป็นเดือนยังไม่หลุด ใส่ของในตะกร้า Lazada กลับมาแล้วยังอยู่ เว็บจำเราได้ผ่านอะไร รู้จักสิ่งที่เรียกว่า cookie
Login Facebook ทิ้งไว้เป็นเดือน ก็ไม่ต้องใส่ password ใหม่ ใส่ของในตะกร้า Lazada ปิดเว็บไป กลับมาแล้วของยังอยู่ เปลี่ยนภาษาของเว็บเป็นไทย ครั้งหน้ากลับมาก็เป็น ภาษาไทยให้เลย
เคยสงสัยไหมครับ เว็บ จำเรา ได้ยังไง ทั้งที่บทแรกเล่าไว้ว่า การเปิดเว็บคือคำขอใหม่ทุกครั้ง server ตอบให้ใครก็ได้ที่ขอ มันรู้ได้ไงว่าใครเป็นใคร
คำตอบอยู่ที่สิ่งที่เรียกว่า cookie
Cookie คือบัตรสมาชิกที่เว็บให้เราเก็บ
ลองนึกถึง ร้านสะดวกซื้อที่ออกบัตรสมาชิก ครั้งแรกที่เราเข้าไปซื้อ ร้านยังไม่รู้จักเรา พนักงานถามว่าเป็นสมาชิกไหม เราบอกว่ายังไม่ได้สมัคร ร้านเลย ออกบัตรให้ บอกว่า "ครั้งหน้ามาที่นี่อีก เอาบัตรนี้มาด้วยนะ จะได้รู้ว่าเป็นคุณ"
ครั้งหน้าเรากลับไปที่ร้านนั้น ยื่นบัตร พนักงานดูรหัสบนบัตรแล้วอ๋อ "คุณคือลูกค้า คนเดิม ครั้งก่อนซื้ออะไรไป ดู point กี่แต้มแล้ว" จำได้หมด
Cookie ทำงานแบบนี้เป๊ะครับ ครั้งแรกที่เปิดเว็บ server ส่ง ข้อมูลเล็กๆ มาให้เบราว์เซอร์เก็บไว้ ครั้งหน้าที่กลับมาเปิดเว็บเดิม เบราว์เซอร์ เอาข้อมูลนั้นส่งกลับไปให้ server เป็นบัตรสมาชิก ทำให้ server จำเราได้
ขั้นตอนที่เกิดขึ้นทีละก้าว
ลองนึกภาพการเข้าเว็บ shopping.com ครั้งแรกถึงครั้งที่ 2
- ครั้งแรกที่เปิด เครื่องเราขอหน้าเว็บไป server ส่งหน้ากลับมา พร้อมแถม cookie มา 1 ก้อน เช่น
session_id=abc123xyzเบราว์เซอร์เก็บก้อนนี้ไว้ - เรากรอกของในตะกร้า เครื่องเราส่งคำขอไป "เพิ่มของ" และส่ง cookie กลับไปด้วย server เห็นรหัส
abc123xyzก็เปิดข้อมูลใน ฐานข้อมูลของ server เอง รู้ว่าตะกร้านี้ของใคร - ปิดเว็บไป กลับมาวันถัดไป เปิด
shopping.comอีก เบราว์เซอร์ส่ง cookieabc123xyzตามไปอัตโนมัติ server เห็นแล้ว อ๋อ "คนเดิม" เปิดตะกร้าให้ดูพร้อมของที่เคยใส่ไว้
cookie ทำให้เว็บ "จำเรา" ได้ ทั้งที่จริงๆ การเปิดเว็บแต่ละครั้งเป็นคำขอใหม่
Cookie เก็บอะไรไว้บ้าง
ตัวอย่างที่เจอบ่อยในชีวิตประจำวัน
- session รหัสประจำตัวบอก server ว่าเราคือใคร ใช้ทำให้ login ค้างได้
- preferences ค่าที่เราตั้งไว้ เช่น ภาษา dark mode ขนาดตัวอักษร
- shopping cart ของในตะกร้าซื้อที่ยังไม่ได้ checkout
- tracking ข้อมูลที่บางเว็บใช้ตามดูพฤติกรรม เพื่อแสดงโฆษณา ที่ตรงกับเรา
แล้วทำไมโฆษณาตามไปทุกเว็บที่เปิด
เคยสงสัยไหมครับ ค้นหารองเท้าใน Lazada ปิดเว็บไปแล้ว ไปเปิด Facebook เจอโฆษณา รองเท้าตัวเดียวกัน เปิด YouTube ก็เจออีก เกิดอะไรขึ้น
คำตอบคือ third-party cookie บริษัทโฆษณาใหญ่ๆ ฝัง code ของเขา ในหลายเว็บพร้อมกัน ตอนเราเปิด Lazada code ของเขาฝาก cookie ลงในเบราว์เซอร์เรา ตอนเราไป Facebook code ของบริษัทเดียวกันก็อยู่ที่นั่น เห็น cookie เดิมแล้วจำได้ ว่าเราดูรองเท้ามา เลยแสดงโฆษณารองเท้าตัวนั้น
ปัจจุบันเบราว์เซอร์ใหญ่ๆ เริ่ม block third-party cookie แล้ว เพราะคนกังวลเรื่อง ความเป็นส่วนตัว แต่ยังไม่ block หมดทุกตัว
เราจัดการ cookie เองได้
ในเบราว์เซอร์ทุกตัว มีเมนูจัดการ cookie ทำได้หลายอย่าง
- ลบ cookie ทั้งหมด เหมือน logout จากทุกเว็บพร้อมกัน เริ่มต้นใหม่
- ลบ cookie เฉพาะเว็บ มีปัญหากับเว็บไหน ลองลบ cookie ของเว็บนั้นก่อน
- ห้ามรับ cookie ใหม่ ตั้งให้ปฏิเสธ cookie จากบางเว็บ ใช้ตอน กังวลเรื่อง tracking
- เปิด private/incognito mode เปิดเว็บโดยไม่ใช้ cookie เก่า ปิดแท็บไป cookie ที่เกิดในนั้นก็หาย
สรุปบทนี้
- Cookie คือข้อมูลเล็กๆ ที่ server ฝากให้เบราว์เซอร์เก็บ ครั้งหน้าเบราว์เซอร์ส่งกลับให้ server ดู
- เป็นกลไกที่ทำให้เว็บจำเราได้ login ค้างได้ จำของในตะกร้าได้
- Cookie ของแต่ละเว็บแยกกัน ยกเว้น third-party cookie ที่ตามโฆษณาข้ามเว็บ
- เบราว์เซอร์ทุกตัวมีเมนูลบหรือ block cookie ได้ ใช้ตอนอยากให้เว็บลืมเรา หรือลด tracking
บทต่อไปมาดูคำถามที่ทุกคนสงสัย ทำไม Facebook YouTube โหลดเร็วทั่วโลก ทั้งที่ผู้ใช้ อยู่ทุกประเทศ ส่วนเว็บเล็กๆ บางเว็บโหลดช้ามาก คำตอบอยู่ที่ระบบที่เรียกว่า CDN