パソコンあるいはインターネットの世界では、「クライアント」と「サーバ」といった言葉がよく出てきます。 これらをそれぞれ一言で説明すると、クライアントは「処理を依頼する側」、サーバは「サービスを提供する側」と表されます。 私達がインターネットを使って色々なサイトを巡って情報を得る事に当てはめると、私達のPC がクライアントであり、情報を提供しているPC がサーバなのです。 サーバには、Web サービスを提供する「Web サーバ」、メールサービスを提供する「メールサーバ」、名前解決を行う「DNS サーバ」など様々な種類のサーバがあります。 また、1つのPC がいくつものサービスを兼ねているものもあります。 ここでは、Web サーバを例にクライアントとサーバの関について説明します。
Web サーバは、Web ブラウザからの要求に対してHTML などのデータを返します。 この間の通信はHTTP というプロトコルで行われます。 Web サーバは、HTML データのみでなく、画像や動画などの多くの情報を蓄積していて、要求に応じてこれらの情報もクライアントへ送信します。 また、CGI のような動的なプログラムに関しては、クライアントの要求に応じてサーバで処理を行い、結果をクライアントに送信します。
クライアントからの要求を解析し、要求されたデータをブラウザへ返すまでの処理を行っているのが「http デーモン」と呼ばれるものです。 現在、最も普及しているhttp デーモンは「Apache」と呼ばれるデーモンです。 デーモンはWeb ブラウザからの要求を受け取ると、子プロセスに要求を実行させ、子プロセスは処理結果をWeb ブラウザに返します。 CGI の場合には、処理を実行して結果をWeb ブラウザに返します。