Hypertext Transfer Protocol ให้มาตรฐานโปรโตคอลเครือข่ายที่เว็บเบราว์เซอร์และเซิร์ฟเวอร์ใช้ในการสื่อสาร คุณเห็น HTTP เมื่อคุณเยี่ยมชมเว็บไซต์เนื่องจากโปรโตคอลปรากฏใน URL (เช่น
โปรโตคอลนี้คล้ายกับโปรโตคอลอื่นๆ เช่น โปรโตคอลการถ่ายโอนไฟล์ ซึ่งโปรแกรมไคลเอนต์ใช้เพื่อขอไฟล์จากเซิร์ฟเวอร์ระยะไกล ในกรณีของ HTTP เว็บเบราว์เซอร์จะขอไฟล์ HTML จากเว็บเซิร์ฟเวอร์ จากนั้นจึงแสดงในเบราว์เซอร์พร้อมข้อความ รูปภาพ ไฮเปอร์ลิงก์ และเนื้อหาที่เกี่ยวข้อง
เนื่องจากเบราว์เซอร์สื่อสารโดยใช้ HTTP คุณจึงมักจะทิ้งโปรโตคอลจาก URL เมื่อคุณพิมพ์ลงในแถบที่อยู่ของเบราว์เซอร์
ประวัติ
Tim Berners-Lee ได้สร้างมาตรฐาน HTTP เริ่มต้นขึ้นในช่วงต้นทศวรรษ 1990 โดยเป็นส่วนหนึ่งของงานของเขาในการกำหนดเวิลด์ไวด์เว็บดั้งเดิม มีการใช้งานเวอร์ชันหลักสามเวอร์ชันในช่วงปี 1990:
- HTTP 0.9: รองรับเอกสารไฮเปอร์เท็กซ์พื้นฐาน
- HTTP 1.0: ส่วนขยายเพื่อรองรับเว็บไซต์ที่หลากหลาย
- HTTP 1.1: พัฒนาเพื่อจัดการกับข้อจำกัดด้านประสิทธิภาพของ HTTP 1.0 ที่ระบุใน Internet RFC 2068
เวอร์ชันล่าสุด HTTP 2.0 กลายเป็นมาตรฐานที่ได้รับอนุมัติในปี 2015 โดยยังคงความเข้ากันได้แบบย้อนหลังกับ HTTP 1.1 แต่มีการปรับปรุงประสิทธิภาพเพิ่มเติม
ในขณะที่ HTTP มาตรฐานไม่ได้เข้ารหัสการรับส่งข้อมูลที่ส่งผ่านเครือข่าย มาตรฐาน HTTPS จะเพิ่มการเข้ารหัสไปยัง HTTP ผ่านการใช้ Secure Sockets Layer หรือ Transport Layer Security ในภายหลัง
HTTP ทำงานอย่างไร
HTTP เป็นโปรโตคอลเลเยอร์แอปพลิเคชันที่สร้างขึ้นบน TCP ที่ใช้โมเดลการสื่อสารไคลเอ็นต์-เซิร์ฟเวอร์ ไคลเอนต์และเซิร์ฟเวอร์ HTTP สื่อสารผ่านข้อความร้องขอและตอบกลับ ข้อความ HTTP หลักสามประเภท ได้แก่ GET, POST และ HEAD
- HTTP GET: ข้อความที่ส่งไปยังเซิร์ฟเวอร์มีเพียง URL อาจมีการเพิ่มพารามิเตอร์ข้อมูลที่เป็นศูนย์หรือมากกว่าต่อท้าย URL เซิร์ฟเวอร์ประมวลผลส่วนข้อมูลทางเลือกของ URL หากมี และส่งคืนผลลัพธ์ (หน้าเว็บหรือองค์ประกอบของหน้าเว็บ) ไปยังเบราว์เซอร์
- HTTP POST: ข้อความจะใส่พารามิเตอร์ข้อมูลที่ไม่บังคับไว้ในเนื้อหาของข้อความขอ แทนที่จะเพิ่มต่อท้าย URL
- HTTP HEAD: คำขอทำงานเหมือนกับคำขอ GET แทนที่จะตอบกลับด้วยเนื้อหาทั้งหมดของ URL เซิร์ฟเวอร์จะส่งกลับเฉพาะข้อมูลส่วนหัว (อยู่ในส่วน HTML)

เบราว์เซอร์เริ่มต้นการสื่อสารกับเซิร์ฟเวอร์ HTTP โดยเริ่มต้นการเชื่อมต่อ TCP กับเซิร์ฟเวอร์ เซสชันการท่องเว็บใช้พอร์ตเซิร์ฟเวอร์ 80 โดยค่าเริ่มต้น แม้ว่าบางครั้งจะใช้พอร์ตอื่น เช่น 8080 แทน
หลังจากสร้างเซสชัน คุณจะทริกเกอร์การส่งและรับข้อความ HTTP โดยไปที่หน้าเว็บ
HTTP คือสิ่งที่เรียกว่าระบบไร้สัญชาติ ซึ่งหมายความว่าไม่เหมือนกับโปรโตคอลการถ่ายโอนไฟล์อื่นๆ เช่น FTP การเชื่อมต่อ HTTP จะลดลงหลังจากคำขอเสร็จสิ้น ดังนั้น หลังจากที่เว็บเบราว์เซอร์ของคุณส่งคำขอและเซิร์ฟเวอร์ตอบกลับด้วยหน้าเว็บ การเชื่อมต่อจะปิดลง
การแก้ปัญหา
ข้อความที่ส่งผ่าน HTTP อาจล้มเหลวด้วยเหตุผลหลายประการ:
- ผู้ใช้ผิดพลาด
- ความผิดปกติของเว็บเบราว์เซอร์หรือเว็บเซิร์ฟเวอร์
- เกิดข้อผิดพลาดในการสร้างหน้าเว็บ
- เครือข่ายขัดข้องชั่วคราว
เมื่อเกิดความล้มเหลวเหล่านี้ โปรโตคอลจะจับสาเหตุของความล้มเหลวและรายงานรหัสข้อผิดพลาดไปยังเบราว์เซอร์ที่เรียกว่าบรรทัด/รหัสสถานะ HTTP ข้อผิดพลาดเริ่มต้นด้วยตัวเลขที่กำหนดเพื่อระบุว่าเป็นข้อผิดพลาดประเภทใด
ตัวอย่างเช่น ข้อผิดพลาดที่มีรหัสความล้มเหลวขึ้นต้นด้วยสี่ระบุว่าคำขอสำหรับหน้าไม่สามารถดำเนินการได้อย่างถูกต้อง หรือคำขอมีไวยากรณ์ที่ไม่ถูกต้อง ตัวอย่างเช่น ข้อผิดพลาด 404 หมายความว่าไม่พบหน้าเว็บ บางเว็บไซต์ยังเสนอหน้าข้อผิดพลาด 404 แบบกำหนดเองที่สนุกสนาน