Webサーバーの仕組み【実際にどうなってるの?】初学者用


Webサーバーの仕組み、知りたいですよね。とりわけ、PHPやRubyなどを使う人にとって必須のことなので学んでおきましょう。私自身、勉強してまとめてみました!

http通信の仕組み

まずは通信について、つまりhttpの流れについて復習してみましょう。下記のことが行われています。

  • パソコンのブラウザからURLをクリックもしくはタイピング(リクエスト)
  • URLに対応したものをWebサーバーはパソコンに返す(レスポンス)

サービスを受けたい客(クライアント)からのお願いを、サービスを提供するもの(サーバー)が応えるという形でhttp通信は行われています。

少し難しい言葉で説明すると...

HTTP(決まりごと)を処理できるプログラムがWebサーバーというわけです。アプリケーションを作ってもサーバーがなければ公開ができないので、絶対に必要なことですね。

Webサーバー(常駐プログラム)の中で何が起きているか

サーバーをPC内に準備したことを考えてみましょう。

サーバー用のPCに「Webサーバー・ミドルウェア」を用意します。WebサーバーとしてApache(アパッチ)もしくはNginx(エンジンエックス)を使います。

MAMPというサービスには、Apacheが入っています。PHPをローカル開発するには必須ですね。簡単にインストールして使えるのでおすすめ。

Apacheとは

  • オープンソースなもの
  • 利用の際の制限がほぼなし
  • PHPはApacheと相性がいい

Nginxとは

  • 発音を間違えそう...
  • 最近人気が出ている
  • 並行処理性能が高い
  • メモリ消費が少ない。

PHPで主に使うApacheについて知ろう!

Apacheは、リクエストされたURLに対応したものをレスポンスとして返すのが仕事です。

例えばhttp://ドメイン/index.phpというリクエストが来たら、Apacheはindex.phpを探して、レスポンスとして返してくれます。

もし存在しないものを要求されたら、404 Not Foundエラーを返してくれます。要求に応えてくれる賢いロボットのよう!

Apacheの設定ファイルについて

https.confがApacheの設定ファイルです。

vi /etc/httpd/conf/httpd.conf

この中のDocumentRootにあります。DocumentRootの下にあるものをレスポンスとして返してくれます。

リダイレクトの設定やphpの設定を変更したい場合は、以下の二つのうち一つを使います。

  • httpd.conf
  • .htaccess

リダイレクト(転送処理)について

Apacheは、サーバー内にあるものを返すだけでなく、他のサーバーにリダイレクトすることもできます。古いサーバーから新しいサーバーにサービスが移ったという時に働いてくれるので、助かりますね。

Apacheの設定ファイル
    リダイレクトの設定やphpの設定を変更したい場合...

    1)httpd.conf
    2).htaccess

まとめ

「Webサーバーは毎日生活する際に、大変お世話になっているものだ」ということがわかりましたね。Webエンジニアを目指す人は必ず知っておくべきことなので覚えておきましょう!

私はまだまだ知らないことだらけなので、間違っていたら教えてくださいませ。(コメントを送ってくださる方、いつもありがとうございます!)