The essential simplicity of HTTP has been a major factor in its rapid
adoption, but this very simplicity has become its main drawback; the
next generation of HTTP, dubbed "
HTTP-NG", will
be a replacement for HTTP 1.0 with much higher performance and
adding some extra features needed for use in commercial applications.
It's designed to make it easy to implement the basic functionality
needed by all browsers, whilst making the addition of more
powerful features such as security and authentication much simpler.
The current HTTP 1.0
often causes performance problems on the server side, and on
the network, since it sets up a new connection for every
request. Simon Spero has published a progress report on what
the W3C calls "HTTP Next Generation", or HTTP-NG.
HTTP-NG "divides up the connection [between client and server]
into lots of different channels ...
each object is returned over its own channel."
HTTP-NG allows many different requests to be sent over a single
connection.
These requests are asynchronous - there's no need for
the client to wait for a response before sending out a new request.
The server can also respond to requests in any order it sees fit -
it can even interweave the data from multiple objects,
allowing several images to be transferred in "parallel".
To make these multiple data streams easy to work with,
HTTP-NG sends all its messages and data using a "session layer".
This divides the connection up into lots of different channels.
HTTP-NG sends all control messages (GET requests, meta-information etc)
over a control channel.
Each object is returned over in its own channel.
This also makes redirection much more powerful - for example,
if the object is a video the server can return the meta-information
over the same connection, together with a URL pointing to a dedicated
video transfer protocol that will fetch the data for the relevant
object.
This becomes very important when working with multimedia aware
networking technologies, such as ATM or RSVP.
The HTTP-NG protocol will permit complex data
types such as video to redirect the URL to a video transfer
protocol and only then will the data be fetched for the client.