HTTP problem or Mosaic problem?

David Berger (dvberger@snake.CS.Berkeley.EDU)
Tue, 14 Jun 1994 16:32:41 -0700

I'm a graduate student at University of California at Berkeley in the
department of Computer Science working in the multimedia group. As
many of you are aware, we have developed and released the CMPlayer
which plays MPEG movies (both audio and video) across a network.

We are interested in interfacing the CMPlayer with NCSA Mosaic. In
some of the preliminary work, we've studied HTTP and, of course,
surveyed similar efforts across the Internet.

We see a problem in either Mosaic or HTTP. In Mosaic, an object that
is fetched by clicking on a hyperlink is done so synchronously, e.g.
control does not return to the client until the entire transaction is
completed. A simple example is that you don't see your HTML page
displayed until the entire page has been received. With an MPEG
movie, you cannot watch it until the entire movie is on your local
machine. We feel that this is bad for a variety of reasons. First,
useful work can be done with partial data. Second, you run the risk
of not being able to fit a very large object in your storage
hierarchy. Clearly this last point is somewhat forward looking;
however we already see several megabyte mpeg movies available.

My question: is the "synchronous" nature of Mosaic because HTTP is
meant to be implemented this way or just a consequence of the way this
web browser was implemented? On page 2 of the draft HTTP
specification, you see the four steps of a transaction, e.g.
connection/request/response/close. There appears to be no reason that
the browser cannot begin to do useful work during the response step.
Has an intent been clearly specified for what is supposed to happen or
is it open to interpretation?

Obviously, we advocate that work begin during the response step and a
pipelined method of using data be used.

With respect to our work, we have two approaches that we will be

1)As soon as data begins arriving, an external viewer can be spawned
to use the data. This would require modifying Mosaic itself.
(essentially what is described above)

2)Have the web server spawn a process which deals with the
communication and sending of the information to a similar process on
the client machine.

We welcome all comments on this work and suggestions,

David Berger
Graduate Student Researcher
Department of Computer Science
University of California at Berkeley