Jim Gettys
, visiting scientist at the World Wide Web Consortium, describes a more efficient Hypertext Transfer Protocol.
Dave Andrews
BYTE:
What are the main improvements of HTTP 1.1 over version 1.0?
Gettys:
HTTP 1.0 [the protocol for transferring hypertext] does not use TCP very well. HTTP is based on top of the TCP transport protocol, and the way 1.0 worked was not very clever. For each little graphical thing you saw on your screen, 1.0 established an independent TCP connection. The overhead was causing major problems, in a number of subtle ways. In particular, most of the little things on the Web are small objects, and TCP was not anticipat
ed to be used in this particular way. TCP has a number of algorithms for avoiding congestion. B
ut because the TCP connections were being thrown away so quickly and often, it was defeating the congestion-avoidance algorithms of TCP.
BYTE:
How does 1.1 fix this?
Gettys:
1.1 fixes this by using two techniques. The first has already been implemented by a number of vendors, and it's called persistent connections. With persistent connections, rather than throwing the TCP connection away after every use, the connection is kept open, and you use it for subsequent requests. The other technique is called pipelining, which lets a client have multiple requests at once. Rather than saying "Please get me this thing," and waiting for the response that says "Here it is," in HTTP 1.1, you can say, "Please get me this and this and this and so on." With pipelining, it's as if you were presenting a list of things that you want to the server, rather than asking for them one at a time. Pipelining, in concert with persistent connections, lets yo
u get the performance that you need.
BYTE:
What performance benefits did you see in testing HTTP 1.1?
Gettys:
If what you're doing is downloading one huge image, there's no substitute for bandwidth. HTTP 1.1 can't make a 28.8 modem run any faster. However, for downloading our [test] home page for the first time from a server that's close to you on the Internet over a 28.8 line, we saw a 20 percent improvement [compared to HTTP 1.0]. That's a conservative estimate, roughly what people should expect to get. Performance may improve even more for remote sites than that as HTTP 1.1 is widely deployed and as the Internet congestion caused by HTTP 1.0 lessens.
There are also other techniques for improving Web behavior that are not specific to HTTP 1.1 that we've noted in a paper on the Network Performance Effects of HTTP/1.1, CSS1, and PNG (
http://www.w3.org/pub/WWW/Protocols/HTTP/Performance/Pipeline.html
). Changes in content, for example, the use of style sheets, which are a much more efficient way for graphics designers to get the "look" they want without having to use images, are not part of HTTP/1.1 but may also help users on dialup lines.
However, for cache validation [done when revisiting a page when nothing has changed], HTTP 1.1, even on a dial-up line, does dramatically better than 1.0. In our tests, we saw about a factor of four improvement for the cache validation tests. So it depends what you're doing. For other network environments, we do just a lot better in general. We do a factor of two or more better. For example, going between California [at the Lawrence Berkeley Lab] and MIT, we got nearly a factor of two improvement in the first-time retrieval tests and a factor of eight in the cache valid
ation [compared to HTTP 1.0]. And then on our local Internet tests, we got a factor of about two for retrieving and a factor of two on cache validation. So HTTP 1.1 will make a significant difference in people's perception of the Internet while saving many useless overhead packets on the network.
Another feature of HTTP 1.1 that would help dialup users (if content providers deploy it widely) is data compression. HTTP 1.1 has facilities for compressing HTML or other uncompressed content that is more efficient than the data compression found in modems.
BYTE:
What needs to get updated to support HTTP 1.1?
Gettys:
Servers and browsers. The major vendors are all implementing things right now. There is some HTTP 1.1 software which has started beta test over the last few months. The Apache Web server, although it's not a commercial product, does represent over 40 percent of the Web servers on the Internet, has been beta testing of HTTP 1.1 now for
several months. I know IBM has an announced product, and you should talk to Netscape and Microsoft about what their plans are for HTTP 1.1 [editors note -- look for a brief survey of HTTP 1.1 product support in the June 1997 issue of BYTE].
BYTE:
Do you see WebNFS or CIFS at all overlapping with HTTP 1.1?
Gettys:
I think it's perfectly fine to want to be able to access files in a file system via the Web [which is one of the things that WebNFS and CIFS let you do]. But the Web gives you additional semantics that most people want, like potentially supporting different [spoken] languages in a good way, where you'll get a different document, depending on what language you ask for. That's something a file system plain doesn't do. In the Web protocols, you can express preference for what language you speak. A server can deliver a different document to you, depending on what language preference you set [e.g., Spanish or German]. Having something which s
upports people's needs, like what languages they speak, is fundamentally interesting. And Web protocols know how to do that, and file system protocols don't, and that's just an example.
There are other areas, such as long term caching, that HTTP enables and that file protocols typically don't do. HTTP 1.1 and WebNFS is not an either or situation. On the Web, you can find all sorts of protocols in use today. For example, FTP is in widespread use in the Web. So WebNFS is just another one of those access protocols. HTTP 1.1's purpose is for hypertext transfer, and the requirements there have as much to do around social issues such as languages and the like as anything else, that other protocols have not addressed at all.
BYTE:
Is there a timeframe as to when this will be widely adopted?
Gettys:
My gut feeling is that products will begin to ship in significant quantities sometime this summer. And you'll see widespread deployment starting this
summer and continuing into the year after. I think one of the interesting thing about this paper is that it shows end users will have an incentive to upgrade, they will see observedly better performance. Our question was will users have an incentive to actually deploy HTTP 1.1 and the answer appears to be yes. The end user gets better performance, the Internet gets much better behavior out of HTTP 1.1, so a lot of the congestion problems should diminish a whole lot. And Web bureau vendors should be able to serve more loads for the same amount of CPU time, and get a little better bandwidth usage.
For more information
on HTTP 1.1, see
http://www.w3.org/pub/WWW/Protocols/HTTP/Performance/
photo_link (29 Kbytes)
