New HTTP Protocols

advertisement
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.
Download