※2013年出版の本です。PHP初心者の僕にとっては学ぶことだらけなので要約しました。購入ページ→https://www.amazon.co.jp/基礎からのPHP-基礎からシリーズ-西沢-夢路-ebook/dp/B00M939YIU/ref=sr_1_5?__mk_ja_JP=カタカナ&keywords=PHP&qid=1659143084&s=digital-text&sr=1-5
PHPの概要
01Webアプリケーションとは何か
Webページはどうして表示できるのか
Webページは世界中のどこかのWebサーバーの中に保存されている。
サーバーは色々なサービスを提供するコンピューター。
サービスの例:
- Webサーバー:Webページを提供
- SMTPサーバー:メールを送信
- IMAP/POPサーバー:メールを受信
- FTPサーバー:FTPでファイルを送受信
__クライアント__はサービスを受ける側、つまりWebページを見るのに使う一般ユーザーのPCやスマホのこと。
Webブラウザの上にあるアドレスバーにカタカタとURLを入力したり、ハイパーリンクをクリックすると、何が起こるでしょう?
→WebサーバーにWebページを送ってよ!とWebサーバーにお願いできるんです。(HTTPリクエスト)すると何が起こるでしょう?
→WebサーバーがWebページ、つまりテキストや画像をクライアントに送ってくる。(HTTPレスポンス)すると何が起こるでしょう?
→ブラウザが表示してくれる。
HTTPとは
インターネットでのコンピュータ同士のやりとりには決まりがあります。(プロトコル)
例えばHTTP。つまり僕らのスマホ・PC(クライアント)がWebページを要求して、WebサーバーがWebページを送る一連のやりとりは HTTP(Hypertext Transfer Protocol) というプロトコルを守っているわけです。
WebページのURLはhttp://・・・と書きますが、これはHTTPプロトコルで通信するよ、と宣言しているのです。
近年ではhttps://・・・と書きますけどね。HTTPを暗号化してセキュリティ強化したのがHTTPSです。
ApacheとWebサーバー
Webサーバーを構築するソフトウェアはたくさんありますが、有名なのは Nginx (エンジンエックス) , Apache(アパッチ)です。ApacheはLinux, Windows, Macなど色々なOSに対応してます。
02PHPとは何か
スクリプトとは
Webページの正体とは、HTMLという規則に従って記述されたテキストファイルです。テキストファイルとは文字だけでできているファイルです。つまりWebページを構成するHTMLファイルは全て文字なんですね。
メモ帳のようなエディタ、ホームページビルダーのようなWebページ作成ソフト、Webページを作ってくれる言語(PHPなど)を使って作ろうが、全部HTMLファイルが出来上がるので、クライアントで表示できます。
相手が〇〇のリンクをクリックしたら$$のページを表示する。こういう場合このページはあらかじめ出来上がってるページだから、 静的なWebページ と言います。静的なページは完成されてるから変化しない、つまり静的なわけです。
一方、「相手が〜と入力したら〇〇のWebページを表示」される場合、プログラムがその場でWebページを作ってるわけじゃないですか。このページを 動的なWebページ と言います。動的なページは未完成なテンプレートの中に、例えばユーザーの検索キーワードに応じた検索結果をはめ込むわけですよ。つまりページがコロコロ変わるから動的なわけです。
ということは、動的なWebページを作るには、クライアントから送られたデータを解析・処理する必要があるでしょう?ではこの問題をどう解決するか?
→PHPのような言語で、データーを解析・処理するプログラムを書くわけです。このプログラムを スクリプト と言ったりします。
スクリプトにはクライアント側で動作するものと、Webサーバー側で動作するものの2種類に分かれます?何と何でしょう?
→クライアントサイドスクリプト
要は Webブラウザ側で実行されるスクリプトです。(JavaScriptなど) Webサーバー側枯らしたら楽チンです。仕事をWebブラウザに振ることができるので。Webブラウザの表示や動作を簡単に制御してくれます。ブラウザの種類によって動作が異なったり、動作しないことが起こる可能性もありますがね。。。
→サーバーサイドスクリプト
一方、 Webサーバー側で実行されるスクリプトです。(PHPなど) Webサーバーが仕事をするので、このスクリプトに関してはブラウザの種類がどうのこうの・・・なんて機にする必要はありません。リクエストの数だけサーバーに負荷がかかります。Webページ送ってよ!(リクエスト1回目)→Webページについてる画像も送ってよ!(リクエスト2回目)みたいな感じでサーバーが一度にあれやこれや仕事をしています。
PHPの特徴
- 動作が早い
- HTMLの中に書き込める
- サーバー側で動作する
- オープンソース(無料で使えるし、一定の条件をクリアすれば編集もできます)
- いろんなDBが使える
- 開発・修正が早い
処理モジュール(小単位のプログラム)はWebサーバーにあり、これをスクリプトの命令によって動作させるため、一般的に動作は軽快です。
PHPはNginxやApacheなどいくつかのWebサーバーに対応し、MySQLなど沢山のDBをサポートしてます。