แนะนำ: การวิเคราะห์การจัดการสถานะเว็บของการออกแบบแอปพลิเคชัน ASP นักพัฒนาหลายคนไม่เคยพิจารณาแนวคิดของรัฐก่อนส่งแอพพลิเคชั่นไปยังเว็บ ดังที่ได้กล่าวไว้ก่อนหน้านี้เว็บเป็นสภาพแวดล้อมที่ไร้สัญชาติ ดังนั้นเราควรหารือว่ารัฐคืออะไรและเข้าใจวิธีการที่สามารถหลีกเลี่ยงปัญหาได้ คำจำกัดความที่แน่นอนของสถานะในผู้ใช้รายเดียว
พูดคุยเกี่ยวกับเซสชั่นก่อนการอภิปรายเกี่ยวกับเซสชันดูเหมือนจะไม่เคยหยุด แต่มีคนมากกว่า 90 คนที่สามารถเข้าใจเซสชันได้
แต่ให้ฉันบอกคุณอย่าแก่ ~
บางคนเห็นด้วยกับเซสชั่นในขณะที่คนอื่นไม่เห็นด้วย แต่ฉันควรพูดอะไรเกี่ยวกับคำถามนี้? ทำไมไม่ฟังความคิดเห็นของฉัน
หากมีข้อผิดพลาดใด ๆ โปรดอย่าโยนสิ่งต่าง ๆ ไปยังจุดยกเว้นบาร์ทองคำและเหรียญ
บางคนควรรู้ว่าฉันเป็นคนที่ทำงานในโปรแกรม Jianghu และสิ่งที่ฉันให้ความสำคัญกับโปรแกรม Jianghu นั้นมีประสิทธิภาพ แต่ที่นี่ฉันไม่ได้พูดถึงการออกแบบ
ดูเซสชั่นจากมุมมองที่ใช้งานได้จริง
ก่อนอื่นเราต้องพูดถึงสิ่งที่เซสชันสามารถจัดเก็บ IEs กับผู้ใช้บางคนและผ่านมัน
หน้าต่างใด ๆ ที่เปิดในหน้าต่างด้านหน้ามีกลไกการจัดเก็บข้อมูลผู้ใช้เป้าหมาย ทำไมคุณถึงพูดแบบนั้น? ดูสิ่งต่อไปนี้
การศึกษาครั้งแรกว่าเซสชั่นเริ่มต้นอย่างไร
และดาวน์โหลดสิทธิ์สำหรับข้อมูลประเภทต่าง ๆ เช่นรูปภาพเสียงและแฟลช
เนื้อหาการส่งข้อมูลจริง: เช่นไปยังเซิร์ฟเวอร์
รับ / http / 1.1
ยอมรับ: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */ *
ยอมรับภาษา 0: zh-cn
ยอมรับการเข้ารหัส: gzip, deflate
ผู้ใช้ตัวแทน: Mozilla/4.0 (เข้ากันได้; MSIE 5.01; Windows NT 5.0)
โฮสต์: www.jh521.com
การเชื่อมต่อ: Keep-Alive
เซิร์ฟเวอร์จะส่งคืน SessionID ที่ไม่ได้ใช้สำหรับ IE ที่จะใช้
และส่งคืนข้อมูลการดาวน์โหลดของหน้าเกี่ยวข้องในเวลาเดียวกันดังนี้: เซิร์ฟเวอร์ไปยัง IE
http/1.1 200 ตกลง
เซิร์ฟเวอร์: Microsoft-IIS/5.0
วันที่: ดวงอาทิตย์, 30 พ.ย. 2546 16:41:51 GMT
ความยาวเนื้อหา: 21174..CONTENT-TYPE: TEXT/HTML
Set-Cookie: AspsessionIdCacbbbrt = iBomFonaoJfeebhbPienjffc;
แคชควบคุม: ส่วนตัว
จากนั้นก็มีรหัสหน้า HTML
ในเวลานี้ SessionId ของโปรแกรม IE นี้ (ไม่ใช่ลูกค้า) คือ ibomfonaojfeebhbpienjffc
และเมื่อ IE เข้าถึงโปรแกรม ASP ใด ๆ ในเว็บไซต์นี้มันจะส่ง ibomfonaojfeebhbpienjffc
มอบให้กับเซิร์ฟเวอร์และเซิร์ฟเวอร์จะรู้ว่า ibomfonaojfeebhbpienjffc เหมาะสำหรับคุณ
ตั้งค่าเซสชัน (ชื่อ) = ชื่อบนเซิร์ฟเวอร์
มันถือได้ว่าเป็น
เซสชัน (ibomfonaojfeebhbpienjffc) (ชื่อ) = ชื่อ
หรือ
เซสชัน (sessionId) (ชื่อ) = ชื่อ
ด้วยวิธีนี้เซสชันทำให้ผู้ใช้แตกต่าง
เมื่อเซิร์ฟเวอร์ตอบกลับ ID นี้จะตรวจสอบว่าใช้ ID หรือไม่ หากมีการเปลี่ยนแปลง
อย่างไรก็ตามคุณจะไม่ทำซ้ำมันก็โอเคที่จะจำลองรหัสเซสชันของใครบางคนเพื่อโกง แต่จะได้รับ
IE ของอีกฝ่ายส่งสัญญาณและสามารถนำไปใช้ได้เฉพาะในกรณีที่ SessionID ไม่ได้ถูกยกเลิกในเวลานั้น
แต่ถ้าฉันมีเวลานั้นฉันจะพบชื่อเขาโดยตรงและผ่านสัญญาณโพสต์ ฉันไม่ต้องกังวลเกี่ยวกับเรื่องนี้
ฉันเดาว่าบางคนเข้าใจว่า SessionId ทำงานอย่างไร
จากนั้นมาดูคุกกี้บางคนบอกว่า Sessionid เป็นคุกกี้
อย่างไรก็ตามมันเป็นของโหมดการทำงานที่ผู้ใช้และเซิร์ฟเวอร์ส่งข้อมูลส่วนตัว
เมื่อฉันตั้งค่าคุกกี้เซิร์ฟเวอร์จะตอบกลับคำแนะนำของ IE เช่นสร้างคุกกี้ผ่านคำแนะนำเครือข่ายนี้และ
จัดเก็บข้อมูลนี้จะได้รับในเวลาที่กำหนดเช่นเมื่อเข้าถึงเว็บไซต์นี้และ Cookid นั้นถูกต้อง
เหตุใดจึงใช้คุกกี้แทนเซสชัน
ดูความแตกต่าง
เวลาที่ถูกต้องและวิธีการจัดเก็บเพื่อถ่ายโอนเนื้อหา
คุกกี้สามารถตั้งค่าและเก็บข้อมูลที่ชัดเจนในพื้นที่
เซสชันไม่ได้ปิดตัวลงใน IE และเซิร์ฟเวอร์ไม่หมดเวลา SessionID เท่านั้น
หากคุณต้องการให้ผู้ใช้เข้าสู่เว็บไซต์ในครั้งต่อไปที่คุณไม่จำเป็นต้องป้อนชื่อผู้ใช้หรือรหัสผ่านคุณสามารถใช้คุกกี้ได้เท่านั้น
เพราะเขาสามารถเก็บไว้ได้นาน (ก่อนที่บันทึกคุกกี้จะถูกลบหรือหมดอายุ)
แต่เซสชั่นเป็นไปไม่ได้มันจะไม่เก็บไว้นานเกินไปและ IE จะล้างบันทึก SessionID โดยอัตโนมัติหลังจากปิด
ครั้งต่อไปที่คุณเข้าสู่ระบบคุณจะขอ SessionID ใหม่
เมื่อเซิร์ฟเวอร์ต้องการตรวจสอบสถานะของผู้ใช้ผ่านตัวแปรส่วนตัวของผู้ใช้จะไม่สามารถใช้คุกกี้ได้
หากคุณตั้งค่าสิทธิ์ผู้ใช้เป็นผู้ใช้ เมื่อ IE เข้าถึงจะส่งรหัสผู้ใช้ไปยังเซิร์ฟเวอร์
ดังนั้นถ้าฉันใช้วิธีการบางอย่างเช่นการแก้ไขบันทึกคุกกี้โดยตรงและแก้ไขผู้ใช้ให้เป็นผู้ดูแลระบบ ~~
มันลำบาก
อย่างไรก็ตามเป็นการดีที่สุดในการจัดเก็บข้อมูลเช่นชื่อผู้ใช้และรหัสผ่านหรือโทนสีเว็บไซต์
โอเคเหนื่อยนิดหน่อยฉันกำลังพูดถึงเรื่องนี้
request.serverVariables (http_referer)
ฉันคิดว่ามีบางคนที่ผ่านคำขอนี้ ServerVariables (http_referer)
เพื่อใช้ข้อ จำกัด ที่สำคัญบางอย่างโดยเฉพาะอย่างยิ่งกับการส่งระยะไกลและการบุกรุกที่ผิดกฎหมาย
จากนั้นฉันต้องการเตือนเซิร์ฟเวอร์ว่าข้อมูล http_referer ที่ได้รับนั้นถูกส่งไปยังเซิร์ฟเวอร์อย่างสมบูรณ์โดย IE และสามารถจำลองได้
และมันก็ไม่ยาก
แชร์: รหัสอินสแตนซ์ ASP: วิธีการตั้งค่ารหัสการเพจบทความยาว ต่อไปนี้เป็นเนื้อหาอ้างอิง: <%คลาส ASPXSKY_PAGE Private Private class_Initialize การแจ้งเตือนฟังก์ชั่นสาธารณะส่วนย่อยสิ้นสุด (Messa