วันอังคารที่ 1 กันยายน พ.ศ. 2563

Cookie OR Session

คนเขียนเว็บและต้องการเก็บข้อมูลเกี่ยวกับผู้ใช้งาน ส่วนใหญ่ใช้งาน Cookie หรือไม่ก็ Session ที่ดูเหมือนว่าจะใช้งานได้เหมือนๆกัน แต่จริงๆแล้วทั้งสองอย่างนี้มีความแตกต่างกัน ขึ้นอยู่กับการนำไปใช้งานที่ต้องการในระดับไหน มาดูรายละเอียดแต่ละตัวกัน

Cookie คือ
Cookie (เปรียบได้คือ User) เป็นไฟล์เล็กๆที่เว็บเซิร์ฟเวอร์ ส่งให้เบราเซอร์เก็บเอาไว้หรือก็คือเก็บในเครื่องของผู้ใช้งาน โดยเมื่อไหร่ก็ตามที่ Cookie ถูกส่งไปเก็บไว้ในเบราเซอร์เรียบร้อยแล้ว เวลาที่ผู้ใช้ใช้งานเว็บไซต์ที่เป็นเจ้าของ Cookie เบราเซอร์ก็จะส่งข้อมูล Cookie นั้นติดไปกับ Request ต่างๆทุกครั้ง ซึ่งไฟล์ Cookie นี้จะอยู่ในเบราเซอร์ของผู้ใช้ไปตลอดจนกว่าจะถูกลบโดยผู้ใช้เอง

Session คือ
Session (เปรียบได้คือ Visit) คือข้อมูลที่เก็บเอาไว้ในฝั่ง Server โดยแต่ละผู้ใช้งานหรือก็คือเบราเซอร์หนึ่งจะถูกเก็บไว้โดยมี unique id กำกับในแต่ละ Session เอาไว้ ซึ่งตัว id ดังกล่าวจะถูกส่งไปที่เบราเซอร์และเก็บในรูปแบบ Cookie อีกที เวลาที่ผู้ใช้ ใช้งานเว็บไซต์นั้นก็จะส่ง id ไปยังเซิร์ฟเวอร์ด้วย แล้วเซิร์ฟเวอร์ะนำ id ไปดึงข้อมูล Session ที่เก็บไว้ออกมาอีกที ซึ่งข้อมูล Session จะเป็นข้อมูลชั่วคราวที่หมดอายุหลังจากที่ผู้ใช้ออกจากเว็บไป

สำหรับ Cookie และ Session จะเห็นว่ามีจุดแตกต่างกันชัดเจนในการนำไปใช้งาน
ใช้ เก็บข้อมูล

Cookie เก็บฝั่งเบราเซอร์ผู้ใช้
Session เก็บฝัง Server 

มีเวลาหมดอายุของข้อมูล

Cookie เก็บได้ถาวรจนกว่าผู้ใช้จะลบ
Session นับเวลาหมดอายุหลังผู้ใช้ปิดเว็บ


ยากจะแนะนำการนำไปใช้งานนั้นแตกต่างกันแต่ละตัว

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

Session
การที่ข้อมูลถูกเก็บอยู่ที่เซิร์ฟเวอร์ทำให้สามารถเก็บข้อมูลได้ทุกประเภท อย่างเช่นข้อมูลการเข้าสู่ระบบ 
ทำให้ผู้ใช้สามารถใช้งานเว็บได้โดยทำการเข้าสู่ระบบแค่ครั้งเดียว


ทั้ง Cookie และ Session นั้นก็ล้วนมีข้อดีและข้อเสียต่างกันออกไป แค่เราต้องเลือกใช้กับให้เหมาะสมกับงานที่เราออกแบบว่าสำคัญขนาดไหน


ref; borntodev.com /  hooktalk.com