IT基礎

サーバー

初級

読み方:サーバー|英語:Server

データやサービスを提供するコンピューターで、ウェブサイトのファイルはサーバーに置かれているよ。

やさしい説明

サーバーとは、他のコンピューター(クライアント)からのリクエストに応答するコンピューターです。24時間動き続けて、Webサイトやデータを提供します。

レストランに例えると、サーバーは「キッチン」です。お客さん(ブラウザ)が注文(リクエスト)すると、料理(データ)を作って返します。

自分のPCもサーバーにできますが、通常はVercel、AWS、さくらサーバーなどのクラウドサービスを使います。

図解

クライアントとサーバーの通信

具体例・使い方

  • ウェブサーバー — ウェブサイトのHTMLやCSSを配信する
  • メールサーバー — メールの送受信を管理する
  • GitHub — コードを保存・共有するサーバー

よくある疑問

Q: サーバーは特別なコンピューター?

A: 基本的には普通のコンピューターと同じですが、24時間稼働し続けるように設計されています。

関連用語

  • クライアント — サーバーにリクエストを送る側(ブラウザなど)
  • HTTP — クライアントとサーバーが通信するときのルール
  • API — サーバーが提供する「データの窓口」

サーバーの種類

種類 役割 代表例
WebサーバーHTMLファイルをブラウザに送るNginx, Apache
アプリケーションサーバープログラムを実行して応答するNode.js, Django
データベースサーバーデータの保存・検索・更新MySQL, PostgreSQL

Node.jsでサーバーを作る

// 最小限のWebサーバー(Node.js)
const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html' });
  res.end('<h1>Hello, Server!</h1>');
});

server.listen(3000, () => {
  console.log('サーバー起動: http://localhost:3000');
});

// → ブラウザで http://localhost:3000 を開くと表示される

クライアントとサーバーの関係:

・クライアント(ブラウザ):「このページをください」とリクエストを送る

・サーバー:リクエストを受け取り、HTMLやデータを返す(レスポンス)

中高生向け:GitHub PagesやVercelを使えば、自分でサーバーを用意しなくてもWebサイトを公開できます。サーバーの仕組みを学ぶのは、APIやログイン機能を作りたくなってからでOKです。

ローカルサーバーとリモートサーバー

ローカルサーバー(localhost):自分のPC上で動くサーバー。開発中に使う。http://localhost:3000 でアクセス。外部からはアクセスできない。

リモートサーバー:インターネット上のサーバー。本番環境。世界中からアクセスできる。AWS、Vercel、Heroku等で提供。

# ローカルサーバーの起動例
# VS Code Live Server(HTMLファイル用)
# → 右クリック → Open with Live Server

# Node.js開発サーバー
npm run dev  # → http://localhost:3000

# Python簡易サーバー
python -m http.server 8000  # → http://localhost:8000

ポート番号:サーバーの「部屋番号」。3000番、8080番等。1つのPCで複数のサーバーを同時に動かせる(ポートが違えばOK)。

まとめ

サーバーは「リクエストを受けてレスポンスを返すコンピュータ」です。Webサーバー、アプリケーションサーバー、データベースサーバーの3種類が基本。開発中はlocalhost(ローカルサーバー)を使い、公開時はVercelやAWS等のリモートサーバーにデプロイします。中高生はGitHub PagesやVercelを使えば、サーバーの知識なしでもWebサイトを公開できます。

📖 関連レッスン

レッスンを見る →

関連ブログ記事

❓ 関連するQ&A