บทความนี้จะอธิบายโดยย่อเกี่ยวกับที่มาและคุณสมบัติพื้นฐานของคุกกี้ ให้พื้นฐานทางเทคนิคสำหรับการเรียนรู้วิธีตั้งค่าคุกกี้ใน PHP และแนะนำให้มือใหม่ PHP อ่าน
ก่อนที่จะเรียนรู้วิธีตั้งค่าคุกกี้ใน PHP เรามาทำความเข้าใจเทคโนโลยีคุกกี้กันก่อน
(1) ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีคุกกี้
ในประวัติศาสตร์ของการพัฒนาเทคโนโลยีเว็บ การเกิดขึ้นของเทคโนโลยีคุกกี้ถือเป็นการเปลี่ยนแปลงครั้งสำคัญ ประการแรก Netscape เปิดตัวเทคโนโลยีคุกกี้ในเบราว์เซอร์ Netscape Navigator ตั้งแต่นั้นมา World Wide Web Association ได้เริ่มสนับสนุนมาตรฐานคุกกี้ ต่อมา หลังจากการโปรโมตอย่างแข็งขันโดย Microsoft (เนื่องจากเทคโนโลยี ASP ที่ใช้โดยเว็บเซิร์ฟเวอร์ IIS ของ Microsoft ใช้เทคโนโลยีคุกกี้อย่างหนัก) เทคโนโลยีคุกกี้จึงได้รับการสนับสนุนอย่างเต็มที่ในเบราว์เซอร์ Internet Explorer ของ Microsoft ถึงตอนนี้ เบราว์เซอร์ส่วนใหญ่รองรับเทคโนโลยีคุกกี้ หรืออย่างน้อยก็เข้ากันได้กับคุกกี้
การใช้เทคโนโลยี
1) คุกกี้คืออะไร?
ตามคำจำกัดความในเอกสารอย่างเป็นทางการของ Netscape คุกกี้เป็นวิธีหนึ่งสำหรับเซิร์ฟเวอร์หรือสคริปต์ในการรักษาข้อมูลบนเวิร์กสเตชันของไคลเอ็นต์ภายใต้โปรโตคอล HTTP คุกกี้คือไฟล์ข้อความขนาดเล็กที่เว็บเซิร์ฟเวอร์บันทึกไว้ในเบราว์เซอร์ของผู้ใช้ ซึ่งสามารถประกอบด้วยข้อมูลเกี่ยวกับผู้ใช้ (เช่น หมายเลขประจำตัว รหัสผ่าน วิธีการซื้อสินค้าของผู้ใช้บนเว็บไซต์ หรือจำนวนครั้งที่ผู้ใช้เยี่ยมชมเว็บไซต์) เมื่อใดก็ตามที่ผู้ใช้เชื่อมต่อกับเซิร์ฟเวอร์ เว็บไซต์จะสามารถเข้าถึงข้อมูลคุกกี้ได้
ในแง่ของคนธรรมดา เบราว์เซอร์ใช้ไฟล์ที่จำกัดตั้งแต่หนึ่งไฟล์ขึ้นไปเพื่อรองรับคุกกี้ ไฟล์เหล่านี้เรียกว่าไฟล์คุกกี้บนเครื่องที่ใช้ระบบปฏิบัติการ Windows และไฟล์คุกกี้วิเศษบนเครื่อง Macintosh ไฟล์เหล่านี้ใช้เพื่อจัดเก็บข้อมูลคุกกี้
เว็บไซต์สามารถแทรกข้อมูลลงในไฟล์คุกกี้เหล่านี้ได้ ซึ่งอาจมีผลกระทบต่อผู้ใช้อินเทอร์เน็ตบางราย ผู้ใช้บางคนเชื่อว่าสิ่งนี้ทำให้เกิดการบุกรุกความเป็นส่วนตัว ที่แย่กว่านั้นคือบางคนเชื่อว่าคุกกี้เป็นการบุกรุกพื้นที่ส่วนบุคคลและอาจก่อให้เกิดอันตรายต่อความปลอดภัยต่อคอมพิวเตอร์ของผู้ใช้
ขณะนี้คุกกี้บางตัวเป็นแบบชั่วคราวและบางตัวยังคงอยู่ถาวร คุกกี้ชั่วคราวจะถูกบันทึกไว้ในเบราว์เซอร์ตามระยะเวลาที่กำหนดเท่านั้น เมื่อระยะเวลาที่กำหนดสิ้นสุดลง ระบบจะล้างคุกกี้ ตัวอย่างเช่น ใน PHP คุกกี้จะถูกใช้เพื่อติดตามความคืบหน้าของผู้ใช้จนกว่าผู้ใช้จะออกจากเว็บไซต์ คุกกี้ถาวรจะถูกบันทึกไว้ในไฟล์คุกกี้ของผู้ใช้ และยังสามารถเรียกได้ในครั้งถัดไปที่ผู้ใช้กลับมา
การบันทึกคุกกี้ลงในไฟล์คุกกี้ ผู้ใช้บางรายอาจคิดมากเกินไปและคิดว่าจะสร้างปัญหาใหญ่ได้ สาเหตุหลักคือผู้ใช้บางคนกังวลว่าคุกกี้จะติดตามพฤติกรรมการท่องเว็บของผู้ใช้ เช่น เว็บไซต์ประเภทใดที่ผู้ใช้ชอบเยี่ยมชม และกิจกรรมที่พวกเขาชอบมีส่วนร่วม ฉันเกรงว่าเมื่อข้อมูลส่วนบุคคลประเภทนี้ตกไปอยู่ในมือของบุคคลบางคนที่มีเจตนาแอบแฝง บุคคลนั้นอาจกลายเป็นเป้าหมายของขยะโฆษณาจำนวนมาก หรือแม้กระทั่งได้รับความเสียหายที่ไม่คาดคิด อย่างไรก็ตาม ความกังวลนี้จะไม่เกิดขึ้นเลย เนื่องจากผู้ใช้ภายนอกเว็บไซต์ไม่สามารถรับข้อมูลคุกกี้จากเว็บไซต์ได้ ดังนั้นจึงเป็นไปไม่ได้ที่จะใช้คุกกี้เพื่อจุดประสงค์นี้ อย่างไรก็ตาม เนื่องจากความเข้าใจผิดของผู้ใช้บางรายและ "ข่าวลือที่เป็นเท็จ" นักพัฒนาเบราว์เซอร์บางรายจึงไม่มีทางเลือกอื่นนอกจากต้องตอบสนองที่คุ้นเคย (เช่น Netscape Navigator 4.0 และ Internet Explorer 3.0 ต่างก็มีตัวเลือกในการบล็อกคุกกี้)
ผลลัพธ์ของการรอคอยเทคโนโลยีคุกกี้เป็นเวลานานก็คือมันบังคับให้นักพัฒนาเบราว์เซอร์จำนวนมากต้องให้การควบคุมคุกกี้ในเบราว์เซอร์ของตนอย่างยืดหยุ่น ตัวอย่างเช่น เบราว์เซอร์หลักสองตัวในปัจจุบัน ได้แก่ Netscape Navigator และ Internet Explorer จัดการคุกกี้ในลักษณะนี้
: Netscape Navigator 4.0 ไม่เพียงแต่ยอมรับคำเตือนคุกกี้เท่านั้น แต่ยังบล็อกคุกกี้ได้อีกด้วย Internet Explorer 3.0 ยังสามารถบล็อกคุกกี้ได้ แต่ใน Internet Explorer 4.0 สามารถรับได้เฉพาะคำเตือนโดยไม่ต้องมีตัวเลือกในการบล็อก
เวอร์ชันที่อัปเดตหลังจาก Explorer 4.0 ได้เพิ่มตัวเลือกในการบล็อกคุกกี้
นอกจากนี้ เทคโนโลยีล่าสุดจำนวนมากสามารถบล็อกคุกกี้บนเบราว์เซอร์ที่ไม่สามารถบล็อกคุกกี้ได้ ตัวอย่างเช่น คุณสามารถจำกัดการใช้คุกกี้โดยตั้งค่าไฟล์คุกกี้เป็นประเภทต่างๆ อย่างไรก็ตาม น่าเสียดาย หากคุณต้องการบล็อกคุกกี้โดยสมบูรณ์ คุณจะปฏิเสธหน้าเว็บไซต์หลายหน้าอย่างแน่นอน เพราะปัจจุบันนี้นักพัฒนาเว็บไซต์จำนวนมากหลงรักฟังก์ชันอันทรงพลังของเทคโนโลยีคุกกี้ ตัวอย่างเช่น การใช้อ็อบเจ็กต์เซสชันไม่สามารถแยกออกจากการสนับสนุนของคุกกี้ได้
แม้ว่าปัจจุบันนี้ยังมีผู้ใช้อินเทอร์เน็ตบางส่วนที่ยังคงโต้เถียงเกี่ยวกับคุกกี้ แต่ผู้ใช้อินเทอร์เน็ตส่วนใหญ่ยังคงยอมรับคุกกี้ ดังนั้นเราจึงสามารถใช้เทคโนโลยีคุกกี้เพื่อพัฒนาหน้าเว็บของเราได้อย่างปลอดภัย
2) คุกกี้ทำงานอย่างไร?
เพื่อให้เข้าใจถึงคุกกี้ จำเป็นต้องทราบวิธีการทำงานของคุกกี้ โดยทั่วไปแล้ว คุกกี้จะถูกส่งกลับจากเซิร์ฟเวอร์ไปยังเบราว์เซอร์ผ่านส่วนหัว HTTP ขั้นแรก เซิร์ฟเวอร์ใช้ส่วนหัว Set-Cookie ในการตอบกลับเพื่อสร้างคุกกี้ จากนั้น เบราว์เซอร์จะรวมคุกกี้ที่สร้างขึ้นในคำขอผ่านส่วนหัวของ Cookie และส่งกลับไปยังเซิร์ฟเวอร์ ซึ่งจะทำให้อาร์กิวเมนต์ของเบราว์เซอร์เสร็จสมบูรณ์
ตัวอย่างเช่น เราสร้างคุกกี้ชื่อล็อกอินเพื่อเก็บข้อมูลของผู้เข้าชม เมื่อสร้างคุกกี้ ส่วนหัวฝั่งเซิร์ฟเวอร์จะเป็นดังที่แสดงด้านล่าง ถือว่าชื่อที่ลงทะเบียนของผู้เข้าชมคือ "Michael Jordan" และคุกกี้ที่สร้างขึ้นก็เช่นกัน คุณสมบัติเช่นเส้นทาง
ระบุโดเมน หมดอายุ ฯลฯ
ชุดคุกกี้:login=Michael Jordan;path=/;domain=msn.com;
หมดอายุ=วันจันทร์,01-มี.ค.-99 00:00:01 GMT
ส่วนหัวด้านบนจะเพิ่มบันทึกลงในไฟล์คุกกี้ของคอมพิวเตอร์เบราว์เซอร์โดยอัตโนมัติ เบราว์เซอร์กำหนดค่าของคุกกี้ด้วยชื่อตัวแปร "login" ให้กับ "Michael Jordon" โปรดทราบว่าในระหว่างกระบวนการจัดส่งจริง ค่าของคุกกี้นี้จะผ่านวิธี URLEncode
การดำเนินการเข้ารหัส URL หลังจากที่ส่วนหัว HTTP ที่มีค่าคุกกี้ถูกบันทึกลงในไฟล์คุกกี้ของเบราว์เซอร์แล้ว ส่วนหัวจะแจ้งให้เบราว์เซอร์ส่งคืนคุกกี้ไปยังเซิร์ฟเวอร์โดยไม่สนใจเส้นทางผ่านการร้องขอ ซึ่งเป็นการดำเนินการตรวจสอบสิทธิ์ของเบราว์เซอร์ให้เสร็จสิ้น
นอกจากนี้ เรายังใช้คุณลักษณะบางอย่างของคุกกี้เพื่อจำกัดการใช้คุกกี้ ตัวอย่างเช่น คุณลักษณะ Domain สามารถจำกัดการส่งคุกกี้ทางฝั่งเบราว์เซอร์ ในตัวอย่างข้างต้น คุกกี้สามารถส่งไปยังเซิร์ฟเวอร์ที่กำหนดเท่านั้น และจะไม่ไปที่เว็บไซต์อื่น เช่น www.phpq.net แอตทริบิวต์ Expires ระบุช่วงเวลาที่บันทึกคุกกี้ ตัวอย่างเช่น คุกกี้ด้านบนจะถูกบันทึกบนเบราว์เซอร์เป็นเวลา 1 วินาทีในวันที่ 1 มีนาคม 1999 แน่นอนว่าหากมีคุกกี้บนเบราว์เซอร์มากเกินไปและเกินขอบเขตที่ระบบอนุญาต เบราว์เซอร์จะลบคุกกี้เหล่านั้นโดยอัตโนมัติ สำหรับเส้นทางแอตทริบิวต์นั้นใช้เพื่อระบุเส้นทางไดเรกทอรีที่คุกกี้จะถูกส่งไปยังเซิร์ฟเวอร์
หมายเหตุ: หลังจากที่เบราว์เซอร์สร้างคุกกี้ ทุกคำขอสำหรับเว็บไซต์นี้จะมีคุกกี้นี้อยู่ในส่วนหัว อย่างไรก็ตาม คุกกี้สำหรับคำขอจากเว็บไซต์อื่นจะไม่ถูกส่งไป และเบราว์เซอร์จะส่งต่อไปจนกว่าคุกกี้จะหมดอายุ เทคโนโลยีคุกกี้เป็นเทคโนโลยีที่มีการถกเถียงกันมาก นับตั้งแต่เริ่มก่อตั้ง เทคโนโลยีดังกล่าวได้กลายเป็นประเด็นถกเถียงสำหรับผู้ใช้อินเทอร์เน็ตและนักพัฒนาเว็บส่วนใหญ่ ผู้ใช้อินเทอร์เน็ตบางราย รวมถึงผู้เชี่ยวชาญเว็บอาวุโสบางคนไม่พอใจกับการสร้างสรรค์และการโปรโมต ซึ่งไม่ใช่เพราะฟังก์ชันการทำงานของเทคโนโลยีคุกกี้อ่อนเกินไปหรือด้วยเหตุผลด้านประสิทธิภาพทางเทคนิคอื่นๆ แต่เพียงเพราะพวกเขารู้สึกว่าการใช้คุกกี้ ก่อให้เกิดอันตราย เพื่อความเป็นส่วนตัวของผู้ใช้เครือข่าย เนื่องจากคุกกี้เป็นไฟล์ข้อความขนาดเล็กที่เว็บเซิร์ฟเวอร์บันทึกไว้ในเบราว์เซอร์ของผู้ใช้ คุกกี้จึงมีข้อมูลเกี่ยวกับผู้ใช้ (เช่น หมายเลขประจำตัว รหัสผ่าน วิธีที่ผู้ใช้ซื้อบนเว็บไซต์ หรือจำนวนครั้งที่ผู้ใช้ เยี่ยมชมเว็บไซต์) เทคโนโลยีคุกกี้คืออะไรกันแน่? มันส่งผลเสียต่อความเป็นส่วนตัวของผู้ใช้อินเทอร์เน็ตจริงหรือ? หลังจากอ่านข้อมูลข้างต้นแล้วคุณควรมีมาตรการในใจ