Thehttpprotocolmore httpTcptransport ittp is"stateless service. server maintains no r client initiates TCp information about connection(creates socket) past client requests to server, port 80 aside r server accepts TCP Protocols that maintain connection from client state"are complex rhttpmessages(application past history(state)must layer protocol messages) be maintained exchanged between browser httpclient)andWebserver r if server/client crashes httpserver their views of state "may be inconsistent must be r tcp connection closed reconcile d 2: Application Layer 11
2: Application Layer 11 The http protocol: more http: TCP transport service: r client initiates TCP connection (creates socket) to server, port 80 r server accepts TCP connection from client r http messages (applicationlayer protocol messages) exchanged between browser (http client) and Web server (http server) r TCP connection closed http is “stateless” r server maintains no information about past client requests Protocols that maintain “state” are complex! r past history (state) must be maintained r if server/client crashes, their views of “state” may be inconsistent, must be reconciled aside
httpexample Suppose user enters URL (contains text www.someschool.edu/somedepartment/home.indexreferencesto10 jpeg images) la.httpclientinitiatestcp connectiontohttpserver ocess)at 1b.httpserverathost w. some School. edu. Port 80 www.someschool.eduwaiting isdefaultforhttpserver for tCp connection at port 80 accepts"connection, notifying client 2.httpclientsendshttprequest message(containing URL) into TCP connection socket 3.httpserverreceivesrequest message, forms response message containing requested ob ject (some Department/home. index) sends message into socket time 2: Application Layer 12
2: Application Layer 12 http example Suppose user enters URL www.someSchool.edu/someDepartment/home.index 1a. http client initiates TCP connection to http server (process) at www.someSchool.edu. Port 80 is default for http server. 2. http client sends http request message (containing URL) into TCP connection socket 1b. http server at host www.someSchool.edu waiting for TCP connection at port 80. “accepts” connection, notifying client 3. http server receives request message, forms response message containing requested object (someDepartment/home.index), sends message into socket time (contains text, references to 10 jpeg images)
httpexample(cont. 4.httpserverclosestcp connection 5.httpclientreceivesresponse message containing html file displays html. parsing htm file, finds 10 referenced jpeg obiects time 6 Steps 1-5 re peated for each of 10 jpeg objects 2: Application Layer 13
2: Application Layer 13 http example (cont.) 5. http client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects 4. http server closes TCP connection. time
Non-persistent, persistent connections Non-persistent Persistent rhttp:/1.0:serverparses r default for htp/1. request, responds closes r on same tCp connection: TCP connection server, parses request r 2 RTTs to fetch ob ject responds, parses new m TCP connection request灬 m object request/transfer r client sends requests for r each transfer suffers from all referenced objects as TCP's initially slow sending soon as it receives base rate HTML r many browsers open multiple r fewerrtts, less slow parallel connections start 2: Application Layer 14
2: Application Layer 14 Non-persistent, persistent connections Non-persistent r http/1.0: server parses request, responds, closes TCP connection r 2 RTTs to fetch object m TCP connection m object request/transfer r each transfer suffers from TCP’s initially slow sending rate r many browsers open multiple parallel connections Persistent r default for htp/1.1 r on same TCP connection: server, parses request, responds, parses new request,.. r client sends requests for all referenced objects as soon as it receives base HTML. r fewer RTTs, less slow start
httpmessageformatrequest rtwotypesofhttpmessagesrequestresponse httprequestmessage ASCII (human-readable format) request line (GET, POST Get/SomedIr/page.html httP/1.0 HEAD commands) User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg header Accept-language:fr lines Carriage return extra carriage return, line feed) ne fee ndicates end of message 2: Application Layer 15
2: Application Layer 15 http message format: request r two types of http messages: request, response r http request message: m ASCII (human-readable format) GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) request line (GET, POST, HEAD commands) header lines Carriage return, line feed indicates end of message