23 ม.ค. เวลา 06:12 • การศึกษา
Website By Shoper Gamer

HTTP Methods คืออะไร

โดย
โลกของเว็บไซต์ทำงานบนภาษาสื่อสารที่เรียกว่า HTTP ในตอนที่แล้วเราได้รู้จักกับรหัสสถานะ (Status Codes) ซึ่งเป็นคำตอบจากเซิร์ฟเวอร์ไปแล้ว คราวนี้มาทำความเข้าใจอีกด้านที่สำคัญไม่แพ้กัน นั่นคือ HTTP Methods หรือบางครั้งเรียกว่า HTTP Verbs นี่คือคำสั่งที่ฝั่งไคลเอนต์ (เช่น เบราว์เซอร์หรือแอปพลิเคชัน)
ใช้บอกเซิร์ฟเวอร์ว่า “ต้องการให้ทำอะไร” กับทรัพยากร (Resource) นั้นๆ เช่น การโหลดหน้าเว็บ การส่งแบบฟอร์ม หรือ การลบข้อมูล การเลือกใช้คำสั่งที่ถูกต้องเป็นรากฐานสำคัญของการสร้างเว็บไซต์ และ API ที่มีความมั่นคง ปลอดภัย และ ทำงานได้อย่างถูกต้องตามมาตรฐานสากล
  • ​HTTP Methods ทำงานอย่างไร?
เมื่อคุณใช้งานเว็บ หรือ แอปพลิเคชัน กระบวนการสื่อสารจะเกิดขึ้นดังนี้
1) ไคลเอนต์สร้างคำขอ (HTTP Request): ระบุ HTTP Method (จะทำอะไร), URL (จะทำที่ไหน) และ ข้อมูลเสริมอื่นๆ (Headers/Body)
2) เซิร์ฟเวอร์ตีความ
เซิร์ฟเวอร์อ่าน Method เพื่อทำความเข้าใจเจตนา เช่น "ผู้ใช้คนนี้ต้องการอ่านข้อมูล หรือ ต้องการลบข้อมูลกันแน่?"
3) ประมวลผลและตอบกลับ
เซิร์ฟเวอร์ดำเนินการตามคำสั่ง และ ส่งรหัสสถานะ (Status Code) กลับมาพร้อมข้อมูลที่ต้องการ
  • ​แนวคิดสำคัญที่นักพัฒนาต้องรู้
HTTP Methods ถูกออกแบบมาพร้อมคุณสมบัติพิเศษที่ช่วยให้ระบบทำงานได้เสถียรขึ้น
- Safe Methods (คำสั่งที่ปลอดภัย) คือคำสั่งที่ใช้สำหรับ "การอ่านข้อมูลเท่านั้น" โดยจะไม่ไปเปลี่ยนแปลง หรือ แก้ไขข้อมูลใดๆ บนเซิร์ฟเวอร์ เช่น การกด Refresh หน้าจอซ้ำๆ ข้อมูลในระบบก็ยังเหมือนเดิม (ตัวอย่างเช่น GET และ HEAD)
- Idempotent Methods (คำสั่งที่มีภาวะคงที่)
คือคำสั่งที่เมื่อส่งซ้ำหลายครั้งด้วยข้อมูลเดิมผลลัพธ์สุดท้ายจะยังคงเหมือนเดิมเสมอ เช่น การสั่งลบข้อมูลซ้ำๆ ผลที่ได้คือข้อมูลถูกลบไปแล้วตั้งครั้งแรก ครั้งต่อๆ ไปสถานะก็ยังเป็น "ถูกลบแล้ว" เหมือนเดิม (ตัวอย่างเช่น GET, PUT, DELETE)
  • ​ประเภทของ HTTP Methods
