PHPとWebサイトの仕組みについて
はじめに
まず初めにエムアールピーではWebコンテンツを主体とした事業を行っています。今回はWebアプリケーションの開発で幅広く使用されているPHP言語について説明いたします。
PHPは環境構築から処理の実行までの作業が比較的容易な言語ですが自由度が高く採用実績の高さから弊社での開発でもPHPを使用している為、今回のテーマとして挙げました。弊社でもPHPを使用して以下のようなサイトの開発実績があります。(弊社サイトの事業紹介ページ内、実績でも紹介しています。)
・自治体主催 地域住民向けSNS
・グローバルECサイト開発
【そもそもPHPとはなに?】
Webサイトには大きく「静的ページ(クライアントサイド)」と「動的ページ(サーバサイド)」に分かれており、PHP(Hypertext Preprocessor)は「サーバ側(サーバサイド)での動作が主になるプログラムが開発可能なスクリプト言語」となります。
- スクリプト言語
本来、人間が理解できるコードをコンピュータが理解できるコードに変換する「コンパイル」作業がありますが、PHPはプログラムを機械語に翻訳しながら実行する為、開発者がコンパイル作業をする必要ないプログラムの言語でこれらの処理の事をインタプリタ型言語とも言われています。
- 静的ページ
一度表示されたホームページの画面を、それ以上ユーザーの操作によって変化させることが出来ないページのことです。(HTML、CSSのみで構成)
- 動的ページ
ユーザーの入力(下記例にある掲示板サイトのコメントの送信、ECサイトでのカートに商品を入れるなど)によって変化させることが出来るページです。(PHPやJavaScriptなどで構成)
【PHPのメリット・デメリット】
最初に少しお話しましたが他言語に比べPHPは環境構築から処理の実行までの作業が比較的容易な言語です。
その為プログラム初心者の人でも情報が比較的容易に技術の取得が可能で、マイナーな言語に比べ人口が多い為情報が多く出回っている利点もあります。またWebサイト開発に特化した言語なので需要も高いです。
デメリットとしては、Web開発に特化している為、それ以外の開発(Java等で開発できるAndroidアプリ、iPhoneアプリの開発等)がかなり不向きの為、Web開発以外の開発をしたい人にはお勧めできない事です。
【具体的にPHPで何ができるの?】
例としては以下のような開発や機能の実装に使用されています。
・ECサイトの制作
・SNSサイトの制作
・グループウェアシステムの開発
・予約システムの実装
・お問い合わせフォームの実装
・検索機能
など
【どのような仕組みなの?】
ではPHPがWebサイトでどのような役割を果たしているのかを下の図で説明します。
私たちがWebサイト(動的ページ)にアクセスするまでの間にシステムでは以下の処理が行われています。
(1) ユーザーがWebサーバにリクエストを送る。
(2) Webサーバがユーザーのリクエストに適した処理をPHPに割り振る。
(3) PHPで必要な処理を実行し、Webサーバに返却する。必要に応じてデータベースサーバから必要なデータを取り出す。
(4) PHPの処理終了後、処理結果をWebサーバに返却する。
(5) Webサーバからユーザーにリクエストに沿った情報を返却する。
- ユーザー
私たちがWebサイトにアクセスする際に必要なURLをWebサーバに送信します。URLはHTTP(HyperText Transfer Protocol)にてWebサーバにリクエストを送ります。HTTPは一言で言うと「WebブラウザとWebサーバでのやり取りに使用されるプロトコル(約束事)」です。
- Webサーバ
PHPはユーザーからの要求をサーバ側で行うスクリプト言語です。ユーザーから受け取ったリクエストをPHPに送り、実行結果をユーザーに返却する役割を持っています。
- PHP
プログラムを実行し、Webサーバからのリクエストに沿った実行結果を返却しています。
- データベースサーバ
データを保管する為に使用されます開発に必ず必要というわけでは無いですが大量のデータを高速で処理する上では欠かせない存在となります。
最後に
ほんの一部となりますが簡単な流れについて説明しました。私たちが何気なく使用しているWebサイトでも内部ではこのような処理が行われています。
Webアプリケーション制作に興味がある場合はご自宅のPCでも環境を整えれば開発が可能となりますので一度調べてみてはいかがでしょうか。
Discussion