When a keep-alive request is granted the established socket is kept open
after each keep-alive response. Note that a keep-alive response is only
possible when the response includes a content-length header.
request 1 |
request 2 |
request 3 |
request 4 |
20 bytes |
120 bytes |
60 bytes |
?? bytes |
|
You cannot rely on the keep-alive feature for any sort of application-level
session state maintenance.
Using Output Buffering to get content-length
<?php
ob_start();
echo "Your Data";
$l = ob_get_length();
Header("Content-length: $l");
ob_end_flush();
?>
You will have to weigh the trade-off between the extra cpu and memory that
output buffering takes against the increased effciency of being able to use keep-alive
connections for your dynamic pages.