23
Introduction 1 Lecture 6 Application Layer (HTTP) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering Department Fall 2011 CPE 400 / 600 Computer Communication Networks

Lecture 6 Application Layer (HTTP)

  • Upload
    chinue

  • View
    26

  • Download
    2

Embed Size (px)

DESCRIPTION

University of Nevada – Reno Computer Science & Engineering Department Fall 2011 CPE 400 / 600 Computer Communication Networks. Lecture 6 Application Layer (HTTP). slides are modified from J. Kurose & K. Ross. 2.1 Principles of network applications app architectures app requirements - PowerPoint PPT Presentation

Citation preview

Page 1: Lecture  6 Application Layer  (HTTP)

Introduction 1

Lecture 6Application Layer (HTTP)

slides are modified from J. Kurose & K. Ross

University of Nevada – RenoComputer Science & Engineering Department

Fall 2011

CPE 400 / 600Computer Communication Networks

Page 2: Lecture  6 Application Layer  (HTTP)

Chapter 2: Application layer2.1 Principles of network applications

app architectures app requirements

2.2 Web and HTTP2.3 FTP2.4 Electronic Mail

SMTP, POP3, IMAP2.5 DNS

2.6 P2P applications2.7 Socket programming

with TCP2.8 Socket programming

with UDP

Application 2

Page 3: Lecture  6 Application Layer  (HTTP)

HTTP connectionsnon-persistent HTTP at most one object sent over TCP connection.persistent HTTP multiple objects can be sent over single TCP

connection between client, server.

Application 3

Page 4: Lecture  6 Application Layer  (HTTP)

Nonpersistent HTTPsuppose user enters URL:

1a. HTTP client initiates TCP connection to HTTP server (process) at www.someSchool.edu on port 80

2. HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object someDepartment/home.index

1b. HTTP server at host www.someSchool.edu waiting for TCP connection at port 80. “accepts” connection, notifying client

3. HTTP server receives request message, forms response message containing requested object, and sends message into its sockettime

(contains text, references to 10

jpeg images)

Application 4

www.someSchool.edu/someDepartment/home.index

Page 5: Lecture  6 Application Layer  (HTTP)

Nonpersistent HTTP (cont.)

5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects6. Steps 1-5 repeated for each of 10 jpeg objects

4. HTTP server closes TCP connection.

time

Application 5

Page 6: Lecture  6 Application Layer  (HTTP)

Non-Persistent HTTP: Response time

definition of RTT: time for a small packet to travel from client to server and back.

response time: one RTT to initiate TCP

connection one RTT for HTTP

request and first few bytes of HTTP response to return

file transmission timetotal = 2RTT+transmit

time

time to transmit file

initiate TCPconnection

RTT

requestfile

RTT

filereceived

time time

Application 6

Page 7: Lecture  6 Application Layer  (HTTP)

Persistent HTTP

non-persistent HTTP issues: requires 2 RTTs per object OS overhead for each TCP

connection browsers often open

parallel TCP connections to fetch referenced objects

persistent HTTP server leaves connection

open after sending response

subsequent HTTP messages between same client/server sent over open connection

client sends requests as soon as it encounters a referenced object

as little as one RTT for all the referenced objects

Application 7

Page 8: Lecture  6 Application Layer  (HTTP)

HTTP request message two types of HTTP messages: request,

response HTTP request message:

ASCII (human-readable format)request line(GET, POST, HEAD commands)

header lines

carriage return, line feed at startof line indicatesend of header lines

Application 8

GET /index.html HTTP/1.1\r\nHost: www-net.cs.umass.edu\r\nUser-Agent: Firefox/3.6.10\r\nAccept: text/html,application/xhtml+xml\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\n\r\n

carriage return characterline-feed character

Page 9: Lecture  6 Application Layer  (HTTP)

HTTP request message: general format

Application 9

requestline

headerlines

body

Page 10: Lecture  6 Application Layer  (HTTP)

Uploading form inputPOST method:

web page often includes form input

input is uploaded to server in entity body

URL method: uses GET method input is uploaded in

URL field of request line: www.somesite.com/animalsearch?monkeys&banana

Application 10

Page 11: Lecture  6 Application Layer  (HTTP)

Method typesHTTP/1.0 GET POST HEAD

asks server to leave requested object out of response

HTTP/1.1 GET, POST, HEAD PUT

uploads file in entity body to path specified in URL field

DELETE deletes file specified in the URL field

Application 11

Page 12: Lecture  6 Application Layer  (HTTP)

HTTP response messagestatus line(protocolstatus codestatus phrase)

header lines

data, e.g., requestedHTML file

Application 12

HTTP/1.1 200 OK\r\nDate: Sun, 26 Sep 2010 20:09:20 GMT\r\nServer: Apache/2.0.52 (CentOS)\r\nLast-Modified: Tue, 30 Oct 2007 17:00:02

GMT\r\nETag: "17dc6-a5c-bf716880"\r\nAccept-Ranges: bytes\r\nContent-Length: 2652\r\nKeep-Alive: timeout=10, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/html; charset=ISO-8859-1\

r\n\r\ndata data data data data ...

Page 13: Lecture  6 Application Layer  (HTTP)

