Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 9 Application Layer, HTTP Professor Rick Han University of Colorado at Boulder

Similar presentations


Presentation on theme: "Chapter 9 Application Layer, HTTP Professor Rick Han University of Colorado at Boulder"— Presentation transcript:

1 Chapter 9 Application Layer, HTTP Professor Rick Han University of Colorado at Boulder rhan@cs.colorado.edu

2 Prof. Rick Han, University of Colorado at Boulder Announcements Read Sections 9.1 - 9.2, Skip 9.3 HW #4 due April 16 Programming Assignment #3 soon… Midterm: hand back April 4 Next, Application Layer

3 Prof. Rick Han, University of Colorado at Boulder Recap of Previous Lecture Domain Name Service Translate/resolve a name to an IP address www.cs.colorado.edu => 128.9.17.42 Hierarchical name space Hierarchical name servers Root name servers – about a dozen Then,.edu,.com,.gov,.mil,.org,.net, … Local name server Authoritative name server – gives back final IP address Recursive vs. iterative queries Caching

4 Prof. Rick Han, University of Colorado at Boulder HyperText Transfer Protocol (HTTP) Basis for Web Application-layer protocol built on top of TCP Request-Response type of protocol Request: e.g. “GET URL HTTP_version_#” Response from server Requests and responses are encoded in text Stateless: after request and response, no further state maintained Cookies maintain session state outside of HTTP

5 Prof. Rick Han, University of Colorado at Boulder HTTP Request Request headers Authorization – authentication info Acceptable document types/encodings From – user email If-Modified-Since  return page only if mod after date Referrer – what caused this page to be requested User-Agent – client software Blank line Body

6 Prof. Rick Han, University of Colorado at Boulder HTTP Request Example: GET GET / HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Host: www.seshan.org Connection: Keep-Alive

7 Prof. Rick Han, University of Colorado at Boulder HTTP Response Headers –Location – for redirection –Server – server software –WWW-Authenticate – request for authentication –Allow – list of methods supported (get, head, etc) –Content-Encoding – E.g x-gzip –Content-Length  # bytes in content –Content-Type  MIME type –Expires  when contents become stale –Last-Modified  time contents last mod by servr Blank-line Body

8 Prof. Rick Han, University of Colorado at Boulder HTTP Response Example HTTP/1.1 200 OK Date: Tue, 27 Mar 2001 03:49:38 GMT Server: Apache/1.3.14 (Unix) (Red-Hat/Linux) mod_ssl/2.7.1 OpenSSL/0.9.5a DAV/1.0.2 PHP/4.0.1pl2 mod_perl/1.24 Last-Modified: Mon, 29 Jan 2001 17:54:18 GMT ETag: "7a11f-10ed-3a75ae4a" Accept-Ranges: bytes Content-Length: 4333 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html  MIME Type …..

9 Prof. Rick Han, University of Colorado at Boulder HTTP 0.9/1.0 One HTTP 1.0 request/response per TCP connection –Simple to implement Disadvantages –Multiple connection setups  three-way handshake each time Several extra round trips added to transfer Netscape browser opens up to 4 parallel HTTP 1.0 connections –Multiple slow starts

10 Prof. Rick Han, University of Colorado at Boulder HTTP 1.0 Interaction With TCP Client Server SYN ACK DAT FIN ACK 0 RTT 1 RTT 2 RTT 3 RTT 4 RTT Server reads from disk FIN Server reads from disk Client opens TCP connection Client sends HTTP request for HTML Client parses HTML Client opens TCP connection Client sends HTTP request for image Image begins to arrive Courtesy: Srini Seshan

11 Prof. Rick Han, University of Colorado at Boulder More HTTP 1.0 & TCP Interaction Problems Lots of extra connections –Increases server state/processing Server also forced to keep TIME_WAIT connection state for dead TCP connections –Tends to be an order of magnitude greater than # of active connections, why?

12 Prof. Rick Han, University of Colorado at Boulder HTTP 1.1 Persistent Connection Solution Multiplex multiple requests onto one open TCP connection (& multiple responses in reverse direction) –Serialize transfers  client makes next request only after previous response –Reduce slow start latency –Reduce amount of TCP state at both endpoints –Reduce overhead HTTP 1.1 adds complexity because multiple requests (and responses) have to be multiplexed and demultiplexed

13 Prof. Rick Han, University of Colorado at Boulder HTTP 1.1 Persistent Connection Example Client Server ACK DAT ACK 0 RTT 1 RTT 2 RTT Server reads from disk Client sends HTTP request for HTML Client parses HTML Client sends HTTP request for image Image begins to arrive DAT Server reads from disk DAT Courtesy: Srini Seshan

14 Prof. Rick Han, University of Colorado at Boulder Web Caching Proxies Place a Web caching proxy in the network between Web client and Web server –Reduces client response time HTTP GET only goes as far as intermediate cache, rather than all the way to server –Reduces network bandwidth usage HTTP GET doesn’t travel over wide area from caching proxy to server –Reduces server load HTTP GET never reaches server HTTP Caching Proxy HTTP Web Server HTTP Client/ Browser

15 Prof. Rick Han, University of Colorado at Boulder Web Proxies Used for Caching –Improved response time, etc. from previous slide –Provides a centralized coordination point to share cached information across all of a company’s client hosts Also used for security –Proxy for a company can be the only host that can access Internet –Administrators makes sure that it is secure Used for protocol translation –Translate HTTP 1.0 to/from HTTP 1.1. Enables old HTTP 1.0 clients to connect to HTTP 1.1 servers, and benefit from HTTP 1.1 performance boosts

16 Prof. Rick Han, University of Colorado at Boulder Designing Caching Proxies How much can/should be cached? –How large a cache is necessary? –On disk vs. in memory  typically on disk –What are the cache hit rates? If user behavior is uncorrelated, have to cache a lot of data to improve response time, resulting in small cache hit rate If user behavior is correlated, i.e. everyone visits only a few Web sites, then cache less data and still improve response time (high cache hit rate)

17 Prof. Rick Han, University of Colorado at Boulder Designing Caching Proxies (2) What can be cached? –Cache first-time unknown documents/objects –Non-cacheable documents CGI-scripts Personalized documents (cookies, etc) Encrypted data (SSL) –Document should no longer be cached if updated/expired before reuse

18 Prof. Rick Han, University of Colorado at Boulder Designing Caching Proxies (3) Performance: –How many TCP connections can the proxy handle? –How to efficiently index into database/cache? Early caches used file system to find file Metadata now kept in memory on most caches Prefetching – combine with caching to reduce response time –Proxy parses a Web page and prefetch its hyperlinked objects before the client asks for them Example: when a proxy fetches a Web page on behalf of a client, the proxy will parse and cache the Web page returned by the server, and then prefetch all links before client requests them –Not widely used due to poor hit rates?


Download ppt "Chapter 9 Application Layer, HTTP Professor Rick Han University of Colorado at Boulder"

Similar presentations


Ads by Google