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

ความแตกต่างระหว่างเมธอด GET และ POST ในโปรโตคอล HTTP

เมธอด GET

เมธอด GET ส่งข้อมูลที่เข้ารหัสไปพร้อมกับ URL คั่นด้วยเครื่องหมาย ? เช่น:

https://www.example.com/hello?key1=value1&key2=value2

ลักษณะสำคัญของ GET:

  • เป็นเมธอดเริ่มต้นสำหรับส่งข้อมูลจากเบราว์เซอร์ไปเว็บเซิร์ฟเวอร์
  • ข้อมูลปรากฏในแถบที่อยู่ (Address bar) ของเบราว์เซอร์
  • ไม่ควรใช้ส่งข้อมูลลับ เช่น รหัสผ่าน เพราะมองเห็นได้ง่าย
  • มีข้อจำกัดขนาด: สูงสุดประมาณ 1024 ตัวอักษร สำหรับสตริงคำขอ
  • ข้อมูลส่งผ่านหัวข้อ QUERY_STRING เข้าถึงได้ด้วย getQueryString() และ getParameter()

เมธอด POST

เมธอด POST บรรจุข้อมูลในรูปแบบเดียวกับ GET แต่ส่งเป็นข้อความแยกต่างหาก (ไม่ต่อท้าย URL) ข้อมูลจะไปถึงโปรแกรมแบ็กเอนด์ผ่านสตรีมอินพุตมาตรฐาน (standard input)

ข้อได้เปรียบของ POST:

  • ปลอดภัยกว่า เพราะข้อมูลไม่แสดงใน URL
  • ไม่มีข้อจำกัดขนาดข้อมูลที่ส่ง (ขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์)
  • รองรับการส่งไฟล์และข้อมูลไบนารี
  • เหมาะสำหรับข้อมูลละเอียดอ่อน การอัปโหลดไฟล์ และฟอร์มขนาดใหญ่

สรุปการเลือกใช้

ลักษณะGETPOST
มองเห็นข้อมูลใน URLใช่ไม่
ขนาดข้อมูลจำกัด (~1KB)ใหญ่ (ขึ้นอยู่กับเซิร์ฟเวอร์)
ความปลอดภัยต่ำสูงกว่า
การส่งไฟล์ไม่ได้ได้
Bookmark/Share URLได้ไม่ได้

โดยทั่วไป ใช้ GET สำหรับการขอข้อมูล (read) และ POST สำหรับการส่งข้อมูลที่เปลี่ยนแปลงสถานะ (write/create/update/delete)