เมธอด 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
- ไม่มีข้อจำกัดขนาดข้อมูลที่ส่ง (ขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์)
- รองรับการส่งไฟล์และข้อมูลไบนารี
- เหมาะสำหรับข้อมูลละเอียดอ่อน การอัปโหลดไฟล์ และฟอร์มขนาดใหญ่
สรุปการเลือกใช้
| ลักษณะ | GET | POST |
|---|---|---|
| มองเห็นข้อมูลใน URL | ใช่ | ไม่ |
| ขนาดข้อมูล | จำกัด (~1KB) | ใหญ่ (ขึ้นอยู่กับเซิร์ฟเวอร์) |
| ความปลอดภัย | ต่ำ | สูงกว่า |
| การส่งไฟล์ | ไม่ได้ | ได้ |
| Bookmark/Share URL | ได้ | ไม่ได้ |
โดยทั่วไป ใช้ GET สำหรับการขอข้อมูล (read) และ POST สำหรับการส่งข้อมูลที่เปลี่ยนแปลงสถานะ (write/create/update/delete)