Page 245 - Computer Network
P. 245
236 บทที่ 29. APPLICATION LAYER
Layer เพื่อใช้ในการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ในเว็ปแอพพลิเคชันนอกเหนือจากนั้นยังอาจประกอบไป
ด้วยส่วนของ FTP, NNTP, อีเมล (POP และ SMTP)
29.3.1 หลักการทำงานของ HTTP
การทำงานของ HTTP เป็นการทำงานในรูปที่มีการร้องขอและการตอบกลับ (request-response interaction)
การสื่อสารเกิดขึ้นโดยไคลเอนต์ร้องขอไปยังเซิร์ฟเวอร์ จากนั้นเซิร์ฟเวอร์จะตอบกลับ โดยการร้องขอนี้อาจประกอบ
ไปด้วยส่วนต่างเช่น คำสั่งที่เกี่ยวข้องกับการร้องขอ เช่น GET, PUT หรือ POST, Uniform Resource Locator
(URL) เพื่อระบุข้อมูลที่ร้องขอ และอื่นๆ เช่น ประเภทของข้อมูล ข้อมูลด้านความปลอดภัย เป็นต้น เมื่อเซิร์ฟเวอร์
ได้รับการร้องขอนี้จะตรวจสอบและส่งกลับไปยังไคลเอนต์ที่ร้องขอเพื่อแสดงสถานะของการร้องขอ เวอร์ชันของ
โพรโตคอลที่ใช้ และ ข้อมูลที่ร้องขอ ที่เกิดจากการทำงานของฝังเซิร์ฟเวอร์การทำงานของ HTTP สามารถแบ่งออก
เป็น 4 ขั้นตอนดังแสดงในรูปที่ 29.5
book)
(partial
รูปที่ 29.5: การทำงาน request-response ของ HTTP
only
1. เบราว์เซอร์สร้างการเชื่อมต่อโดย TCP/IP ไปยังเซิร์ฟเวอร์
KKU
2. เบราว์เซอร์ส่งการร้องขอไปยังเซิร์ฟเวอร์ อาจประกอบด้วย URL และข้อมูลอื่นๆ
3. เซิร์ฟเวอร์ตอบกลับไปยังเบราว์เซอร์เช่นข้อความบน HTML, รูปภาพ และ อื่นๆ
4. ปิดการเชื่อมต่อของ TCP/IP
การทำงานของ HTTP เป็นแบบ stateless protocol อยู่บนพอร์ต 80 โดยปริยาย เนื่องจากการทำงานของ
โพรโตคอล HTTP จะไม่มีการเก็บสถานะของผู้ใช้ หากผู้ใช้ร้องขอสิ่งเดียวกันในเวลาที่ใกล้กัน เซิร์ฟเวอร์จะตอบกลับ
การร้องขอไปใหม่โดยไม่แจ้งว่า สิ่งที่ร้องขอได้จัดส่งไปแล้ว การใช้การทำงานแบบ stateless นี้ถือว่าเป็นการลด
ภาระของระบบในการสนับสนุนผู้ใช้จำนวนมาก แต่อย่างไรก็ตามทำให้เกิดผลเสียในแง่ประสิทธิภาพกับการทำงาน
ของโพรโตคอล HTTP เช่นกัน จะเห็นได้จากการทำงานของโพรโตคอล HTTP เวอร์ชัน 1.0 หากผู้ใช้ร้องขอไปยังหน้า
เว็ปที่ประกอบไปด้วยข้อความและรูปจำนวนมากในหน้าเว็ป จะทำให้มีร้องขอเพื่อสร้างการเชื่อมต่อ (SYN) และการ
ปิดการเชื่อมของ TCP จำนวนมากดังแสดงในรูปที่ 29.6(a) ดังจะเห็นได้จากจำนวนของ RTT ที่เกิดขึ้น
เพื่อแก้ไขปัญหาที่เกิดขึ้น HTTP เวอร์ชัน 1.1 (รูปที่ 29.6(b)) จะรักษาการเชื่อมต่อของ TCP ตลอดการร้องขอ
หรือเรียกว่า persistent connection การทำงานของ HTTP เวอร์ชัน 1.1 นี้จะให้อนุญาตให้การสร้างการเชื่อม
ต่อ TCP แต่ละครั้งสามารถมีการหลายการร้องขอของ HTTP ทำให้ลดความจำเป็นในการสร้างการเชื่อมต่อกับ
TCP ใหม่ทุกครั้ง นอกจากนี้การทำงานของ HTTP เวอร์ชัน 1.1 ยังสามารถทำงานในลักษณะที่เป็น pipeline of
requests หมายถึง การที่การร้องขอของไคลเอนต์สามารถที่จะส่งต่อไปอย่างต่อเนื่อง โดยไม่จำเป็นต้องได้รับการ
ตอบกลับก่อน

