RFC 10008: วิธีการ HTTP Query แบบใหม่
นักพัฒนาต้องเผชิญกับปัญหาเมื่อต้องดึงข้อมูลที่มีความซับซ้อน คุณอาจต้องการใช้ GET แต่ก็มีข้อจำกัด หรือคุณอาจต้องการใช้ POST แต่เครื่องมือนี้ก็ไม่เหมาะสมกับงาน RFC 10008 จึงนำเสนอทางออกใหม่ นั่นคือวิธีการ QUERY
ปัญหาที่พบในการใช้ GET ในปัจจุบัน:
- ข้อจำกัดของ URL: เบราว์เซอร์และเซิร์ฟเวอร์มีการจำกัดความยาวของ URL ตัวกรอง (filters) ที่มีขนาดใหญ่จะทำให้คำขอ (requests) ของคุณล้มเหลว
- โครงสร้างที่ยุ่งเหยิง: GET ใช้คู่ key-value แบบง่ายๆ การส่งออบเจกต์ JSON ที่มีการซ้อนกัน (nested JSON objects) จึงทำได้ยาก
- ความเสี่ยงด้านความเป็นส่วนตัว: Query parameters จะปรากฏอยู่ในบันทึกของเซิร์ฟเวอร์ (server logs) และประวัติการเข้าชมของเบราว์เซอร์
ปัญหาที่พบในการใช้ POST ในปัจจุบัน:
- ความหมาย (semantics) ไม่ถูกต้อง: POST บอกเซิร์ฟเวอร์ว่าคุณต้องการสร้างหรือเปลี่ยนแปลงข้อมูล
- ปัญหาด้านการทำ Caching: ระบบส่วนใหญ่ไม่ทำ caching สำหรับคำขอแบบ POST ซึ่งจะทำให้แอปพลิเคชันของคุณทำงานช้าลง
วิธีการ QUERY จะเข้ามาเปลี่ยนสิ่งนี้ โดยช่วยให้คุณสามารถส่ง request body เพื่อดึงข้อมูลได้ ซึ่งจะช่วยให้ API ของคุณมีความสะอาดและเป็นไปตามกฎเกณฑ์ที่เหมาะสม
ประโยชน์ของวิธีการ QUERY:
- ใช้ body ที่มีความซับซ้อนได้: คุณสามารถส่งออบเจกต์ JSON แบบเต็มรูปแบบเพื่อใช้เป็นตัวกรองการค้นหาได้
- มีความปลอดภัย: ไม่มีการเปลี่ยนแปลงสถานะ (state) ของเซิร์ฟเวอร์
- เพิ่มความเร็ว: ช่วยให้ทำ caching ได้อย่างมีประสิทธิภาพเหมือนกับวิธีการ GET
เลิกฝืนใช้ POST เพื่อทำงานแทน GET ได้แล้ว วิธีการ QUERY มอบหนทางในการดึงข้อมูลที่หลากหลายโดยไม่ผิดมาตรฐาน HTTP
ที่มา: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-rfc-10008-the-new-http-query-method-25fo