บทความนี้แนะนำวิธีการต่าง ๆ ในการโต้ตอบกับเซิร์ฟเวอร์ ชื่อเต็มของ URL คือตัวบ่งชี้ทรัพยากร เพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่ม เพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มเพิ่มการดำเนินงาน 4 ณ จุดนี้ทุกคนควรมีความเข้าใจทั่วไป
1. ตามข้อกำหนด HTTP GET จะถูกใช้สำหรับการได้มาซึ่งข้อมูลและควรปลอดภัยและมีอำนาจ
(1) กล่าวอีกนัยหนึ่งโดยทั่วไปรับคำขอไม่ควรสร้างผลข้างเคียง กล่าวคือมันเป็นเพียงการได้รับข้อมูลทรัพยากรเช่นเดียวกับการสืบค้นฐานข้อมูลมันจะไม่แก้ไขเพิ่มข้อมูลและจะไม่ส่งผลกระทบต่อสถานะของทรัพยากร
* หมายเหตุ: ความหมายของความปลอดภัยที่นี่หมายถึงข้อมูลที่ไม่ได้แก้ไขเท่านั้น
(2) ที่นี่ฉันจะอธิบายแนวคิดของ Mi Wait:
Idempotent และ Idempotnce เป็นแนวคิดทางคณิตศาสตร์หรือคอมพิวเตอร์โดยทั่วไปในพีชคณิตนามธรรม
รอคำจำกัดความสองสามข้อ:
สำหรับการดำเนินการตาข้างเดียวหากการดำเนินการเหมือนกันสำหรับผลลัพธ์ของการคำนวณการดำเนินการของการดำเนินการและผลลัพธ์ของการคำนวณการดำเนินการจากนั้นผลลัพธ์ของการดำเนินการจะเหมือนกับผลลัพธ์ของการดำเนินการ ตัวอย่างเช่นการดำเนินการค่าสัมบูรณ์เป็นตัวอย่าง
สำหรับการดำเนินการกล้องสองตาหากค่าทั้งสองของการดำเนินการที่เข้าร่วมมีค่าเท่ากันหากผลการคำนวณเท่ากับค่าสองค่าของการดำเนินการที่เข้าร่วมพลังของการดำเนินการเรียกว่าฟังก์ชันมีพลังงานเข้มข้นใน จำนวนจริงนั่นคือสูงสุด (x, x) = x
หลังจากอ่านคำอธิบายข้างต้นคุณควรเข้าใจความหมายของการรับพลัง
แต่ในการใช้งานจริงบทบัญญัติทั้งสองข้างต้นไม่เข้มงวดมากนัก ตัวอย่างการอ้างถึงบทความของคนอื่น: ตัวอย่างเช่นหน้าแรกของไซต์ข่าวได้รับการปรับปรุงอย่างต่อเนื่อง แม้ว่าคำขอที่สองจะส่งคืนข่าวชุดที่แตกต่างกัน แต่การดำเนินการยังคงถือว่าปลอดภัยและมีอำนาจเพราะมันจะส่งคืนข่าวปัจจุบันเสมอ โดยพื้นฐานแล้วถ้าเป้าหมายคือเมื่อผู้ใช้เปิดลิงก์เขาสามารถมั่นใจได้ว่าเขาไม่สามารถเปลี่ยนทรัพยากรจากมุมมองของเขาเองได้
2. ตามข้อกำหนด HTTP โพสต์ระบุว่าคำขอเปลี่ยนทรัพยากรบนเซิร์ฟเวอร์อาจแก้ไขทรัพยากรบนเซิร์ฟเวอร์ ยังคงอ้างอิงตัวอย่างข้างต้น: ยังคงใช้ข่าวเป็นตัวอย่าง
ข้างต้นพูดคุยเกี่ยวกับหลักการบางอย่างของการรับและโพสต์ในข้อกำหนด HTTP อย่างไรก็ตามในการทำจริงหลายคนไม่ได้ทำตามข้อกำหนด HTTP
1. หลายคนโลภและสะดวกสบาย
2. สำหรับการเพิ่ม, ลบ, เปลี่ยน, ตรวจสอบการดำเนินการ, คุณสามารถทำให้เสร็จสมบูรณ์ผ่าน Get/Post โดยไม่ต้องใช้ Put and Delete
3. อีกอย่างคือนักออกแบบเฟรมเวิร์กเว็บ MVC รุ่นแรกไม่ได้ปฏิบัติต่อ URL อย่างมีสติเป็นทรัพยากรที่เป็นนามธรรมดังนั้นปัญหาที่ร้ายแรงกว่าคือเฟรมเวิร์ก MVC แบบดั้งเดิมโดยทั่วไปสนับสนุนการรับและโพสต์วิธี HTTP สองวิธีเท่านั้นที่ไม่ได้รับการสนับสนุน
* เพียงแค่อธิบาย MVC: MVC เดิมมีอยู่ในโปรแกรมเดสก์ท็อป วัตถุประสงค์ของการใช้ MVC คือการแยกรหัสการใช้งานของ M และ V เพื่อให้โปรแกรมเดียวกันสามารถใช้แบบฟอร์มนิพจน์ที่แตกต่างกัน
3 คะแนนข้างต้นอธิบายถึงชุดรูปแบบเก่า (โดยไม่ต้องปฏิบัติตามข้อกำหนด HTTP อย่างเข้มงวด)
หลังจากพูดถึงเหตุผลดั้งเดิมเราจะดูความแตกต่างระหว่าง Get และ Post จากภาพพื้นผิว:
1. ข้อมูลที่ร้องขอโดย TheGet จะถูกแนบกับ URL (นั่นคือวางข้อมูลในส่วนหัวโปรโตคอล HTTP) เพื่อแบ่ง URL และส่งข้อมูลและการเชื่อมต่อพารามิเตอร์เช่น: login.action? Hyddd & Password = Idontknow & Verify =%e4%bd%a0%e5%a5%bd หากข้อมูลเป็นตัวอักษร/ตัวเลขภาษาอังกฤษการส่งต้นฉบับถ้าเป็นพื้นที่ให้แปลงเป็น+ถ้าเป็นอักขระจีน/อื่น ๆ ASCII แสดงโดย hexadecimal
โพสต์วางข้อมูลที่ส่งไว้ในแพ็คเกจ HTTP
2. ข้อมูลที่ส่งมาเป็น 1024 ไบต์ จุดตัด จุดตัด
ประโยคข้างต้นถูกถ่ายโอนจากบทความอื่น ๆ
(1) ในความเป็นจริง URL ไม่มีปัญหาของขีด จำกัด สูงสุดของพารามิเตอร์และข้อกำหนดโปรโตคอล HTTP ไม่ได้ จำกัด ความยาว URL ขีด จำกัด นี้เป็นเบราว์เซอร์เฉพาะและข้อ จำกัด ของเซิร์ฟเวอร์ ข้อ จำกัด ของ URL คือ 2083 ไบต์ (2K+35) สำหรับเบราว์เซอร์อื่น ๆ เช่น Netscape, Firefox ฯลฯ ไม่มีข้อ จำกัด ระยะยาวและข้อ จำกัด ขึ้นอยู่กับการสนับสนุนของระบบปฏิบัติการ
โปรดทราบว่าสิ่งนี้ถูก จำกัด ไว้ที่ความยาว URL ทั้งหมดไม่ใช่แค่ความยาวข้อมูลพารามิเตอร์ของคุณ [ดูข้อมูลอ้างอิง 5]
(2)
สำหรับโปรแกรม ASP วัตถุคำขอมีขีด จำกัด ความยาวของข้อมูล 100K เมื่อประมวลผลแต่ละโดเมน แต่ถ้าคุณใช้ request.binaryRead ไม่มีการ จำกัด
จากส่วนขยายนี้ Microsoft ได้เพิ่มข้อ จำกัด ใน IIS 6.0 ด้วยเหตุผลด้านความปลอดภัย เรายังต้องให้ความสนใจ:
1)
2)
3)
IIS 6.0 ไม่เคยมีข้อ จำกัด เหล่านี้มาก่อน [ดูข้อมูลอ้างอิง 5]
ดังนั้น 80K ข้างต้น 100K อาจเป็นเพียงค่าเริ่มต้น (หมายเหตุ: ฉันยังไม่ได้ยืนยันพารามิเตอร์ของ IIS4 และ IIS5) แต่ต้องกำหนดด้วยตัวเอง เนื่องจากค่าเริ่มต้นของพารามิเตอร์เหล่านี้ของ IIS แต่ละเวอร์ชันนั้นแตกต่างกันโปรดดูเอกสารการกำหนดค่า IIS ที่เกี่ยวข้อง
3. ใน ASP เซิร์ฟเวอร์จะได้รับพารามิเตอร์การร้องขอ GET พร้อม request.QueryString และรับพารามิเตอร์การร้องขอโพสต์ด้วย request.form ใน JSP ให้ใช้ request.getParameter (/xxxx/) เพื่อรับมัน & รหัสผ่าน = hyddd, ใช้คำขอ ใน PHP คุณสามารถใช้ $ _get และ $ _post เพื่อรับข้อมูลใน Get and Posts ในขณะที่ $ _request สามารถรับข้อมูลในสองคำขอของ Get and Post เป็นที่น่าสังเกตว่าจะมีอันตรายที่ซ่อนอยู่ในการใช้ $ _request ใน JSP ใน JSP และ PHP ในครั้งต่อไปที่ฉันจะเขียนบทความเพื่อสรุป
4. ความปลอดภัยของโพสต์สูงกว่าความปลอดภัยของ GET หมายเหตุ: ความปลอดภัยที่กล่าวถึงที่นี่ไม่ใช่แนวคิดเดียวกับความปลอดภัยที่กล่าวถึงข้างต้น ความหมายของการรักษาความปลอดภัยข้างต้นไม่เพียงเพื่อแก้ไขข้อมูลและความหมายของความปลอดภัยที่นี่คือความหมายของความปลอดภัยที่แท้จริง เพราะ (1) หน้าเข้าสู่ระบบอาจเป็นเบราว์เซอร์ การขอการปลอมแปลงเว็บไซต์
สรุปได้ว่า Get เป็นคำขอส่งข้อมูลไปยังเซิร์ฟเวอร์และโพสต์เป็นคำขอส่งข้อมูลไปยังเซิร์ฟเวอร์