たとえるなら
レストランの客席側です。メニューを見て「これください」と注文するのがクライアント、注文を受けて料理を作るのがサーバー(厨房)。インターネットの世界は、ほぼこの「注文と提供」の関係でできています。
もう少しくわしく
クライアント(client)は「依頼する側」という意味で、サーバーにお願い(リクエスト)を送る側の機器やソフトを指します。あなたがスマホでWebサイトを開くとき、スマホの中のブラウザがクライアントとして「このページのデータをください」とサーバーにお願いし、返ってきたデータを画面に表示しています。「クライアント」は役割を指す呼び名で、機械の種類を表す言葉ではありません。
クライアントにあたるものは、ブラウザだけではありません。メールを受け取るメールソフト、スマホの各種アプリ、社内システム用に配られる専用ソフト——どれもサーバーにお願いを送る側なので、まとめてクライアントと呼ばれます。現場では「クライアントアプリ」「クライアント側」といった言い方で、利用者の手元で動いているものを指すことが多いです。
IT業界では、この言葉にもうひとつの意味があります。商談や打ち合わせで言う「クライアント」は、お客さま・発注元の会社のことです。「クライアントの要望をまとめる」はこちらの意味で、技術の話をしているのか取引先の話をしているのかで聞き分けます。反対側の言葉であるサーバーとの関係も、機械の種類ではなく役割の呼び名だと覚えておけば混乱しません。
設計のときに必ず出てくるのが、「その処理はクライアント側か、サーバー側か」という分担の話です。画面の見た目や入力の簡単なチェックは手元で素早く行い、データの保管や本当に正しいかの最終確認はサーバーで行う、というのが基本の考え方です。手元の処理は利用者が書き換えられるため、お金や権限にかかわる判断を手元だけに任せることはしません。
落とし穴の代表は、クライアント側に原因があるのにシステム全体の不具合だと思いこむことです。使っているブラウザやアプリが古い、拡張機能が邪魔をしている、社内の通信制限で外につながっていない——どれも手元の環境の話なので、サーバー側をいくら調べても見つかりません。「自分だけか、ほかの人も同じか」を最初に確かめるのが遠回りを防ぐコツです。
新人の方は、報告のときに自分の環境を添える習慣をつけてください。端末の種類、ブラウザやアプリの名前、社内か社外のネットワークか——この3つがあるだけで、クライアント側の問題かどうかの見当がつきます。会話の中で「クライアント」が出てきて、機器の話かお客さまの話か迷ったら、その場で聞いて構いません。「ほかの人の端末では出ません」の一言が添えられていれば、調べる範囲は一気にせばまります。
補足すると、この分担の形はクライアントサーバー方式と呼ばれ、Webの基本構造になっています。表示や操作は手元、保管や重い処理はサーバーと分けることで、たくさんの人が同じサービスを同時に使えます。近年は手元で動く処理が増え、クライアント側の作りこみを専門に担当する職種も一般的になりました。この担当をフロントエンドと呼ぶ現場が多いです。
現場での使われ方
「その処理はクライアント側でやってます」
サーバーではなく、利用者のブラウザやアプリの中で処理しているという意味です。「フロント側」とも言います。手元で動く分だけ反応は速くなりますが、書き換えられる前提で設計します。
「明日はクライアントとの定例です」
こちらはビジネスの意味で、発注元のお客さまとの定期ミーティングを指します。同じ会話の中で機器の意味と混ざることもあるので、文脈で聞き分けるのが基本です。
「クライアント側のチェックだけだと危ないので、サーバー側でも見ましょう」
手元の確認は利用者が回避できてしまうため、大事な判断は提供側でもう一度確かめようという指摘です。金額や権限がからむ機能では必ず出てくる話です。
「お使いのクライアントアプリを最新にしてもらえますか」
手元のソフトが古いままだと、直したはずの不具合が残っていたり、新しい機能が使えなかったりします。問い合わせの初期対応でよく案内される確認事項です。
よくある質問
クライアントとブラウザは同じものですか?
ブラウザはクライアントの代表例です。クライアントは「お願いする側」という役割の総称で、ブラウザのほかにスマホアプリ、メールソフト、社内用の専用ソフトなども含まれます。つまりブラウザはクライアントの一種、という関係になります。どれも「サーバーに頼む側」という共通点で括られています。
なぜ同じ「クライアント」で顧客の意味にもなるのですか?
英語のclientがもともと「依頼する人」を意味するためです。サーバーに依頼する機器も、仕事を依頼するお客さまも、同じ言葉で表されます。IT企業ではどちらの意味も日常的に使われるので、技術の話か商談の話かで判断してください。どちらの意味かは、話の流れを見ればたいてい判断できます。
クライアント側とサーバー側は、どう使い分けるのですか?
反応の速さが大事な見た目や入力の補助は手元、データの保管や正しさの最終確認はサーバー側が基本です。手元の処理は利用者が書き換えられるため、金額や権限にかかわる判断は必ずサーバー側でも確かめます。どこまで手元でやるかは現場の方針によって違います。
「クライアント側の問題です」と言われたら何を確認すればいいですか?
端末の種類、ブラウザやアプリの名前と新しさ、拡張機能の有無、つないでいるネットワークの4つを確認します。ほかの端末や別のネットワークで試して症状が消えるなら、手元の環境が原因だと判断できます。結果を添えて再度相談すると話が早く進みます。原因が手元にあるとわかれば、対処もぐっと早くなります。
クライアントサーバー方式とは何ですか?
お願いする側と提供する側で役割を分ける、システムの基本的な形のことです。データを一か所にまとめて置けるので、どの端末から見ても同じ内容が見え、たくさんの人が同時に使えます。いま私たちが使っているWebサービスは、ほぼこの形でできています。手元の端末が壊れてもデータは残る、という安心感もこの形のおかげです。