Title: HyperText Transfer Protocol
1- HyperText Transfer Protocol
- (HTTP)
- Deepti Kulkarni
- CISC 856 TCP/IP and Upper Layer Protocols
- Fall 2008
- Acknowledgements
- Professor Amer Richi Gupta
2Motivation ?
- Single informational network
- Light protocol
- Speed
Tim-Berners Lee Director of the W3C
HTTP Versions
Format HTTP/ltmajorgt.ltminorgt
- HTTP/0.9 No RFC
- HTTP/1.0 RFC 1945
- HTTP/1.1 RFC 2616
2
3Position of HTTP in the TCP/IP Protocol suite
HTTP
Application-layer
TCP
Transport layer
IGMP
ICMP
Network layer
IP
ARP
RARP
Data link layer
Underlying LAN or WAN
Physical layer
4Quick 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)
5Client-Server protocol
Server running Apache Web server
HTTP Request/Response are over TCP connections
HTTP Response
HTTP Request
PC running Explorer/MAC running Navigator
6A-PDU format
Note Each line ends with cr lf control
characters.
7A-PDU format (contd)
8A-PDU format (contd)
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)
9Variations of HTTP
- Nonpersistent connections
- with serial connections
- with parallel connections
- Persistent connections
- without pipelining
- with pipelining
10 Nonpersistent (HTTP /1.0 default)
11Client
Server
SYN
SYN-ACK
3-way handshake
ACK
Get web page
Web page
Web page transferred
Client parses HTML web page
Ack
Data
1.Found referenced object Image 1 2.
Found referenced object Image 2
12Nonpersistent (contd)
Ack
Data
13Key points
- Connection does not persist for other objects
- Connections are sequential
14Rough 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
Delay Due to HTML Page Request
Time delay in RTTs 6
Delay Due to Object Request
15- Nonpersistent with parallel connections( browser
dependent)
16Client parses HTML web page
1. Referenced object Image 1 2.
Referenced object Image 2
Parallel connections
Ack
Data
17Rough 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
18Disadvantages
- 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
19Persistent without pipelining
20Ack
Data
Note 1) Requests are sequential 2)
Timer is at application layer
20
21Rough 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
22Persistent with pipelining
23Back to back requests
Client parses web page Gets Image 1 Gets Image
2
Note Requests are serviced in order
Ack
Data
24Rough 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
25- 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
26Experimental 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
27Experimental Results (contd)
(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
28Questions?
Thanks
29Example Of Request/Response
- Lets have a live demo!
- telnet cis.poly.edu 80
- GET /ross/ HTTP/1.1
- Host cis.poly.edu