โพสต์และรับคำขอต่างกันอย่างไร

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

เคล็ดลับ: แม้ว่าพวกเขาจะเรียกว่าเมธอด HTTP ทั้ง GET และ POST ก็ใช้ใน HTTPS ด้วย

ความแตกต่างที่สำคัญอย่างหนึ่งคือพารามิเตอร์ใดๆ ที่รวมอยู่ในคำขอ GET จะรวมอยู่ใน URL เอง ในขณะที่พารามิเตอร์ในคำขอ POST เป็นส่วนหนึ่งของเนื้อหาคำขอ

ตัวอย่างเช่น URL คำขอ GET อาจดูเหมือน “GET.php? Parameter=value” ในขณะที่ URL สำหรับคำขอ POST จะดูเหมือน “POST.php” จากนั้นให้ตั้งค่า “parameter=value” ในเนื้อหาของคำขอ

การแตกสาขาที่สำคัญอย่างหนึ่งของสิ่งนี้คือเมื่อเว็บเซิร์ฟเวอร์ร้องขอบันทึก URL ที่ร้องขอจะถูกบันทึกไว้เสมอ ดังนั้น สำหรับคำขอ GET พารามิเตอร์จะถูกบันทึกด้วย ในกรณีของคำขอ POST แม้ว่าค่าจะไม่ถูกบันทึกเนื่องจากเนื้อหาของคำขอไม่ได้ถูกบันทึก นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับแบบฟอร์มที่มีข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านหรือ PII (ข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้) เนื่องจากการใช้ POST หมายความว่าข้อมูลนี้จะไม่ได้รับการเข้าสู่ระบบ เว็บเซิร์ฟเวอร์

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

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