サーバーサイド言語とは?サーバーの中で動くプログラム

サーバーの中で、プログラムが動く。寅次郎先生と記事の内容を表すイラスト。
確認日:2026年10月22日

Webサイトの多くは、サーバーの中でプログラムを動かして、開いた人に合わせたページを作っています。こうしたプログラムを書く言語が、サーバーサイド言語です。

本記事では、サーバーの中でプログラムが動いて結果だけが届く仕組みと、得意な仕事、ブラウザーで動くクライアントサイド言語との違いを解説します。

サーバーサイド言語とは

サーバーサイド言語は、サーバーの機械の中で動かすプログラムの言語です。PHP、Python、Ruby、C#のほか、JavaScriptも使えます。

サーバーの機械の中で、Webサーバーに頼まれたPHP本体が、PHPのスクリプトを読み込んで実行し、データベースに問い合わせてHTMLを作る。ブラウザーに届くのは作られたHTMLだけで、スクリプトは届かないことを示す図

PHPを例にすると、ブラウザーからリクエストが届いたWebサーバーは、PHP本体に処理を頼みます。PHP本体はスクリプトを読み込んで実行し、データベースから情報を受け取ってHTMLを組み立てる流れです。

ブラウザーに届くのは、こうして作られたHTMLに限られます。スクリプトそのものはサーバーの機械の中に残るので、利用者はプログラムの中身を見られません。ダウンロードされてから動くクライアントサイドのコードとの、大きな違いです。

ブラウザーとサーバーの役割分担や、静的なページと動的なページの違いは、クライアントサーバーシステムとは?で解説しています。

PHPで見る、言語と実行するプログラムの関係

サーバーサイドのプログラムは、言語を実行するためのプログラムがサーバーの機械に入っていて、はじめて動きます。PHPを例に、その関係を見ていきましょう。PHPという名前は、次の3つを指すときに使われるので注意が必要です。

呼び方 中身
言語としてのPHP プログラムを書くための言葉(文法)の名前
PHPのスクリプト PHPで書いたプログラム。index.php のように .php で終わるファイルとして、サーバーの機械の中に置く
PHP本体 スクリプトを読み込み、書かれた手順どおりに実行するプログラム。PHPの開発チームが配っていて、サーバーの機械にインストールして使う

PHPの開発チームは、PHP本体のことを「PHPインタープリター(The PHP Interpreter)」と呼んでいます。インタープリターは、人が書いたスクリプトを読み込み、書かれた内容を解釈しながら実行するプログラムのことです。

スクリプトを実行しているのは、WindowsやLinuxのようなOSではありません。PHP本体が実行しています。OSはPHPという言語を理解しないので、.php のファイルをそのままでは実行できません。OSが動かしているのはPHP本体というプログラムのほうで、そのPHP本体がスクリプトを読み込んで、書かれた手順どおりに動きます。Windows向けのPHP本体は、php.exe などのファイルとして配られているので、プログラムであることが分かりやすいでしょう。

つまり、スクリプトだけを置いても、Webページは作れません。PHPの公式マニュアルも、PHPでWebページを作るには、PHP本体、Webサーバー、ブラウザーの3つが必要だと説明しているとおりです。

得意な仕事

サーバーサイドのコードが受け持つのは、リクエストに応じて、どの内容を返すかを選ぶ仕事です。代表的なものを挙げます。

  • データベースに記事や商品の情報を保存し、必要なものを取り出してページを作る
  • ログインした人だけに会員向けのページを見せ、見てよい情報だけを返す
  • ログインしたままの状態を保つため、利用者ごとの情報を覚えておく
  • 注文の確認などを、メールで知らせる

どれも、情報をサーバーの1か所にまとめて持っているからこそできる仕事です。入力された内容が正しいかを最終的に確かめるのも、サーバーの側の役目になります。

クライアントサイド言語との違い

サーバーサイド言語とクライアントサイド言語は、プログラムを動かす場所と、受け持つ仕事で分かれています。

クライアントサイド サーバーサイド
動く場所 利用者のパソコンのブラウザー サーバーの機械
主な役目 届いたページの見た目と動きをよくする どの内容を返すかを選び、作って返す
ブラウザーに届くもの コードそのもの コードを動かした結果
OSやファイル ほとんど触れられない サーバーのOSの機能を使える
主な言語 JavaScript PHP、Python、Ruby、C#、JavaScriptなど

クライアントサイドの言語がほぼJavaScriptに限られるのに対して、サーバーサイドはさまざまな言語から選べます。サーバーの機械にその言語を実行するプログラムを入れておけば、どの言語でも動かせるためです。ブラウザーの中で動くプログラムについては、クライアントサイド言語とは?で解説しました。

同じ言語でも、動かす場所で呼び方が変わる

クライアントサイドとサーバーサイドの呼び分けは、言語の種類ではなく、プログラムを動かす場所で決まります。その例がJavaScriptです。

JavaScriptで書いたコードは、利用者のパソコンのブラウザーが実行すればクライアントサイド、サーバーの機械のNode.jsが実行すればサーバーサイドになることを示す図

JavaScriptは、もともとブラウザーの中で動かす言語でした。Node.jsは、Google Chromeの中核にあるJavaScriptの実行の仕組みを、ブラウザーの外で動かせるようにしたプログラムです。

Node.jsをサーバーの機械に入れれば、JavaScriptで書いたコードがサーバーで動き、サーバーサイドのコードになります。ブラウザー向けにJavaScriptを書いている人が、別の言語を覚えずにサーバーの側も書けるのが利点です。

安全面の注意

サーバーサイドのコードは、サーバーのOSの機能を使えます。ブラウザーの中のように、動ける範囲を区切ってくれる仕組みはありません。

そのため、サーバーサイドの言語や、それを実行するプログラムに不具合があると、被害が大きくなりがちです。外部から届いたリクエストで、サーバー上の情報を読み出されたり、好きな命令を動かされたりするおそれがあります。2026年10月に公表されたPHP本体の脆弱性も、その一例でした。詳しくはPHP2Shellとは?PHPの重大な脆弱性とサイト運営者がやることで解説しています。

参考にした一次情報

本記事は、次の資料をもとに書きました。MDN Web Docsは、ブラウザーのFirefoxを作っているMozillaが公開している、Webの技術の解説資料です。

当サイトが作成した本文はCC BY 4.0です。引用画像は対象外です。Webのしくみの記事の一覧へもどる