cookie-biteCookie

อินทิรา แฝดสุระ 640710151

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-cookiearrow-up-right

setcookie() : The PHP Group. (11 Oct, 2024). Cookie. https://www.php.net/manual/en/features.cookies.phparrow-up-right

การลบ Cookie : W3Schools. (n.d.). PHP cookies. https://www.w3schools.com/php/php_cookies.asparrow-up-right

การตั้งค่า cookie แบบ array : The PHP Group. (11 Oct, 2024). setcookie. https://www.php.net/manual/en/function.setcookie.phparrow-up-right

setrawcookie() : The PHP Group. (11 Oct, 2024). setrawcookie.https://www.php.net/manual/en/function.setrawcookie.phparrow-up-right

การเปรียบเทียบ JavaScript : W3Schools (n.d.). JavaScript cookies. https://www.w3schools.com/js/js_cookies.asparrow-up-right

การเปรียบเทียบ Python : greeshmanalla (05 Feb, 2023). Flask cookies. [greekforgreek]. https://www.geeksforgeeks.org/flask-cookies/arrow-up-right

การเปรียบเทียบ Python : Servlet-cookies : vidhi16701 (06 Feb, 2023). Servlet-cookies. [greekforgreek].https://www.geeksforgeeks.org/servlet-cookies/arrow-up-right

การเปรียบเทียบ Java : curl.se. (n.d.). cookie_interface.c. https://curl.se/libcurl/c/cookie_interface.htarrow-up-right

Slide

Video

Last updated