hypertext transfer protocol (http) richi gupta cisc 856: tcp/ip and upper layer protocols fall 2007...

28
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

Upload: toby-powers

Post on 04-Jan-2016

216 views

Category:

Documents


3 download

TRANSCRIPT

Page 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

Example Of Request/Response

Note: Headers are in ascii format.8

Page 8: 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

4 variations of HTTP

Nonpersistent with one connection Nonpersistent with parallel connections Persistent without pipelining Persistent with pipelining

Page 9: 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

Nonpersistent (HTTP /1.0 default)

Page 10: 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

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

Page 11: 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

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

Page 12: 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

Key points

13

Connection does not persist for other objects

Connections are sequential

Page 13: 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

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

Page 14: 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

Nonpersistent with parallel connections( browser dependent)

15

Page 15: 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

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”

Page 16: 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

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

Page 17: 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

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

Page 18: 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

Persistent without pipelining

Page 19: 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

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

Page 20: 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

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

Page 21: 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

Persistent with pipelining

22

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

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)

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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