Date post: | 03-Jan-2016 |
Category: |
Documents |
Upload: | demetria-lois |
View: | 19 times |
Download: | 0 times |
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
Motivation ?
Single informational network
Light protocol
SpeedTim-Berners Lee
Director of the W3CHTTP Versions
Format : HTTP/<major>.<minor> HTTP/0.9 – No RFC
HTTP/1.0 – RFC 1945
HTTP/1.1 – RFC 2616
2
Position of HTTP in the TCP/IP Protocol suite
HTTP
TCP
Application-layer
Transport layer
Network layer
Data link layer
Physical layer
IGMP ICMP
ARP RARP
IP
Underlying LAN or WAN
3
Request –Response Protocol
Origin Server
URL
User-Agent (browser/client)
HTTP response
DNS response
HTTP request
DNS ServerDNS query
TCP connection
optional TCP connections
4
GET , HEAD, POST, PUT , TRACE , CONNECT , OPTION
URLHTTP
version
space space
Request Line Request Type
Request Type
Header Name Header format :
Header Value
General Header Date , Pragma, Cache control ,Connection, MIME-version, Upgrade, Transfer encoding
space
Request Header From, Referer, User-agent, Authorization, If-Modified-Since, Accept *
Entity Header Content-length, Content-type, Content- encoding, Last-modified, Expires, Upgrade
Response Header Location, Age, Retry-after, Server
A-PDU format (cont’d)
6
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)
Status Code
Status Phrase
HTTP Version
Status Line
space spaceA-PDU format Cont’d…
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
Nonpersistent (HTTP /1.0 default)
SYN
SYN-ACK
ACK
Client Server
GET web page HTTP/1.0
OK
Web page transferred
3-way handshake
Connection close
Get web page
Web page
Client parses HTML web page
FIN
1.Found referenced object “Image 1”2. Found referenced object “Image 2”
Ack
Data
11
ACK
ACK
FIN
Nonpersistent (cont’d)
Ack
Data
12
SYN
SYN-ACKACK
Client Server
GET image1 HTTP/1.0
OK
FIN
Image 1 Transferred
Connection close
3-Way Handshake Get image1
FINACK
ACK
Image1
SYN
SYN-ACKACK
Client Server
GET image2 HTTP/1.0
OK
FIN
Image 2
Transferred
Connection close
3-Way Handshake Get image2
FINACK
ACK
Image2
Key points
13
Connection does not persist for other objects
Connections are sequential
Rough calculation for number of RTTSClient Server
Delay due to connection request/handshake
Delay Due to HTML Page Request
Delay Due to Object Request
Time delay in RTTs = 6
Can we reduce the number of RTTS?
Web Page
Image 1
Image 2
14
Nonpersistent with parallel connections( browser dependent)
15
Ack
Data16
Parallel connections
SYN
SYN-ACK
ACK
Client Server
GET web page HTTP/1.0
OK
FIN
Web page Transferred
Connection close
3-Way Handshake
Get web page
FIN
ACK
ACK
Web page
SYN
SYN-ACK
Client Server
GET image1 HTTP/1.0
OK
FIN
Image 1 Transferred
Connection close
3-Way Handshake
Get image1
FIN
ACK
ACK
Image1
SYN
SYN-ACK
ACK
Client Server
GET image2 HTTP/1.0
OK
FIN
Image 2
Transferred
Connection close
3-Way Handshake
Get image2
FIN
ACK
ACK
Image2
Client parses HTML web page
1. Referenced object “Image 1”2. Referenced object “Image 2”
Rough calculation
Client Server
Time delay in RTTs = 4 Delay due to connection request/handshake
Delay due to HTML page request
Delay due to object request
17
Web page
Image1 & Image2
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
FIN
Connection close
ACKFIN
ACK
Time Out
Ack
Data
20
SYN
SYN-ACK
Client Server
GET web page HTTP/1.1
OKWeb page Transferred
3-Way Handshake Get web page
Web page
GET image2 HTTP/1.1
OK Image 2 Transferred
Get image2
Image2
GET image1 HTTP/1.1
OK Image 1 Transferred
Get image1
Image1
Note: 1) Requests are sequential 2) Timer is at application layer
Timer started
Timer started
Timer startedTimer started
Rough calculation
21
Client Server
Time delay in RTTs = 4Delay due to connection request/handshake
Delay due to HTML page request
Delay due to object request
Web page
Image1
Image2
Persistent with pipelining
22
Client parses
web page;
Gets Image 1
Gets Image 2
FIN
Connection close FIN
ACK
ACK
Back to back requests
Ack
Data23
SYN
SYN-ACK
Client Server
GET webpage HTTP/1.1
OKWeb page Transferred
3-Way Handshake Get web
page
Web page
Image 2
OK Image 2
Get image1Get image2
GET image1 HTTP/1.1
GET image2 HTTP/1.1ACKACK
Image 1
Image 1OK
Time Out
Timer started
Timer started
Rough calculation
Client Server
24
Time delay in RTTs = 3
24
Delay due to connection request/handshake
Delay due to HTML page request
Delay due to object request
Web page
Image1 & Image2
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
Figure 6-1: Latencies for a remote server, image size = 2544 bytes
Experimental Results
(NP HTTP/1.0) without parallel connections
Number of in lined images
Net
wor
k La
tenc
y (s
econ
ds)
27
(Persistent without pipelining)
(Persistent with pipelining)
Figure 6-2: Latencies for a remote server, image size = 45566 bytes
Experimental Results (cont’d)
Number of in lined images
Net
wor
k La
tenc
y (s
econ
ds)
28
(Persistent without pipelining)
(Persistent with pipelining)
(NP HTTP/1.0) without parallel connections
Summary: 4 variations of HTTP
Nonpersistent with 1 connectionOne TCP connection at a timeServer initiates connection close
Nonpersistent with parallel connectionsMore than one TCP connection at a timeServer 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
Questions?
35
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