ความหมายที่แท้จริงของ Session และ Cookie ที่หลายคนต้องใส่ใจ

Session และ Cookie: กลไกการจัดการสถานะในเว็บแอปพลิเคชัน


Session (เซสชัน) และ Cookie (คุกกี้) เป็นสองกลไกสำคัญที่ถูกนำมาใช้ในการจัดการและติดตามข้อมูลของผู้ใช้บนเว็บไซต์ เนื่องจากโปรโตคอล HTTP พื้นฐานเป็นแบบ Stateless (ไม่มีการจดจำสถานะก่อนหน้า) กลไกทั้งสองนี้จึงช่วยให้เว็บแอปพลิเคชันสามารถ “จดจำ” ผู้ใช้และสถานะการใช้งานของพวกเขาได้

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

1. Cookie (คุกกี้)

Cookie คือไฟล์ข้อความขนาดเล็กที่ถูกสร้างและจัดเก็บไว้ที่ ฝั่งไคลเอนต์ (Client-side) หรือบนเว็บเบราว์เซอร์ของผู้ใช้

  • ที่เก็บข้อมูล: จัดเก็บที่เครื่องของผู้ใช้
  • การทำงาน: เมื่อผู้ใช้เข้าชมเว็บไซต์ เบราว์เซอร์จะส่งข้อมูล Cookie กลับไปยังเซิร์ฟเวอร์พร้อมกับทุกคำขอ (HTTP Request)
  • อายุการใช้งาน: ถูกกำหนดด้วย เวลา (Expiration Time) ที่เซิร์ฟเวอร์ตั้งไว้ เช่น 7 วัน, 30 วัน หรือ 1 ปี หากไม่มีการกำหนดอายุ (Non-Persistent Cookie) จะถูกลบเมื่อปิดเบราว์เซอร์
  • ความกังวล: Cookie โดยเฉพาะ Third-party Cookies ถูกใช้ในการติดตามพฤติกรรมการท่องเว็บ ทำให้เกิดประเด็นเรื่องความเป็นส่วนตัว เว็บเบราว์เซอร์ส่วนใหญ่จึงกำหนดให้ผู้ใช้ต้อง อนุญาตหรือปฏิเสธการใช้คุกกี้

2. Session (เซสชัน)

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

  • ที่เก็บข้อมูล: ข้อมูลตัวแปร Session จะถูกเก็บไว้ที่ ฝั่งเซิร์ฟเวอร์ (Server-side) เท่านั้น โดยจะถูกบันทึกเป็นไฟล์หรือในฐานข้อมูล
  • การทำงาน:
    1. เมื่อผู้ใช้เข้าชมเว็บไซต์ เซิร์ฟเวอร์จะสร้าง Session ID ที่ไม่ซ้ำกันขึ้นมา
    2. Session ID นี้จะถูกส่งกลับไปเก็บที่เบราว์เซอร์ของผู้ใช้ ซึ่งโดยทั่วไปจะอยู่ในรูปของ Session Cookie
    3. ทุกครั้งที่ผู้ใช้ส่งคำขอไปยังเซิร์ฟเวอร์ เบราว์เซอร์จะส่ง Session ID กลับไปด้วย เพื่อให้เซิร์ฟเวอร์ดึงข้อมูลที่เกี่ยวข้องกับ Session นั้น ๆ มาใช้งาน
  • อายุการใช้งาน: ถูกกำหนดด้วย การทำงานของเว็บเบราว์เซอร์ เมื่อผู้ใช้ทำการปิดโปรแกรมเว็บเบราว์เซอร์ Session ก็จะถูกทำลายหรือปิดลง ข้อมูลในเซสชันที่ฝั่งเซิร์ฟเวอร์ก็จะถูกลบหรือถูกปล่อยให้หมดอายุตามที่กำหนดไว้

ประโยชน์และการใช้งานของ Session

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

  • แก้ปัญหาการปฏิเสธ Cookie: หากผู้ใช้เลือกที่จะไม่ใช้ Cookie (ซึ่งทำให้ตัวแปร Cookie ไม่สามารถถูกสร้างได้) เซิร์ฟเวอร์ยังคงสามารถใช้ Session ID ในการติดตามผู้ใช้ได้ โดยอาจใช้วิธีฝัง Session ID เข้าไปใน URL (URL Rewriting) แทนการใช้ Cookie
  • ระบบล็อกอิน (Login System): ใช้ในการเก็บสถานะของผู้ใช้ที่เข้าสู่ระบบ เพื่อตรวจสอบสิทธิ์การเข้าถึง
  • การควบคุมการเข้าถึง: ใช้ในการจำกัดการเข้าถึงหน้าเว็บต่าง ๆ สำหรับผู้ใช้ที่มีสิทธิ์เท่านั้น
  • ตะกร้าสินค้า (Shopping Cart): ใช้เก็บข้อมูลของสินค้าที่ผู้ใช้เลือกในเว็บไซต์ E-commerce ซึ่งช่วยให้ผู้ดูแลเว็บสามารถติดตามข้อมูลการซื้อขายได้

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

Share This :
About modify 7092 Articles
สามารถนำบทความไปเผยแพร่ได้อย่างอิสระ โดยกล่าวถึงแหล่งที่มา เป็นลิงค์กลับมายังบทความนั้นๆ บทความอาจมีการพิมพ์ตกเรื่องภาษาไปบ้าง ต้องขออภัย พยามจะพิมพ์ผิดให้น้อยที่สุด (ทำเว็บคนเดียวไม่มีคนตรวจทาน) บทความที่สอนเรื่องต่างๆ กรุณาอ่านบทความให้เข้าใจก่อนโพสต์ถาม ติดตรงไหนสามารถถามได้ที่โพสต์นั้นๆ

Be the first to comment

Leave a Reply

Your email address will not be published.