What is the difference between:
Header set Connection keep-alive
and
KeepAlive on
in Apache htaccess?
What code and options we have to put in the header of a php file? And what in htaccess file?
If you simply set the header Connection: keep-alive
it isn't going to be enough. The client will think it's a keep-alive connection but the server may decide to close the connection. Additionally, the client doesn't know how many requests can be served through the keep-alive connection. There's an additional header that is used to track requests sent through a keep-alive connection that looks like this:
Keep-Alive: timeout=15, max=100
which tells the client that it can send up to 100 more requests on the current keep-alive connection (and it counts down as you continue to use said keep-alive connection) and that the client has 15 seconds to make any additioanl requests before the connection is closed.
Simply using the header isn't sufficient to establish a keep alive connection because the server needs to negotiate it. Both ends need to know about the keep-alive and both ends need to do proper accounting. You need to tell apache to handle keep-alive on its end and simply sending the header isn't going to do that. You need to turn keep-alive on using the second directive:
KeepAlive on
And additionally, you can tweak the keep-alive mechanism with directives like:
KeepAliveTimeout 15
MaxKeepAliveRequests 100