วิธีการขอ HTTP
HTTP คืออะไร?
Hypertext Transfer Protocol (HTTP) ออกแบบมาเพื่อเปิดใช้งานการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์
HTTP ทำงานเป็นโปรโตคอลตอบสนองคำขอระหว่างไคลเอนต์และเซิร์ฟเวอร์
ตัวอย่าง: ไคลเอนต์ (เบราว์เซอร์) ส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์ จากนั้นเซิร์ฟเวอร์จะส่งคืนการตอบกลับไปยังไคลเอนต์ คำตอบประกอบด้วยข้อมูลสถานะเกี่ยวกับคำขอและอาจมีเนื้อหาที่ร้องขอด้วย
วิธี HTTP
- รับ
- โพสต์
- ใส่
- ศีรษะ
- ลบ
- ปะ
- ตัวเลือก
วิธี HTTP ทั่วไปสองวิธีคือ: GET และ POST
วิธี GET
GET ใช้เพื่อขอข้อมูลจากทรัพยากรที่ระบุ
GET เป็นหนึ่งในวิธี HTTP ที่พบบ่อยที่สุด
โปรดทราบว่าสตริงการสืบค้น (คู่ชื่อ/ค่า) ถูกส่งใน URL ของคำขอ GET:
/test/demo_form.php?name1=value1&name2=value2
หมายเหตุอื่น ๆ เกี่ยวกับคำขอ GET:
- คำขอ GET สามารถแคชได้
- คำขอ GET ยังคงอยู่ในประวัติเบราว์เซอร์
- GET คำขอสามารถคั่นหน้า
- คำขอ GET ไม่ควรใช้เมื่อจัดการกับข้อมูลที่ละเอียดอ่อน
- คำขอ GET มีข้อ จำกัด ด้านความยาว
- คำขอ GET ใช้เพื่อขอข้อมูลเท่านั้น (ไม่แก้ไข)
วิธีการโพสต์
POST ใช้เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์เพื่อสร้าง/อัปเดตทรัพยากร
ข้อมูลที่ส่งไปยังเซิร์ฟเวอร์ด้วย POST จะถูกเก็บไว้ในเนื้อความคำขอของคำขอ HTTP:
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
POST เป็นหนึ่งในวิธี HTTP ที่พบบ่อยที่สุด
หมายเหตุอื่น ๆ เกี่ยวกับคำขอ POST:
- คำขอ POST จะไม่ถูกแคช
- คำขอ POST จะไม่อยู่ในประวัติเบราว์เซอร์
- คำขอ POST ไม่สามารถบุ๊คมาร์คได้
- คำขอ POST ไม่มีข้อจำกัดด้านความยาวของข้อมูล
วิธี PUT
PUT ใช้เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์เพื่อสร้าง/อัปเดตทรัพยากร
ความแตกต่างระหว่าง POST และ PUT คือคำขอ PUT นั้นไม่มีอำนาจ นั่นคือการเรียกคำขอ PUT เดียวกันหลายครั้งจะให้ผลลัพธ์เดียวกันเสมอ ในทางตรงกันข้าม การเรียกคำขอ POST ซ้ำๆ จะมีผลข้างเคียงจากการสร้างทรัพยากรเดียวกันหลายครั้ง
The HEAD Method
HEAD เกือบจะเหมือนกับ GET แต่ไม่มีเนื้อหาการตอบสนอง
กล่าวอีกนัยหนึ่ง หาก GET /users ส่งคืนรายชื่อผู้ใช้ HEAD /users จะส่งคำขอเดียวกันแต่จะไม่ส่งคืนรายชื่อผู้ใช้
คำขอ HEAD มีประโยชน์ในการตรวจสอบว่าคำขอ GET จะส่งกลับอะไรก่อนที่จะส่งคำขอ GET จริง เช่น ก่อนดาวน์โหลดไฟล์ขนาดใหญ่หรือเนื้อหาการตอบกลับ
วิธีการลบ
วิธีการ DELETE จะลบทรัพยากรที่ระบุ
วิธี OPTIONS
วิธีการ OPTIONS อธิบายตัวเลือกการสื่อสารสำหรับทรัพยากรเป้าหมาย
เปรียบเทียบ GET กับ POST
ตารางต่อไปนี้เปรียบเทียบวิธี HTTP สองวิธี: GET และ POST
GET | POST | |
---|---|---|
BACK button/Reload | Harmless | Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted) |
Bookmarked | Can be bookmarked | Cannot be bookmarked |
Cached | Can be cached | Not cached |
Encoding type | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data |
History | Parameters remain in browser history | Parameters are not saved in browser history |
Restrictions on data length | Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) | No restrictions |
Restrictions on data type | Only ASCII characters allowed | No restrictions. Binary data is also allowed |
Security | GET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information! |
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs |
Visibility | Data is visible to everyone in the URL | Data is not displayed in the URL |