New HTTP Protocols HTTP/0.9 HTTP/1.0 HTTP/1.1 - Earliest standard simple GET/PUT requests (no headers, constraints, resolution) - Current standard Request For Comment (promulgation of Internet standards decision by feedback and consensus) - Proposed future standard Failings of HTTP/1.0 • Fetches only 1 URL per TCP connection • (Network server) overhead from frequent closing/reopening of connections • Most GETs are only a few thousand bytes (e.g., small_ball.gif) • Poor user-perceived performance (latency, slow start) • Primitive caching model Temporary hack solution: Open N TCP connections simultaneously (default = 4 with Netscape) Goals of HTTP/1.1 • Improved caching (including better models of what is cachable and time resolution in milliseconds instead of seconds) • Range requests (partial document download) - ability to specify GET on a range (e.g., only bytes 1000-2000 or 35000+) - useful when transfer interrupted, no need to start from scratch • Persistent connections • Requests/responses pipelined • Default is for connection to stay open except when explicit close command from server • So, reduced network usage and improved user response time and throughput HTTP/1.1 Improvements (cont.) • Chunk encoding • In many cases with HTTP/1.0, length of document • Content negotiation • Host must announce its name serer (required) • Security ??? HTTP/1.1 Improvements (cont.) • Better compression and graphical element reuse Many GIF files contain graphic primatives that could be represented more efficiently as sequences of markup (pointers to stored primatives) Empirical data USE CSS1 encoding protocol for GIFs Pipelining Server Client Server Client 2 3 Time 2 3 2 2 3 3 Unresolved Future Issues • SOIF node connections • Compression standards • Hit count reporting to improve caching • Multiplexing of HTTP stream After Before Client Server (Pipelined transfer) in single TCP connection Client Server (multiplexing) Queueing Strategies 1. Simple Breadth-First 1 5 6 7 2 3 8 9 4 10 11 2. Localized multiple GETs (to optimize persistent connections) Threshold on bytes transferred per connection, but constantly re-establishing connections is wasteful 1 5 9 2 3 4 6 7 8 10 11 12 Queueing Strategies 3. Site-specific subqueues (ensure not too many hits on one site in time) toshiba.com jhu.edu nyu.edu Problem? cnn.com Queueing Strategies 4. Priority Queues (with minimum time between hits constraint) 16 17 8 9 1 6 12 10 11 2 7 13 3 14 4 jhu.edu 5 nyu.edu ibm.com cnn.com 15 Avoids situations if number of sites active take longer to traverse than minimum hit window.