クライアントサイドとサーバーサイド
Web ブラウザは、単に HTML を受け取ってレンダリングしているだけ
単純な Web サイトは、HTML, CSS, JavaScript 等を使ってプログラミングをしているように見えるが、これはあくまでクライアントサイドでのことだけであって、クライアントの外側には影響を与えない。その点では非常に簡素なものだといえる。
基本的にはこういったサイトは、サーバーから受け取った HTML をレンダリングしているだけである。
- クライアント = Web ブラウザは、サーバーサイドへ URL をもとにリクエストをし、
- (サーバーサイドは HTML をクライアントへ返し)、
- クライアントは HTML を受取り、レンダリングする。
PayPal と連携して商品を買ったりするサイトを作るためには、サーバーサイドのプログラミングをする必要がある
しかし、例えば PayPal を介して、商品を購入できるサイトは、サーバーサイドのプログラミングがされている。何故なら、PayPal の決済システムとの連携や、在庫の管理用のデータベースへの記録と参照といったシステムは、クライアントサイドの外側 = サーバーサイドにあるからだ。
クライアントサイドにない、サーバーサイドの機能をプログラミングするのが、サーバーサイドプログラミングだ。
他にも次のようなケースはサーバーサイドプログラミングが必要
- WordPress ブラウザで記事をかいて、公開すると、そのデータがサーバーサイドにあるデーターベースに記録される。(=サーバーサイド)
- 問い合わせフォーム ユーザーが問い合わせた内容が、データーベースに記録され(=サーバーサイド) 、各担当部署にメールで送られる(=サーバーサイド)
- Twitter の Fav や Facebook のいいね!などは、押した数がサーバーサイドにあるデータベースに記録され、その数を参照している
Node.js は JavaScript でサーバーサイドの機能も書けるランタイム環境
サーバーサイドのプログラミングをすることができる言語は多くあるが、その中の一つが Node.js で、フロントエンドエンジニアが慣れ親しんでいる JavaScript で書けるのが一つの特徴である。(とはいえ、クライアントサイドで書いている JavaScript そのもので書けるわけではない。変数の宣言、条件分岐、関数の宣言や実行の方法が同じだけで、感覚的にはほとんど別の言語といってもいいかもしれない。)