I keep coming across certain terms used in the Apache settings. While trying to understand the various discussions and Apache’s docs, I need some help figuring out what some of these terms mean:
- What is a Client?
- What is the difference between a client and a child process? Are they the same?
- If
MaxClient = 255, does it mean that Apache will process up to 255 page loads in parallel and the rest are queued? - When is a
KeepAliverequest used? - What is the relationship between a child process and the request of this child process?
First, note that these answers apply either to Apache 1.x, or Apache 2.x only when using the prefork mode.
The machine that opens an HTTP connection and sends a request.
No, they are not the same. An Apache child can handle one request/client at a time, but when that one is finished, the same child can handle a new one.
Yes.
It is used to keep the HTTP connection open in case the client wants to issue another request. A client can remain connected, for example, to download images and such that are associated with a web page. Having KeepAlive On improves performance for the client (user), but having it off reduces memory usage by the server. It is a trade-off.
The Apache process launches a bunch of children. When a request comes in, the parent (root) process picks an idle child to handle that request. When that request is finished, the child is now idle and can handle a new request.