Server-Push

When we wish to update the screen of the participant without the participant's intervention and after an unknown time (ex-ante), we need ``Server-Push''.

Since server-push requires headers, which differ from those that are sent by the server usually, we have to ask the server not to parse our headers. Traditionally this requires that the name of the script starts with "nph-".

Technically the www-server sends a multi-part page to the client. The header of this page identifies it as multipart/x-mixed-replace and also specifies a boundary. This boundary separates the different pages from each other.

Example:

HTTP/1.0 200 OK
Server: Apache/1.2b6
MIME-Version: 1.0
Content-Type: multipart/x-mixed-replace;boundary=EOM

--EOM
Content-Type: text/html

Here is some text
--EOM
Content-Type: text/html

Here is some more text
--EOM
In the above example the client would first display the text
Here is some text
and then immediately
Here is some more text

Things become more interesting if you first send

HTTP/1.0 200 OK
Server: Apache/1.2b6
MIME-Version: 1.0
Content-Type: multipart/x-mixed-replace;boundary=EOM

--EOM
Content-Type: text/html

Here is some text
--EOM
Now the client displays
Here is some text
and waits. After a little while you can send
Content-Type: text/html

Here is some more text
--EOM
Now the client displays a new page that contains
Here is some more text

Oliver Kirchkamp 2013-04-15