วิธีการขอ HTML

HTTP คืออะไร?

โปรโตคอลโทรสารแบบขาดหลักฐาน (Hypertext Transfer Protocol, ย่อ HTTP) มีเป้าหมายในการช่วยให้มีการสื่อสารระหว่างกลุ่มผู้ใช้และเซิร์ฟเวอร์

HTTP ทำหน้าที่เป็นโปรโตคอล คำขอ-ตอบระหว่างกลุ่มผู้ใช้และเซิร์ฟเวอร์

ตัวอย่าง: กลุ่มผู้ใช้ (เบรายเว็บ) ส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์; จากนั้นเซิร์ฟเวอร์จะส่งคำตอบกลับสู่กลุ่มผู้ใช้. คำตอบนี้มีข้อมูลสถานะของคำขอ และอาจมีเนื้อหาที่ขอ

วิธี HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

สองวิธีที่ใช้เป็นบ่อยที่สุดคือ: GET และ POST

วิธีการ GET

GET ใช้เพื่อขอข้อมูลจากทรัพยากรที่กำหนด

GET คือหนึ่งในวิธี HTTP ที่ใช้เป็นบ่อยที่สุด

โปรดสังเกตว่า ข้อความค้นหา (คู่ชื่อ/ค่า) จะถูกส่งผ่าน URL ของคำขอ GET:

/test/demo_form.php?name1=value1&name2=value2

บางข้อสัญญาณเกี่ยวกับคำขอ GET อื่นๆ

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

วิธี PUT

PUT ใช้ส่งข้อมูลไปยังเซิร์ฟเวอร์เพื่อสร้าง/ปรับปรุงทรัพยากร

ข้อมูลที่ส่งไปยังเซิร์ฟเวอร์ผ่าน POST ถูกจัดเก็บในส่วนที่มีข้อมูลของคำขอ HTTP:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST คือหนึ่งในวิธี HTTP ที่ใช้เป็นบ่อยที่สุด

บางข้อสัญญาณเกี่ยวกับคำขอ POST อื่นๆ

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

วิธี PUT

PUT ใช้ส่งข้อมูลไปยังเซิร์ฟเวอร์เพื่อสร้าง/ปรับปรุงทรัพยากร

ความแตกต่างระหว่าง POST และ PUT คือ PUT คำขอเป็น idempotent (ไม่มีผลซ้ำ)

วิธี HEAD

HEAD แทบเหมือน GET แต่ไม่มีส่วนที่มีตอบสนอง

ในทางกลับกัน ถ้า GET /users กลับมาเป็นรายชื่อผู้ใช้ แล้ว HEAD /users ก็จะส่งคำขอเดียวกัน แต่จะไม่กลับมาเป็นรายชื่อผู้ใช้

คำขอ HEAD มีประโยชน์มากในการตรวจสอบสิ่งที่จะได้รับกลับจากคำขอ GET ก่อนที่จะส่งคำขอ GET แท้จริง (เช่น ก่อนที่จะดาวน์โหลดไฟล์ใหญ่หรือก่อนที่จะมีตอบสนองของเนื้อหา)

วิธี DELETE

วิธี DELETE ลบทรัพยากรที่ระบุ

วิธี OPTIONS

วิธี OPTIONS อธิบายตัวเลือกการสื่อสารของทรัพยากรเป้าหมาย

เปรียบเทียบ GET กับ POST

ตารางด้านล่างเปรียบเทียบทั้งสองวิธี HTTP: GET และ POST

  GET POST
ปุ่มถอยกลับ/รีเฟรช ไม่มีอันตราย ข้อมูลจะถูกส่งทั้งหมดอีกครั้ง (เว็บเบราว์เซอร์ควรบอกผู้ใช้ว่าข้อมูลจะถูกส่งทั้งหมดอีกครั้ง)
แท็ก สามารถบันทึกเป็นแท็ก ไม่สามารถบันทึกเป็นแท็ก
จัดเก็บ สามารถจัดเก็บได้ ไม่สามารถคั่นช่องระหว่างรอบนี้
ประเภทการเข้ารหัส application/x-www-form-urlencoded application/x-www-form-urlencoded หรือ multipart/form-data. ใช้การเข้ารหัสหลายตัวแปลสำหรับข้อมูลที่เป็นสองตัวแปล
ประวัติ ประวัติการเลือกเว็บไซต์จะถูกจัดไว้ ประวัติการเลือกเว็บไซต์จะไม่จัดไว้
ข้อจำกัดต่อความยาวข้อมูล ใช่ ขณะที่ส่งข้อมูล วิธี GET จะเสริมข้อมูลเข้าไปใน URL; ความยาวของ URL มีข้อจำกัด (ความยาวของ URL สูงสุดเท่า 2048 ตัวอักษร) ไม่มีข้อจำกัด
ข้อจำกัดต่อประเภทข้อมูล อนุญาตให้การใช้ตัวอักษร ASCII แค่นั้น ไม่มีข้อจำกัด และยังอนุญาตการใช้ข้อมูลที่เป็นสองตัวแปล
ความปลอดภัย

เมื่อเทียบกับ POST ระดับความปลอดภัยของ GET ต่ำ เพราะข้อมูลที่ส่งจะเป็นส่วนหนึ่งของ URL

ไม่ต้องใช้ GET ในการส่งรหัสผ่านหรือข้อมูลที่เป็นส่วนตัวอย่างใดๆ!

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