Free Web Space | BlueHost Review  

สารบัญเว็บไซต์

ความหมายของ http

                    ในการเรียกใช้งานเว็บบราวเซอร์เราต้องใส่ “http://” ข้างหน้าที่อยู่เว็บไซต์ หรือ URL เสมอ http มาจาก Hypertext Tranfer Protocol เป็นโปรโตคอลที่ใช้ในการรับส่งข้อมูลระหว่างเครื่องเรากับครื่อง Server นั่นเอง การใส่ http จึงเป็นการบ่งบอกโปรโตคอลที่ต้องการใช้งานนั่นเอง

                    Server เป็นเครื่องคอมพิวเตอร์ที่ให้บริการข้อมูลกับเรานั่นเอง ส่วน URL มาจาก Uniform Resource Locator เป็นแหล่งที่อยู่ของทรัพยากรข้อมูลที่ไม่สามารถมีซ้ำกันได้ (โปรโตคอล จะหมายถึงข้อกำหนดเชิงเทคนิคในการรับส่งข้อมูลระหว่างต้นทางและปลายทางซึ่งจะต้องตรงกันจึงจะสื่อสารกันได้)  Hyper Text เป็นข้อความพิเศษที่สามารถลิ้งค์หรือเชื่อมโยงไปยังข้อความอื่นๆได้ และสามารถบ่งบอกได้โดยการเปลี่ยนสี หรือขีดเส้นใต้เมื่อมีการใช้งานแล้ว   Transfer เป็นการรับส่งข้อมูลระหว่างเครื่องผู้ใช้บริการกับเครื่องผู้ให้บริการ

                     ในการเรียกใช้งาน http ดังกล่าวจะเรียกใช้งานโปรโตคอล TCP/IP อีกทีหนึ่งซึ่งเป็นตัวจริงในการรับส่งข้อมูล  ( TCP/IP เป็นโปรโตคอลที่ตกลงใช้งานบนอินเทอร์เน็ตเหมือนกันทั่วโลก) สรุปได้ว่าจุดเด่นของ http คือการเชื่อมโยงข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่งอย่างไม่มีขีดจำกัดนั่นเอง

การทำงานของโปรโตคอล TCP (HTTP)

โปรโตคอล HTP เป็นโปรโตคอลที่ทำงานอยู่ในชั้นของ Application Layer ทำงานโดยใช้โปรโตคอล TCP ซึ่งเป็นโปรโตคอลที่ทำงานอยู่ในชั้นของ Transport Layer เนื่องจาก HTTP ต้องการความถูกต้อฃของข้อมูลที่ทำการส่งและรับ

เมื่อ HTP ต้องติดต่อกันระหว่าง Client และ Host โปรโตคอล TCP จะทำการเชื่อมต่อ ( Connection Setup) โดยการทำ Three way Handshake และจะมีการทำ Flow Control โดยส่งค่า Windows Size และ MSS ซึ่งเป็นการทำ Reliable Data Transfer นั้นจะอาศัยการทำงานของ Sequence Number และ Acknowledge Number

ในส่วนการทำงานของ HTTP ก็จะมีการสื่อสารโดยการ Request จากการสังเกตจาก Packet ส่วนใหญ่จะเป็นคำสั่ง Get และ Response เป็นการแจ้งสถานะของการส่งและเมื่อทำการส่งข้อมูลสมบูรณ์แล้ว โปรโตคอล TCP จะทำการปิด Connection

