120 likes | 124 Views
This paper discusses the key performance differences between HTTP/1.1 and HTTP/1.0, emphasizing the importance of changes in web content such as CSS, .PNG, and MNG. It also explores the advantages of a well-implemented HTTP/1.1 protocol and the impact of compression on web performance.
E N D
Network Performance Effects on HTTP/1.1, CSS1, and PNG Henrik Frystyk Nielsen : W3C James Gettys : DEC Anselm Baird-Smith: W3C Luis Rivera
Outline • Goals • HTTP 1.0 vs HTTP 1.1 • Specification • Performance • Further improvements • Compression • Web content: CSS, PNB and MNG • Conclusions • This was two years ago, was about today?
Paper Goals • Main Goal • Present key performance differences between HTTP/1.1 and HTTP/1.0 • Stress the importance of changes in Web Content • Secondary Goals • Expose the performance advantages of a well implemented HTTP/1.1 protocol • Show advantages of CSS, PNG and MNG • Did I miss something?
Problem? • HTTP/1.0 • Not designed for multiple transmissions in the same request • Makes use of multiple TCP connections • Small multiple transmissions are affected by TCP slow start mechanism • Patch: “Keep-Alive” extensions don’t work with multiple proxies • Low support for compression • However it is still heavily used !!!
Solution? • HTTP/1.1 • “Persistent connections” • Data compression • Ranges facilities • Partial retrieval of objects • Cache validation • “poor man’s multiplexing” • Design Goals • Increase network use efficiency • Allow reliable use of caching • Improve performance perceived by end user!!!
Implementation headaches • Testbed • LAN, WAN and PPP • Jigsaw and Apache servers (SPARC platform) • Libwww robot, Netscape and Explorer (Pentium and Alpha platforms) • Microscape! • Initial testing • Pipelining: Achieves better efficiency! • Persistent connections: Decreases TCP packets • BUT: Multiple connections outperforms both !!! • What went wrong?
Pipelining • Maintains several outstanding requests on the same connection • Tuned to produce as few small headers as possible • Requests are buffered • Improves network utilization • Need to be flushed (size threshold, timer) • Flushing can take advantage of the application knowledge! • Interfere with Nagle’s algorithm • Can you really rely on the application knowledge?
Performance Tuned Version • Tuned HTTP/1.1 outperforms HTTP/1.0 • Buffering • Reduces the number of TCP packets required • Increases packet size • Pipelining • Needs to be complemented with buffering • Bigger and fewer packets increase server performance!!! • Look at performance tables !!!
Compression • Data, images are already compressed • Could help to overcome TCP slow start effects • Increases the chances to generate a new batch of request • Decreases elapsed time (using zip compression) • HTML tags should be lower cased for best compression • This is good, but what is the cost of compressing web pages?
Web Content • Fact • HTML was not born to be used the way it is being used! • However, it has been proved flexible • Changes represent • Potential web traffic reduction • Web page development could be easied • Style Sheets for web page designers: CSS • Better control of page representation and layout • Saves requests by replacing images in the Unicode char set • PNG and MNG for images and animation
Conclusions • HTTP/1.1+pipelining outperforms HTTP/1.0 • Pipelining can significantly improve performance • Must be used with buffering and other tricks to be effective • Specially useful revalidating cached items • HTTP/1.1 new techniques saves bandwidth and uses the network more efficiently • Such changes could be improved further by changes in web content • For style sheets, images, animations, more?
Discussion • What about interactions between HTTP/1.1 and a hierarchy of proxy caches • Performance improvements are nice but, • Will developers really care if they are achieved though heavy modification of existing technologies? • Are those performance improvements really significant to justify the change? • Changes to web content make sense in an ever changing web environment !!!