Post on 19-Jan-2018
description
transcript
HyperText Transfer Protocol (HTTP)
Deepti KulkarniCISC 856: TCP/IP and Upper Layer Protocols
Fall 2008
AcknowledgementsProfessor Amer Richi Gupta
Motivation ?
Single informational network
Light protocol
SpeedTim-Berners LeeDirector of the W3CHTTP Versions
Format : HTTP/<major>.<minor> HTTP/0.9 – No RFC
HTTP/1.0 – RFC 1945
HTTP/1.1 – RFC 2616
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 RARPIP
Underlying LAN or WAN
Quick overview of HTTP
• Generic protocol for communication
• Stateless protocol
• In-band protocol• control information is sent in-band (unlike FTP)
• Pull protocol • pulls information from the server (unlike SMTP which is push
protocol)
Client-Server protocol
HTTP Request
HTTP Response
PC running Explorer/MAC running Navigator
Server running Apache Web server
HTTP Request/Response are over TCP connections
A-PDU format
Request Line
A Blank Line
Body
Entity Headers
Request Headers
General Headers
Request Message
Status Line
A Blank Line
Body
Entity Headers
Response Headers
General Headers
Response Message
Note: Each line ends with ‘cr lf ‘ control characters.
GET , HEAD, POST, PUT , TRACE , CONNECT , OPTION
URL HTTP 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)
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 VersionStatus Line
space spaceA-PDU format (cont’d)…
Variations of HTTP
• Nonpersistent connections• with serial connections• with parallel connections
• Persistent connections• without pipelining• 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
ACK
ACK
FIN
Nonpersistent (cont’d)
Ack
Data
SYNSYN-ACK
ACK
Client Server
GET image1 HTTP/1.0
OK
FIN
Image 1 Transferred
Connection close
3-Way Handshake Get image1
FINACK
ACK
Image1
SYNSYN-ACK
ACK
Client Server
GET image2 HTTP/1.0
OK
FIN
Image 2
Transferred
Connection close
3-Way Handshake Get image2
FINACK
ACK
Image2
Key points 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
Nonpersistent with parallel connections( browser dependent)
Ack
Data
Parallel connections
SYN
SYN-ACKACK
Client Server
GET web page HTTP/1.0
OK
FIN
Web page Transferred
Connection close
3-Way Handshake
Get web page
FINACK
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
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
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
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
• Rarely 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
Persistent without pipelining
FIN
Connection close
ACKFIN
ACK
Time Out
Ack
Data
SYNSYN-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
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
Client parses
web page;
Gets Image 1
Gets Image 2
FIN
Connection close FIN
ACK
ACK
Back to back requests
Ack
Data
SYNSYN-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 startedNote: Requests are serviced in order
Rough calculation
Client Server
24
Time delay in RTTs = 3
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• Less overhead for the servers
• Reduced perceived latency for clients on subsequent requests
• Either client or server can close the connection
Disadvantages:
• Connections stay open longer at the server
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)
(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)
(Persistent without pipelining)
(Persistent with pipelining)
(NP HTTP/1.0) without parallel connections
Questions?
Thanks
Example Of Request/Response
Lets have a live demo!• telnet cis.poly.edu 80• GET /~ross/ HTTP/1.1 Host: cis.poly.edu