คุกกี้คืออะไร

เว็บออกแบบมาให้คำขอทั้งหมดจากเว็บเบราว์เซอร์ไปยังเว็บไซต์แยกกัน เว็บไม่มี "ความทรงจำ" โดยการออกแบบ ทุกครั้งที่คุณเปิดหน้าเว็บ เว็บไซต์ที่เข้าชมจะจดจำข้อมูลจากเซสชันล่าสุดไม่ได้ วิธีนี้ช่วยให้เว็บมีประสิทธิภาพและเรียบง่าย เนื่องจากไม่จำเป็นต้องมีกลไกในการติดตามคำขอและการตอบกลับ

แต่ลักษณะที่ลืมง่ายของเว็บก็ทำให้เกิดปัญหาเช่นกัน ตัวอย่างเช่น ตะกร้าช็อปปิ้งจะทำงานได้อย่างไรหากเว็บไซต์ที่คุณกําลังใช้จําสิ่งที่คุณเพิ่งใส่เข้าไปไม่ได้

คุกกี้จึงถูกคิดค้นขึ้นเพื่อแก้ปัญหาดังกล่าว

คุกกี้ช่วยให้เว็บไซต์จดจําได้

เมื่อคุณเข้าชมหน้าในเว็บไซต์ เว็บเบราว์เซอร์จะส่งคำขอไปยังเซิร์ฟเวอร์ของเว็บไซต์เพื่อขอทรัพยากรที่รวมอยู่ในหน้า เช่น HTML, CSS, JavaScript หรือรูปภาพ

เว็บเบราว์เซอร์และเว็บไซต์โต้ตอบกันโดยทำตามโปรโตคอล HTTP ซึ่งเป็นชุดกฎมาตรฐานสำหรับการติดต่อสื่อสาร

ในการตอบสนองต่อคําขอ HTTP สําหรับทรัพยากร เซิร์ฟเวอร์ของเว็บไซต์สามารถใส่ข้อมูลเพิ่มเติมที่เรียกว่าส่วนหัวไปพร้อมกับทรัพยากรนั้น ส่วนหัว Set-Cookie ที่รวมอยู่ในการตอบกลับ HTTP จะบอกให้เบราว์เซอร์จัดเก็บข้อความบางส่วน เช่น ชื่อและค่า ซึ่งเรียกว่าคุกกี้ ตัวอย่างเช่น ส่วนหัวการตอบกลับ Set-Cookie:cat=tabby จะบอกให้เบราว์เซอร์เก็บคุกกี้ที่มีชื่อ "cat" และค่า "tabby"

เมื่อตั้งค่าคุกกี้แล้ว คำขอที่ตามมาจากเบราว์เซอร์ไปยังเว็บไซต์จะมีส่วนหัว Cookie:cat=tabby เซิร์ฟเวอร์ของเว็บไซต์จะเข้าถึงคุกกี้จากส่วนหัวคำขอได้และใช้ค่าดังกล่าว

วิธีการทํางานของคุกกี้ทีละขั้นตอน

สมมติว่าคุณเข้าชมเว็บไซต์ cats.example เว็บไซต์ต้องการแสดงรูปภาพแมวแบบสุ่มให้คุณเห็น และบันทึกแมวที่แสดงให้คุณเห็น

ขั้นตอนต่อไปนี้จะอธิบายวิธีดำเนินการดังกล่าวด้วยคุกกี้

1. เบราว์เซอร์ขอไฟล์

คุณเข้าชมหน้าแรกของเว็บไซต์ cats.example

เบราว์เซอร์จะขอไฟล์ในหน้าเว็บ ซึ่งรวมถึง cat.jpg จาก cats.example

คำขอ HTTP ไปยัง https://cats.example/cat.jpg

2. เซิร์ฟเวอร์เว็บไซต์ตอบกลับ

เซิร์ฟเวอร์ที่ cats.example ตอบกลับด้วยไฟล์รูปภาพ cat.jpg

เซิร์ฟเวอร์จะใส่ส่วนหัว Set-Cookie:cat=tabby ในการตอบกลับ

การตอบกลับ HTTP จาก https://cats.example/cat.jpg ที่มีส่วนหัว Set-Cookie:cat=tabby

3. เบราว์เซอร์ได้รับการตอบกลับ

เบราว์เซอร์จะรับไฟล์รูปภาพและประมวลผลSet-Cookie:cat=tabby ส่วนหัวที่รวมอยู่ด้วย

ระบบจัดเก็บคุกกี้: ชื่อ cat, ค่า tabby

คุกกี้แมว=แมวลายสลิดในเว็บเบราว์เซอร์บนแล็ปท็อป

4. เบราว์เซอร์ส่งคําขอเพิ่มเติม

นับจากนี้ไป เบราว์เซอร์จะใส่ส่วนหัว Cookie:cat=tabby ไว้ในคำขอไปยัง cats.example

คำขอ HTTP ไปยัง https://cats.example/cat.jpg ที่มีส่วนหัว Cookie:cat=tabby

เมื่อเซิร์ฟเวอร์เว็บ cats.example ได้รับคําขอ ก็จะประมวลผลคุกกี้และทําสิ่งใดก็ได้ตามต้องการกับค่านั้น เช่น ตรวจสอบว่าจะไม่ส่งรูปแมวลายสลิดตัวเดิมให้คุณอีก

