1 / 28

H yper T ext T ransfer P rotocol ( HTTP )

H yper T ext T ransfer P rotocol ( HTTP ). RICHI GUPTA CISC 856: TCP/IP and Upper Layer Protocols Fall 2007. Thanks to Dr. Amer, UDEL for some of the slides used in this presentation Thanks to Madhusri Nayak for some of the slides used in this presentation. Motivation ?.

Télécharger la présentation

H yper T ext T ransfer P rotocol ( HTTP )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HyperText Transfer Protocol (HTTP) RICHI GUPTA CISC 856: TCP/IP and Upper Layer Protocols Fall 2007 Thanks to Dr. Amer, UDEL for some of the slides used in this presentation Thanks to Madhusri Nayak for some of the slides used in this presentation

  2. Motivation ? • Single informational network • Light protocol • Speed Tim-Berners Lee Director of the W3C HTTP Versions Format : HTTP/<major>.<minor> • HTTP/0.9 – No RFC • HTTP/1.0 – RFC 1945 • HTTP/1.1 – RFC 2616 2

  3. Position of HTTP in the TCP/IP Protocol suite Application-layer Transport layer IGMP ICMP Network layer IP ARP RARP Data link layer Physical layer

  4. User-Agent (browser/client) Origin Server DNS query DNS Server URL DNS response HTTP request HTTP response optional TCP connections Request –Response Protocol TCP connection

  5. A-PDU format (cont’d) space space Request Line Request Type URL HTTP version Request Type GET, HEAD, POST, PUT , TRACE , CONNECT , OPTION space Header Name : Header Value Header format Date , Pragma, Cache control ,Connection, MIME-version, Upgrade, Transfer encoding General Header From, Referer, User-agent, Authorization, If-Modified-Since, Accept * Request Header Entity Header Content-length, Content-type, Content- encoding, Last-modified, Expires, Upgrade Response Header Location, Age, Retry-after, Server

  6. A-PDU format Cont’d… space space Status Line HTTP Version Status Code Status Phrase 1xx: Informational Continue (100) , Switching Protocols(101) 2xx: Success - action was successfully received, understood, and accepted Created (201), Accepted (202), No Content (204), OK (200) 3xx: Redirection - further action needed to complete request Moved Permanently (301) , Moved Temporarily (302), Not Modified (304) 4xx: Client Error - request contains bad syntax or cannot be fulfilled Bad Request (400), Unauthorized (401), Forbidden (403), Not Found (404) 5xx: Server Error - server failed to fulfill an apparently valid request Internal Server Error (500), Not Implemented (501), Bad Gateway (502), Service Unavailable (503)

  7. Example Of Request/Response Note: Headers are in ascii format.

  8. 4 variations of HTTP • Nonpersistent with one connection • Nonpersistent with parallel connections • Persistent without pipelining • Persistent with pipelining

  9. Nonpersistent (HTTP /1.0 default)

  10. OK Client Server SYN SYN-ACK 3-way handshake ACK GET web page HTTP/1.0 Get web page Web page Web page transferred Client parses HTML web page FIN Ack Data ACK Connection close FIN ACK 1.Found referenced object “Image 1” 2. Found referenced object “Image 2”

  11. FIN FIN ACK ACK FIN FIN ACK ACK Nonpersistent (cont’d) Client Client Server Server SYN SYN SYN-ACK SYN-ACK 3-Way Handshake 3-Way Handshake ACK ACK Get image2 Get image1 GET image1 HTTP/1.0 GET image2 HTTP/1.0 Image2 Image1 OK OK Image 2 Transferred Image 1 Transferred Connection close Connection close Ack Data

  12. Key points • Connection does not persist for other objects • Connections are sequential

  13. Rough calculation for number of RTTS Client Server Web Page Can we reduce the number of RTTS? Image 1 Image 2 Delay due to connection request/handshake Time delay in RTTs = 6 Delay Due to HTML Page Request Delay Due to Object Request

  14. Nonpersistent with parallel connections( browser dependent)

  15. FIN FIN FIN ACK ACK ACK FIN FIN FIN ACK ACK ACK Client Server Client Client Server Server SYN SYN SYN SYN-ACK SYN-ACK SYN-ACK 3-Way Handshake 3-Way Handshake 3-Way Handshake ACK ACK GET web page HTTP/1.0 GET image2 HTTP/1.0 GET image1 HTTP/1.0 Get image2 Get image1 Get web page Client parses HTML web page Web page OK OK OK Image2 Image1 Image 1 Transferred Image 2 Transferred Web page Transferred 1. Referenced object “Image 1” 2. Referenced object “Image 2” Connection close Connection close Connection close Parallel connections Ack Data

  16. Rough calculation Client Server Web page Image1 & Image2 Time delay in RTTs = 4 Delay due to connection request/handshake Delay due to HTML page request Delay due to object request

  17. Disadvantages: • overhead of multiple TCP connections • A busy server could end up with lots of connections in the ‘TIME-WAIT’ state • Seldom does each connection get past the ‘slow-start’ region • failure to use the full end-to-end available bandwidth • extra time opening connections increases user-perceived latency Can HTTP be further improved?

  18. Persistent without pipelining

  19. Connection close FIN ACK FIN ACK Client Server GET image2 HTTP/1.1 SYN Get image2 SYN-ACK 3-Way Handshake OK Get web page GET web page HTTP/1.1 GET image1 HTTP/1.1 Image 2 Transferred Get image1 Image2 Image1 OK OK Web page Web page Transferred Image 1 Transferred Timer started Timer started Timer started Timer started Time Out Ack Data Note: 1) Requests are sequential 2) Timer is at application layer 20

  20. Rough calculation Client Server Web page Image1 Image2 Time delay in RTTs = 4 Delay due to connection request/handshake Delay due to HTML page request Delay due to object request

  21. Persistent with pipelining

  22. Image 1 Connection close Image 1 FIN ACK FIN ACK Client Server SYN GET image1 HTTP/1.1 SYN-ACK 3-Way Handshake Get image1 GET image2 HTTP/1.1 Get web page GET webpage HTTP/1.1 Get image2 ACK ACK OK Web page Web page Transferred OK Back to back requests Client parses web page; Gets Image 1 Gets Image 2 Image 2 OK Timer started Timer started Image 2 Time Out Ack Data

  23. Rough calculation Client Server Web page 24 Image1 & Image2 Time delay in RTTs = 3 Delay due to connection request/handshake Delay due to HTML page request Delay due to object request

  24. Advantages: • fewer connections • Reduced network traffic • CPU time is saved in routers and hosts • Reduced perceived latency on subsequent requests • Either client or server can close the connection • Disadvantages: • Connections stay open longer at the server

  25. Experimental Results (NP HTTP/1.0) without parallel connections (Persistent without pipelining) (Persistent with pipelining) Network Latency (seconds) Number of in lined images Figure 6-1: Latencies for a remote server, image size = 2544 bytes

  26. Experimental Results (cont’d) (NP HTTP/1.0) without parallel connections (Persistent without pipelining) (Persistent with pipelining) Network Latency (seconds) Number of in lined images Figure 6-2: Latencies for a remote server, image size = 45566 bytes

  27. Summary: 4 variations of HTTP • Nonpersistent with 1 connection • One TCP connection at a time • Server initiates connection close • Nonpersistent with parallel connections • More than one TCP connection at a time • Server initiates connection close • Persistent without pipelining • One TCP connection at a time • Sequential requests of embedded web page objects • Server or client initiates connection close • Persistent with pipelining • One TCP connection at a time • Back to back requests for embedded web page objects • Server or client initiates connection close

  28. Questions? Do you know? IE will only open 2 parallel HTTP connections to a named server by default Do you know? Firefox will open 4 parallel HTTP connections to a named server by default Do you know? Pipelining is implemented entirely at the browser end. Thanks

More Related