HTTP response status codes

200 OK request succeeded, requested object later in this msg

301 Moved Permanently requested object moved, new location specified later in

this msg (Location:)400 Bad Request

request msg not understood by server404 Not Found

requested document not found on this server505 HTTP Version Not Supported

status code appears in 1st line in server->client response message.

some sample codes:

Application 13

Page 14: Lecture  6 Application Layer  (HTTP)

Trying out HTTP (client side) for yourself

1. Telnet to your favorite Web server:opens TCP connection to port 80(default HTTP server port) at cis.poly.edu.anything typed in sent to port 80 at cis.poly.edu

telnet cis.poly.edu 80

2. type in a GET HTTP request:GET /~ross/ HTTP/1.1Host: cis.poly.edu

by typing this in (hit carriagereturn twice), you sendthis minimal (but complete) GET request to HTTP server

3. look at response message sent by HTTP server!

Application 14

(or use wireshark!)

Page 15: Lecture  6 Application Layer  (HTTP)

User-server state: cookiesmany Web sites use cookiesfour components:

1) cookie header line of HTTP response message2) cookie header line in HTTP request message3) cookie file kept on user’s host, managed by user’s

browser4) back-end database at Web site

example: Susan always access

Internet from PC visits specific e-

commerce site for first time

when initial HTTP requests arrives at site, site creates: unique ID entry in backend

database for ID

Application 15

Page 16: Lecture  6 Application Layer  (HTTP)

Cookies: keeping “state” (cont.)client server

usual http response msg

usual http response msg

cookie file

one week later:

usual http request msg

cookie: 1678cookie-specificaction

access

ebay 8734 usual http request msg Amazon server

creates ID1678 for usercreate

entryusual http response Set-cookie: 1678

ebay 8734amazon 1678

usual http request msg

cookie: 1678cookie-specificaction

accessebay 8734amazon 1678

backenddatabase

Application 16

Page 17: Lecture  6 Application Layer  (HTTP)

Cookies (continued)what cookies can

bring: authorization shopping carts recommendations user session state

(Web e-mail)

cookies and privacy: cookies permit sites

to learn a lot about you

you may supply name and e-mail to sites

aside

how to keep “state”: protocol endpoints: maintain

state at sender/receiver over multiple transactions

cookies: http messages carry state

Application 17

Page 18: Lecture  6 Application Layer  (HTTP)

Web caches (proxy server)

user sets browser: Web accesses via cache

browser sends all HTTP requests to cache object in cache:

cache returns object else cache requests

object from origin server, then returns object to client

Goal: satisfy client request without involving origin server

client

Proxyserver

client

HTTP request

HTTP response

HTTP request HTTP request

origin server

origin server

HTTP response HTTP response

Application 18

Page 19: Lecture  6 Application Layer  (HTTP)

More about Web caching cache acts as both client and server typically cache is installed by ISP (university,

company, residential ISP)

why Web caching? reduce response time for client request reduce traffic on an institution’s access link. Internet dense with caches: enables “poor”

content providers to effectively deliver content (but so does P2P file sharing)

Application 19

Page 20: Lecture  6 Application Layer  (HTTP)

Caching example assumptions average object size =

100,000 bits avg. request rate from

institution’s browsers to origin servers = 15/sec

delay from institutional router to any origin server and back to router = 2 sec

consequences utilization on LAN = 15% utilization on access link =

100% total delay = Internet delay +

access delay + LAN delay = 2 sec + minutes +

milliseconds

originservers

public Internet

institutionalnetwork 10 Mbps LAN

1.5 Mbps access link

institutionalcache

Application 20

Page 21: Lecture  6 Application Layer  (HTTP)

Caching example (cont)possible solution increase bandwidth of

access link to, say, 10 Mbpsconsequence utilization on LAN = 15% utilization on access link =

15% Total delay = Internet

delay + access delay + LAN delay

= 2 sec + msecs + msecs often a costly upgrade

originservers

public Internet

institutionalnetwork 10 Mbps LAN

10 Mbps access link

institutionalcache

Application 21

Page 22: Lecture  6 Application Layer  (HTTP)

Caching example (cont)possible solution: install cache

consequence suppose hit rate is 0.4

40% requests will be satisfied almost immediately

60% requests satisfied by origin server

utilization of access link reduced to 60%, resulting in negligible delays (say 10 msec)

total avg delay = Internet delay + access delay + LAN delay = .6*(2.01) secs + .4*milliseconds < 1.4 secs

originservers

public Internet

institutionalnetwork 10 Mbps LAN

1.5 Mbps access link

institutionalcache

Application 22

Page 23: Lecture  6 Application Layer  (HTTP)

Conditional GET Goal: don’t send object if

cache has up-to-date cached version

cache: specify date of cached copy in HTTP requestIf-modified-since:

<date> server: response

contains no object if cached copy is up-to-date: HTTP/1.0 304 Not

Modified

cache server

HTTP request msgIf-modified-since: <date>

HTTP responseHTTP/1.0

304 Not Modified

object not

modifiedbefore<date>

HTTP request msgIf-modified-since: <date>

HTTP responseHTTP/1.0 200 OK

<data>

object modified

after <date>

Application 23