HTTP มาจากคำว่า Hypertext Transfer Protocol ซึ่งเป็น protocol ที่ใช้ในการส่งเดต้าต่าง ๆ ในโลกของ World Wide Web.  เดต้าต่าง ๆ เหล่านี้โดยทั่วไปมักจะถูกเรียกว่า Resource โดย Resource เหล่านี้อาจจะเป็นไฟล์ เช่น HTML ไฟล์ , image ไฟล์ หรือคำสั่งต่าง ๆ ( Query String) เช่น คำสั่งที่ส่งไปที่ Cgi โปรแกรมหรืออาจจะ binary stream ในกรณีของการ download/upload ไฟล์ หรืออาจจะเป็นสิ่งอื่น ๆ อีกมากมายตามแต่จะกำหนดขึ้น
HTTP เป็น protocol ที่อยู่ในส่วนของ Application Layer ใน protocol stack โดยเดต้าต่าง ๆ จาก Layer นี้จะถูกจากส่งผ่านไปยัง Layer อื่น ๆ ที่ต่ำกว่าซึ่งส่วนหนึ่งในนั้นก็คือ TCP/IP protocol นั่นเอง ( เราจะไม่กล่าวถึงรายละเอียดของ protocol stack ในที่นี้)

HTTP (Hyper Text Transport Protocol) HTTP คือโปรโตคอลที่ใช้สื่อสารระหว่าง client computer กับ server computer ทำให้ทั้งสองเครื่องรู้ว่าจะจัดการส่งข้อมูลไปอย่างไร โปรโตคอล HTTP นี้วิ่งอยู่บน TCP/IP อีกชั้นหนึ่ง รูปแบบการทำงานจะไม่มีการจองสาย โดย client จะเรียกข้อมูลจาก server โดยการส่ง request ไปแล้วจะตัดการติดต่อทันที จากนั้นจะรอจนกระทั่ง server ส่งข้อมูลมาให้ ประโยชน์ของการทำงานแบบไม่จองสายของ HTTP ทำให้ WWW server สามารถให้บริการ client ได้หลายๆ คนพร้อมๆ กัน การสื่อสารของ WWW จึงมีประสิทธิภาพมากขึ้น

HTTP (Hyper Text Transfer Protocal) (RFC2616)

        HTTP เป็น Protocal หลักที่ใช้แลกเปลี่ยนข้อมูลกันระหว่าง Client และ Server ของ World Wide Web โดยถูกออกแบบมาให้มีความกะทัดรัดไม่ซับซ้อนมาก สามารถรองรับข้อมูลได้ทุกทุกแบบ ไม่ว่าจะเป็นข้อมูลทั่วไปที่เข้ารหัสแบบ MIME หรือข้อมูลที่เป็นกราฟิก เช่น ไฟล์ที่เป็น GIF หรือ JPEG เวอร์ชั่นล่าสุดของ HTTP คือ HTTP 1.1 

รูปที่1 แสดงพฤติกรรมการทำงานของ HTTP

          ลักษณะการทำงานของ Protocal HTTP จะมีการร้องขอ (Request)/ การตอบสนอง Response) กันระหว่าง Client และ Server   ในการศึกษาการทำงานของโปรโตคอล ทางกลุ่มเลือกเวบไซด์ www.msit.mut.ac.th ในการศึกษา

รูปที่ 2 ผลการดักจับเว็บไซด์   www.msit.mut.ac.th   

รูปที่ 3 Time Line Diagram แสดงการทำงานของ TCP Connection  

 1.    Time Line ที่ 1 ฝั่ง client (ip=203.209.52.243) ทำการส่ง TCP segment ที่มีค่า flage SYN=1 และ Seq number, ACK number, ข้อมูล Win, MSS มายัง Server เพื่อทำการสร้าง connection

2.    ฝั่ง Server ทำการส่ง TCP Segment ที่มีค่า flag SYN=1,ACK=1 และ seq number, ACKnumber, ข้อมูล Win, MSS มายังฝั่ง client เพื่อยืนยันการทำ connection

