---
layout: "@/layouts/MarkdownLayout.astro"
---
import Toc from "../../components/Toc.astro";
export const title = "PHPとWebサーバー";
# {title}
## TOC
## Webサーバーとは?
あなたがWebブラウザでWebサイトを閲覧するとき、あなたのコンピュータと「Webサーバー」と呼ばれる別のコンピュータが通信を行っています。
Webサーバーはあなたが要求したものを解釈し、適切な情報を送り返す役割を持っています。
そこ対してなにかページを要求すると、基本的にはそのページのHTMLファイルを送り返します。
ところでWebサーバーでは、なにかしらのルールに基づいて送り返す情報を変化させるようにプログラムが組まれていることがあります。
例えばログイン情報がなければ、本来送り返すHTMLではないものを送り返す判断をすることもあります。
このWebサーバー側で動作するプログラムを「サーバーサイドプログラム」や、「バックエンドプログラム」と呼ぶことがあります。
## Webサーバーの目的
HTMLを表示するだけであれば、HTML、CSS、JavaScriptだけで完結します。
ではなぜWebサーバーが必要なのでしょうか?
もちろん不特定多数の人に作成したWebページを公開するためには、Webサーバーが必要です。
これはわかりやすい目的の一つです。
ところでブラウザでWebページを閲覧するとき、あなたはいま表示されているHTMLやJavaScriptのソースコードを直接見ることができます。
そのページが例えば、クレジットカードを扱うようなページであったとき、その扱いを見ることができてしまうとどうでしょうか?
そこから他人の情報を引用するためのコードが含まれていたらどうでしょうか?
Webサーバーはこういった、本来見せたくない情報を隠すためにも利用されます。
## PHPとは?
PHPは、主にサーバーサイドプログラムを作成するためのスクリプト言語です。
スクリプト言語とは、phpがそのソースコードを1行ずつ解釈しながら実行していく言語のことを指します。
この特性はプログラムの変更を即座に反映することができます。
また、なにかエラーが発生するときに、そこまでの行は実行されているために検証がしやすいという利点もあります。
PHPは見た目に即時反映されることが学習コストを下げるため、初心者にとって学びやすい言語とされています。
このドキュメントでは取り扱っていませんが、`Apache`や`Nginx`といったWebサーバーソフトウェアからPHPを動作させ、処理の結果をWebブラウザに送り返す仕組みが一般的です。