เพื่อให้เห็นภาพชัดเจน เราสามารถแบ่งประเภทคำสั่งตามลักษณะการใช้งานได้ดังนี้
- GET (อ่านข้อมูล)
ใช้สำหรับดึงข้อมูลจากเซิร์ฟเวอร์ เป็นคำสั่งที่ใช้บ่อยที่สุด เช่น การโหลดหน้าเว็บ หรือ ค้นหาข้อมูล (Safe & Idempotent)
- POST (สร้างข้อมูลใหม่)
ใช้สำหรับส่งข้อมูลไปประมวลผล หรือ สร้างทรัพยากรใหม่ เช่น การสมัครสมาชิกหรืออัปโหลดไฟล์ ข้อมูลมักจะถูกซ่อนไว้ในส่วน Body ของคำขอ
(ไม่ Safe & ไม่ Idempotent)
- PUT (แทนที่ข้อมูล)
ใช้สำหรับอัปเดตข้อมูลทั้งชุดหากมีข้อมูลเก่าอยู่จะถูกเขียนทับทั้งหมดด้วยข้อมูลใหม่ที่ส่งไป (ไม่ Safe แต่ Idempotent)
- PATCH (แก้ไขบางส่วน)
ใช้สำหรับอัปเดตข้อมูลเฉพาะบางส่วนที่ต้องการเปลี่ยน เช่น การเปลี่ยนแค่รหัสผ่านในโปรไฟล์ โดยไม่กระทบข้อมูลอื่น (ไม่ Safe & ไม่ Idempotent)
- DELETE (ลบข้อมูล)
ใช้สำหรับสั่งลบทรัพยากรตามตำแหน่งที่ระบุ (ไม่ Safe แต่ Idempotent)
- HEAD (ขอเฉพาะส่วนหัว)
ทำงานเหมือน GET ทุกประการ แต่เซิร์ฟเวอร์จะส่งกลับมาเฉพาะข้อมูลส่วนหัว (Headers) โดยไม่มีเนื้อหา ใช้สำหรับเช็กว่าไฟล์มีการเปลี่ยนแปลงไหมก่อนจะดาวน์โหลดจริง (Safe & Idempotent)
- OPTIONS (สอบถามสิทธิ์)
ใช้ถามเซิร์ฟเวอร์ว่าทรัพยากรนั้นๆ รองรับคำสั่งอะไรบ้าง มักใช้ในระบบความปลอดภัยของเบราว์เซอร์ (CORS) (Safe & Idempotent)
  • ​HTTP Methods กับการออกแบบ RESTful API
ในการพัฒนาซอฟต์แวร์ระดับมืออาชีพ เรามักจับคู่การดำเนินการพื้นฐาน (CRUD) เข้ากับ HTTP Methods เพื่อให้ API มีโครงสร้างที่เข้าใจง่าย
- Create (สร้าง) ➔ ใช้ POST
- Read (อ่าน) ➔ ใช้ GET
- Update (แก้ไข) ➔ ใช้ PUT (แก้ไขทั้งหมด) หรือ PATCH (แก้ไขบางส่วน)
- Delete (ลบ) ➔ ใช้ DELETE
  • ​ประโยชน์ของการเลือกใช้ Method ให้ถูกต้อง
1) ความเป็นมาตรฐาน
ทำให้โปรแกรมเมอร์ทั่วโลกคุยกันรู้เรื่อง และ ทำงานร่วมกันได้ทันที
2) ประสิทธิภาพ
ระบบแคช (Cache) จะทำงานได้ดีขึ้น เพราะรู้ว่าคำสั่งไหน (GET) สามารถจำคำตอบไว้ใช้ซ้ำได้
3) ความปลอดภัย
ช่วยในการจำกัดสิทธิ์ เช่น การอนุญาตให้ผู้ใช้ทั่วไปทำได้เฉพาะ GET แต่ห้ามทำ DELETE
4) ง่ายต่อการบำรุงรักษา
โค้ดที่เขียนตามมาตรฐานจะอ่านง่าย และ หาจุดผิดพลาดได้รวดเร็วขึ้น
✏️ Shoper Gamer
  • ​HTTP คืออะไร 👇
  • ​HTTP Status คืออะไร 👇
  • ​API คืออะไร 👇
Credit :
👇
  • ​https://www.borntodev.com/2024/06/17/มารู้จัก-http-กันดีกว่า/
  • ​https://api7.ai/learning-center/api-101/http-methods-in-apis
  • ​https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods
  • ​https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/HTTP-methods
  • ​https://blog.postman.com/what-are-http-methods/

ดูเพิ่มเติมในซีรีส์

โฆษณา