new http protocols http/0.9 -earliest standard simple get/put requests (no headers, constraints,...
TRANSCRIPT
New HTTP Protocols
HTTP/0.9 - Earliest standardsimple GET/PUT requests(no headers, constraints, resolution)
HTTP/1.0 - Current standardRequest For Comment (promulgation of Internet standards decision by feedback and consensus)
HTTP/1.1 - 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 reuseMany 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
Client Server Client Server
Time
Request 1
Response 1
2
2
3
3
Request 1
23
Response 1
32
Unresolved Future Issues
• SOIF node connections• Compression standards• Hit count reporting to improve caching• Multiplexing of HTTP stream
Before After
ServerClient
(Pipelined transfer)in single TCP connection
(multiplexing)
ServerClient
1. Simple Breadth-First
2. Localized multiple GETs (to optimize persistent connections)Threshold on bytes transferred per connection,but constantly re-establishing connections is wasteful
Queueing Strategies
2 3 41
5 6 7 8 9 10 11
1
2 3 4
5
6 7 8
9
10 11 12
Queueing Strategies
3. Site-specific subqueues (ensure not too many hits on one site in time)
jhu.edu nyu.edu cnn.com
toshiba.com
Problem?
jhu.edu nyu.edu cnn.com
Queueing Strategies
4. Priority Queues (with minimum time between hits constraint)
Avoids situationsif number of sitesactive take longer to traverse thanminimum hit window.
ibm.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17