Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

เราจะรักษาเซสชันระหว่าง Web Client และ Web Server ได้อย่างไร


ต่อไปนี้คือตัวเลือกสองสามตัวในการรักษาเซสชันระหว่างเว็บไคลเอ็นต์และเว็บเซิร์ฟเวอร์ -

คุกกี้

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

นี่อาจไม่ใช่วิธีที่มีประสิทธิภาพ เนื่องจากบางครั้งเบราว์เซอร์ไม่สนับสนุนคุกกี้ ไม่แนะนำให้ใช้ขั้นตอนนี้เพื่อรักษาเซสชัน

ช่องแบบฟอร์มที่ซ่อนอยู่

เว็บเซิร์ฟเวอร์สามารถส่งฟิลด์แบบฟอร์ม HTML ที่ซ่อนอยู่พร้อมกับ ID เซสชันที่ไม่ซ้ำกันดังต่อไปนี้ −

<input type = "hidden" name = "sessionid" value = "12345">

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

นี่อาจเป็นวิธีที่มีประสิทธิภาพในการติดตามเซสชัน แต่การคลิกลิงก์ไฮเปอร์เท็กซ์แบบปกติ () จะไม่ส่งผลให้มีการส่งแบบฟอร์ม ดังนั้นฟิลด์ในฟอร์มที่ซ่อนอยู่จึงไม่สามารถรองรับการติดตามเซสชันทั่วไปได้

การเขียน URL ใหม่

คุณสามารถผนวกข้อมูลเพิ่มเติมที่ส่วนท้ายของแต่ละ URL ข้อมูลนี้ระบุเซสชัน เซิร์ฟเวอร์สามารถเชื่อมโยงตัวระบุเซสชันนั้นกับข้อมูลที่เก็บไว้เกี่ยวกับเซสชันนั้นได้

ตัวอย่างเช่น ด้วย https://tutorialspoint.com/file.htm;sessionid=12345 ตัวระบุเซสชันแนบเป็น sessionid =12345 ซึ่งสามารถเข้าถึงได้ที่เว็บเซิร์ฟเวอร์เพื่อระบุลูกค้า

การเขียน URL ใหม่เป็นวิธีที่ดีกว่าในการรักษาเซสชันและใช้ได้กับเบราว์เซอร์เมื่อไม่รองรับคุกกี้ ข้อเสียของที่นี่คือ คุณจะต้องสร้างทุก URL แบบไดนามิกเพื่อกำหนด ID เซสชัน แม้ว่าหน้าจะเป็นหน้า HTML แบบคงที่อย่างง่าย