3.    ฝั่ง Client ทำการส่ง TCP Segment ที่มีค่า flag SYN=0,ACK=1 และ Seq number, ACK number, ข้อมูล Win มายังฝั่ง Server 

 4.    ฝั่ง Client ทำการส่ง TCP Segment ที่มีค่า flag PSH=1 เป็นการบอกให้ทราบว่าข้อมูลที่อยู่ใน Segment จะต้องส่งไปยัง Upper Layer โดยทันที , และทำการส่ง HTTP request โดยใช้คำสั่ง GET HTTP / 1.1 

 5.    ฝั่ง Server ตอบรับ (Response) การร้องขอ Webpage โดยแจ้งกลับมา / 1.1 302 OK (text / html)

รูปที่ 4  Structure ของ Frame Time Line ที่ 1  

 

    รูปที่ 4เป็นเฟรมที่ทำหน้าที่สร้างการเชื่อมต่อ (Connection Setup) จากฝั่ง Client (Port 1440) ไปยัง Server (Port 80) เนื่องจาก Flag SYN มีค่าเป็น 1 และมีค่า Header Length  เป็น 28 ไบต์ เนื่องจากมรการส่ง Option 8 ไบต์

                จะเห็นได้ว่ามีการส่งค่า Receive Window ไปยังฝั่ง Server เพื่อบอกให้ทราบว่าฝั่งรับมี Buffer เท่าไรในการรับข้อมูล ซึ่งเป็นวิธีการทำ Flow Control

  รูปที่ 5  TCP Structure ของ Frame Line ที่ 5  

          รูปที่ 5   เป็นเฟรมที่ทำการ Response จากฝั่ง Server (Port 80) ไปยังฝั่ง Client (Port 1440) และมี Flag PSH มีค่าเป็น   1 มีความหมายให้ Client ทำการส่งข้อมูลที่ได้รับไปยัง Upper Layer ทันที

สังเกตว่าค่า Head Length มีค่าเท่ากับ 20 ไบต์ เนื่องจากไม่มีการส่ง Option

 

  การปิด Connection

รูปที่ การปิด Connection  

รูปที่ 8   Time Line Diagram แสดงการทำงานของการปิด Connection

 

  การปิด Connection มีขั้นตอนการทำดังนี้

 1.    Server ทำการส่ง TCP Segment ที่มีค่า Flag FIN ถูก Set ให้เป็น 1 ไปยัง Client เพื่อบอกให้ทราบว่า Server จะทำการ Teardown Connection โดยนอกจาก Flag FIN ก็ยังมีการส่ง Flag ACK = 1, Sequence Number, Acknowledgement Number, Window size

 2.    เมื่อ Client ได้รับ Flag FIN =1 และ ACK=1 จะทำการส่ง Flag ACK = 1 กลับไปยัง Server เพื่อรับทราบการ Teardown Connection

3.    Client ทำการส่ง TCP Segment ที่มีค่า Flag FIN ถูก Set ให้เป็น 1 ไปยัง Server เพื่อบอกให้ทราบว่า Client จะทำการ Teardown Connection โดยนอกจาก Flag FIN ก็ยังมีการส่ง Flag ACK = 1, Sequence Number, Acknowledgement Number, Window size

 4.    เมื่อ Server ได้รับ Flag FIN = 1 และ ACK = 1 กลับไปยัง Server เพื่อรับทราบการ Teardown Connection

         เมื่อจบขั้นตอนที่ 4 การ Teardown Connection ระหว่าง Client และ Server จะสิ้นสุดอย่างสมบูรณ์โดยที่ Resource ที่ได้ทำการจองไว้เพื่อทำการ Connection จะถูกยกเลิกทั้งหมด ส่วนการที่มีถึง 4 ขั้นตอนเนื่องจากต้องมีการ Teardown Connection ที่ถูกต้องและสมบูรณ์ จึงต้องมีการแจ้ง Teardown Connection ทั้งฝั่ง Client และ Server รวมถึงการตรวสอบจากหมายเลข Sequence Number, Acknowledgement Number ของทั้งสองฝั่งด้วย

NEXT

มหาวิทยาลัยเกริก

เขตบางเขน กรุงเทพมหานคร 10220