絵でわかるWebプログラミング入門

サーバとクライアントとプログラミング

Webプログラミング入門にあたり、JavaScriptやPHPやら出てきて混乱している入門者がいると思います。

プログラミング言語には他にも、C、C++、C#、Perl、Python、Ruby、などが存在し、wikipediaのプログラミング言語一覧のページにはおよそ300行の言語が並んでいます。


これらのプログラミング言語にはそれぞれの特徴があり、それぞれ適した場面で使い分けられています。


このページでは、今まで学習したJavaScriptとPHPはどういったプログラミング言語なのか、またどういった違いがあるのかなどについて確認しておきましょう。

サーバとクライアントとは

コンピュータ間のネットワークの働きを考えるとき、サーバクライアントという考え方があります。

サーバというのは何らかのサービスを提供する側のコンピュータを指す言葉で、クライアントとはサーバのサービスを受ける側のコンピュータを指す言葉です。

サービスにはメールの送受信やウェブページの応答などがあり、このサービスを提供するコンピュータをそれぞれメールサーバやウェブサーバなどと呼びます。ほかにもデータベースサーバやプリンタサーバ、DNSサーバやプロキシサーバなどがあります。


サーバやクライアントという区別は役割の区別であって、別にコンピュータが特別という意味ではありません。例えば自宅の不要なパソコンにファイルの共有設定をして、他のコンピュータからのアクセスを許可しておけばファイルサーバとなり、アクセスする側のコンピュータはクライアントとなります。

このような関係から、基本的にはサーバとクライアントは1対多の関係になるのが普通です。


ウェブサーバというのはウェブページを提供するコンピュータを指しますが、狭義ではインストールされているWebサーバアプリを指します。有名なのはApacheです。

ウェブページのやり取りにおいてクライアントとなるのはWebページにアクセスするコンピュータですが、狭義ではウェブブラウザなどを指します。有名なブラウザはChromeInternet ExplorerFirefoxなどです。

JavaScriptとPHPとクライアントとサーバ

JavaScriptとPHPは、いずれも変数や配列を扱い、if文やfor文などを使ってデータを操作できます。基本的なプログラミングが行えるという点でこの二つの言語は特に違いはありません。


では何が違うのかというと、JavaScriptとPHPではプログラムを動かせる場所が違うのです。

JavaScriptはクライアントであるウェブブラウザ上で動かすことができ、PHPはサーバであるウェブサーバ上で動かすことができます。


JavaScriptがウェブブラウザ上で動くのは、JavaScriptの実行環境がウェブブラウザに搭載されているからです。ウェブブラウザ上で動くというのはJavaScriptの大きな特徴のひとつで、プログラミングにおいてもDOMを扱うのが得意で、ブラウザとの連携に特化しています。


一方で、サーバサイドのスクリプトであるPHPは、ウェブサーバとの連携に特化しており、またデータベースを扱いやすいなどの特徴があります。


なお、JavaScriptもPHPも実行環境があれば、役割に関係なく動かすことはできます。ブラウザでPHPを実行するのは無理ですが、例えばJavaScriptをサーバ側で動かすことは可能です。


このように、プログラムがそれぞれどこで動くのか、クライアント側なのかサーバ側なのか、ということを理解しておくと、例えば「PHPでJavaScriptを出力する」と聞いても混乱しないと思います。