Cookie
อินทิรา แฝดสุระ 640710151
Cookie คืออะไร ?
Cookie คือ ไฟล์ขนาดเล็กที่เอาไว้สำหรับเก็บข้อมูลใน Browser ของ Client โดย cookie จะถูกสร้างในฝั่งของ Server และจะถูกบันทึกข้อมูลในฝั่ง Browser ของ Client ถ้า User มีการส่งคำขอไปยังฝั่งของ Server จากนั้น Cookie จะรวมเข้ากับคำขอนั้นเพื่อให้สามารถรับ cookie ฝั่งของ Server ได้

การตั้งค่า cookie มี 2 ฟังก์ชัน คือ setcookie() กับ setrawcookie()
setcookie()
การสร้าง Cookies
setcookie() จะใช้สำหรับการกำหนด cookie ที่ถูกส่งไปพร้อมกับ HTTP headers ในการจะเรียกใช้เราต้องเรียกใช้ก่อนการแสดงผล ต้องแท็ก และ และจะเข้ารหัสแบบอัตโนมัติก่อนส่งให้ Browser ของ User
name คือ ชื่อของ cookie
value คือ ค่าของ cookie
expires_or_options คือ เวลาในการหมดอายุของ cookie จะมีการเพิ่มเวลาเป็นหน่วย วินาที
path คือ เส้นทางบน server ที่ cookie จะถูกใช้ได้
domain คือ domain ที่ cookie สามารถเข้าถึงได้
secure คือ จะระบุว่า cookie ควรถูกเชื่อมต่อผ่าน HTTPS เท่านั้นหรือไม่ ถ้า True cookie จะถูกตั้งค่าเฉพาะมีการเชื่อมต่อที่ปลอดภัย
httponly คือ ถ้าเป็น True จะเข้าถึงได้เฉพาะ HTTP
options คือ เป็น array ที่มี key เป็น expires, path, domain, secure, httponly และ samesite
ตัวอย่าง code
จาก code เราได้ทำการสร้าง cookie โดยมี name คือ “user” มีค่า value คือ “John Doe” มีระยะเวลา 30 วัน และมีฟังก์ชัน isset() สำหรับตรวจสอบว่า cookie ถูกตั้งค่าแล้วหรือไม่
การลบ cookie
การลบ cookie เราจะใช้ฟังก์ชัน setcookie() โดยจะกำหนดวันที่หมดอายุเป็นวันที่ผ่านมาแล้ว
การตั้งค่า cookie แบบ array
จาก code เราตั้งค่า cookie ในรูปแบบของ array คือ cookiethree, cookietwo และ cookieone โดยมี key หลัก คือ cookie และมี key ย่อย คือ three , two และ one มีฟังก์ชัน isset() สำหรับตรวจสอบว่า cookie ถูกตั้งค่าแล้วหรือไม่ และมีการวนลูป cookie และแสดงผลผ่าน key “$name” และ “$value” มีการใช้ฟังก์ชัน htmlspecialchars ในการแปลงตัวอักษรเพื่อให้ป้องกันด้านความปลอดภัยก่อนแสดงผล
setrawcookie()
setrawcookie() จะทำงานเหมือนกับ setcookie() แต่จะไม่ทำการเข้ารหัสแบบอัตโนมัติ การคืนค่าเมื่อทำงานสำเร็จจะส่ง True เมื่อล้มเหลวจะส่ง False
การเปรียบเทียบ code
- JavaScript
ฟังก์ชัน setcookie() เป็นตัวสร้างและอัปเดต cookie ด้วย name value expiration
ฟังก์ชัน getcookie() จะตรวจสอบและจะดึงค่าของ cookie
ฟังก์ชัน checkCookie() จะตรวจสอบ cookie ชื่อ ถ้ามีจะแสดงข้อความต้อนรับ user ถ้าไม่มีจะให้ user กรอกชื่อและจะเก็บ cookie เป็นเวลา 365 วัน
- Python
Setting Cookie
มีการนำเข้า module flask และมีฟังก์ชัน setcookie ที่เอาไว้สร้าง cookie ที่ชื่อว่า "GFG" และมีค่าคือ "ComputerScience Portal" และส่งการตอบกลับไปยัง user
Getting cookie
การใช้ get() จะเป็นการดึงค่า cookie ไปเก็บไว้ใน browser ของ user เมื่อ user เข้าถึงเส้นทาง /getcookie
จะมีการดึงค่า cookie ที่ชื่อว่า "GFG" และจะแสดงข้อความ "GFG is a ComputerScience Portal"
- C
มีการใช้งาน library libcurlเพื่อแสดงการทำงานที่เกี่ยวกับ cookie มีการส่งคำขอ HTTP เพื่อรับ cookie และมีการแสดง cookie ที่ได้รับมาจากนั้นมรการลบ cookie และตั้งค่าใหม่ เมื่อมีการส่งคำขอซ้ำจะมีพร้อมกับ cookie ใหม่ และปิดการเชื่อมต่อและลบหน่วยความจำ จาก code แสดงการจัดการคุกกี้ใน cURL มีการสร้างและแสดง cookie รวมถึงการลบและตั้งค่าคุกกี้ใหม่ในระหว่างการทำงาน
- Java
class Servlet1
จาก code Servlet1 นี้มีการรับพารามิเตอร์ชื่อจาก user พร้อมทั้งสร้าง cookie ที่ชื่อว่า "user_name" ที่เอาไว้เก็บค่าของชื่อ user และมีให้ user คลิกลิงค์ไป Servlet2 เพื่อทำงานต่อไป
class Servlet2
จาก code Servlet2 นี้จะตรวจสอบว่า user เคยเข้า website แล้วหรือไม่ ถ้ายังไม่เคยจะแสดงข้อความ "You are new user, go to home page and submit your institute's name" แสดงว่าเป็น user ใหม่และจะแนะนำให้ไปหน้าแรก ถ้าเคยจะแสดงข้อความ "Hello, welcome back [name]" และ "Thank you!!"
Reference
Cookie : JavaTpoint. (n.d.). PHP cookie. https://www.javatpoint.com/php-cookie
setcookie() : The PHP Group. (11 Oct, 2024). Cookie. https://www.php.net/manual/en/features.cookies.php
การลบ Cookie : W3Schools. (n.d.). PHP cookies. https://www.w3schools.com/php/php_cookies.asp
การตั้งค่า cookie แบบ array : The PHP Group. (11 Oct, 2024). setcookie. https://www.php.net/manual/en/function.setcookie.php
setrawcookie() : The PHP Group. (11 Oct, 2024). setrawcookie.https://www.php.net/manual/en/function.setrawcookie.php
การเปรียบเทียบ JavaScript : W3Schools (n.d.). JavaScript cookies. https://www.w3schools.com/js/js_cookies.asp
การเปรียบเทียบ Python : greeshmanalla (05 Feb, 2023). Flask cookies. [greekforgreek]. https://www.geeksforgeeks.org/flask-cookies/
การเปรียบเทียบ Python : Servlet-cookies : vidhi16701 (06 Feb, 2023). Servlet-cookies. [greekforgreek].https://www.geeksforgeeks.org/servlet-cookies/
การเปรียบเทียบ Java : curl.se. (n.d.). cookie_interface.c. https://curl.se/libcurl/c/cookie_interface.ht
Slide
Video
Last updated