HyperText Transfer Protocol (HTTP) Deepti Kulkarni CISC 856: TCP/IP and Upper Layer Protocols Fall...

Post on 19-Jan-2018

222 views 0 download

description

Position of HTTP in the TCP/IP Protocol suite HTTP TCP Application-layer Transport layer Network layer Data link layer Physical layer IGMPICMP ARPRARP IP Underlying LAN or WAN

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