กระบวนการทั้งหมดเกี่ยวกับคุกกี้มีดังนี้

  1. เบราว์เซอร์ส่งคำขอไฟล์ไปยังเว็บไซต์
  2. เซิร์ฟเวอร์ของเว็บไซต์สามารถใส่ส่วนหัว เช่น Set-Cookie:cat=tabby ไว้พร้อมกับไฟล์ที่ส่งเพื่อตอบสนองต่อคำขอ
  3. เมื่อเบราว์เซอร์ได้รับการตอบกลับ ระบบจะจัดเก็บคุกกี้
  4. เมื่อมีการขอครั้งต่อๆ ไป เบราว์เซอร์จะส่งคุกกี้ไปยังเซิร์ฟเวอร์ในส่วนหัว Cookie:cat=tabby


แผนภาพลำดับที่แสดงคำขอและการตอบกลับระหว่างเว็บเบราว์เซอร์ cats.example และ cats.example ซึ่งแสดงวิธีตั้งค่าและส่งคุกกี้

เข้าถึงคุกกี้ด้วย JavaScript

ตัวอย่างก่อนหน้านี้ใช้ส่วนหัวการตอบกลับ Set-Cookie เพื่อตั้งค่าคุกกี้

นอกจากนี้ คุณยังสร้างคุกกี้ด้วย JavaScript โดยใช้เมธอด document.cookie ได้ด้วย

ลองใช้เดโมได้ที่ javascript-cookie.glitch.me/

ดูข้อมูลเพิ่มเติม: เอกสาร: พร็อพเพอร์ตี้คุกกี้

เหตุใดเราจึงต้องใช้คุกกี้

ในปี 1994 วิศวกร Lou Montulli ทำงานอยู่ที่บริษัทซอฟต์แวร์ Netscape ซึ่งต่อมาได้สร้างเว็บเบราว์เซอร์ที่ได้รับความนิยมสูงสุดในช่วงกลางทศวรรษ 1990 ขณะเดียวกัน MCI ซึ่งเป็นบริษัทโทรคมนาคมก็พยายามสร้างฟีเจอร์รถเข็นช็อปปิ้งสําหรับร้านค้าออนไลน์แห่งแรกๆ ของโลก MCI ติดต่อไปที่ Montulli เพื่ออธิบายปัญหา Montulli ตอบกลับด้วยการเพิ่มฟีเจอร์ลงใน HTTP ซึ่งช่วยให้เว็บไซต์จัดเก็บข้อความจำนวนเล็กน้อยในเว็บเบราว์เซอร์ของผู้ใช้ ชื่อ และค่าได้ เช่น cart-id=123 เขาเรียกมันว่า "คุกกี้" เนื่องจากในสมัยนั้นโปรแกรมเมอร์ใช้คำว่า "คุกกี้วิเศษ" สำหรับข้อมูลเล็กๆ น้อยๆ เพิ่มเติมที่รวมอยู่ในการติดต่อสื่อสาร

Lou ทํางานเกี่ยวกับคุกกี้ HTTP ให้เสร็จสิ้นภายในเวลาไม่ถึง 1 สัปดาห์ แต่เขาไม่รู้เลยว่าคุกกี้จะกลายเป็นพื้นฐานสําหรับการโฆษณา การเข้าสู่ระบบ การชําระเงิน การตรวจจับการประพฤติมิชอบ และบริการเว็บสําคัญอื่นๆ คุกกี้เป็นเทคโนโลยีที่เรียบง่ายมาก แต่ส่งผลข้างเคียงที่กว้างไกล

การใช้คุกกี้

คุกกี้ช่วยให้เบราว์เซอร์จัดเก็บข้อมูลเล็กน้อยเกี่ยวกับผู้ใช้เพื่อ "จดจํา" ข้อมูลบางอย่างในคําขอหลายรายการ คุกกี้มีการใช้งานหลายอย่าง ดังนี้

  • การจัดการเซสชัน
    อนุญาตให้เว็บไซต์จดจำผู้ใช้ เช่น เพื่อรักษาสถานะการเข้าสู่ระบบในหน้าต่างๆ
  • การปรับให้เหมาะกับผู้ใช้
    จัดเก็บค่ากําหนดของผู้ใช้ เช่น ภาษา ธีม หรือรายการที่ดูล่าสุด เพื่อปรับแต่งประสบการณ์การใช้งานเว็บไซต์
  • การติดตาม
    ที่ผ่านมาคุกกี้ได้ถูกนํามาใช้เพื่อติดตามพฤติกรรมของผู้ใช้ในเว็บไซต์ต่างๆ สําหรับการโฆษณาที่กําหนดเป้าหมายและกรณีการใช้งานอื่นๆ

แต่โดยทั่วไปแล้วคุกกี้จะใช้เพื่อจัดเก็บและสื่อสารตัวระบุที่เซิร์ฟเวอร์ประมวลผล ตัวอย่างเช่น ส่วนหัวที่มีคําขอไปยังบริการวิเคราะห์เว็บอาจมีคุกกี้ดังต่อไปนี้

Cookie: _analytics=ANALYTICS1.2.34567890.123456789

เซิร์ฟเวอร์ข้อมูลวิเคราะห์ที่ได้รับคําขอจะประมวลผลตัวระบุพร้อมกับข้อมูลอื่นๆ เกี่ยวกับหน้าเว็บได้

ดูข้อมูลเพิ่มเติม