ホームページ制作,維持・保守
サーバーシステム構築・管理
ネットワーク構築・管理
IT環境サポート
インフラ構築サポート
ITアウトソーシング
WEBプログラミング

PHPはどう動いている??

森之宮 0 813 0

HTMLしか判らないWEBブラウザ。。。。 


WEBブラウザはHTMLしかわかりません。 

HTMLはブラウザが使う言語ということでしょう。 (JavaScriptといった若干の外国語も話します。(人に比較すると...)^^;;)

それで私たちがホームページを制作するためには、すべての文書をHTMLで作成しなければなりません。


HTMLを泣かしてしまったCGIの登場 


インターネット初期には、ほとんどのホームページがすべてHTML(SGML)で作られていました。 (選択の余地がありませんでした)

HTMLでホームページを作ってみた方はご存知だと思いますが

HTMLは一方向的で修正する前には絶対変わらない特性を持っています。 

このような短所のおかげで、人々はHTML以外に他の何かの必要さを感じました。 

それで生まれたのがCGI(Common Gateway Interface)です。


CGIの構造

fc740b9b7bbe025b2d843a50c61e9657_1498855882_6354.jpg

CGIは上記のような構造を持っています。 (HTMLは①と④の過程のみ)ご覧のようにHTMLには一段階追加処理を行うことで、

計算と処理機能が追加されました。 これによって私たちは静的なウェブページから変化が自由で訪問者とホームページ間に 

お互いに相互作用が可能なウェブページを作ることができるようになったのです。 

しかし、ここで注意すべき点は③でありますように、CGIで処理された値はHTMLで送信されます。 

WEBブラウザがHTMLしか分からないのでHTMLで結果を見せなければならないのです。 

それでPHPをするなら、当然、HTMLを知っていなければならないでしょう?


それではCGIとPHPはどのような関係か?


PHPは少しずつ異なるが、一種のCGIだと見ることができます。 それでPHPもあの上の絵と似たような構造を持ちます。



参考
CGIは一般的にウェブサーバに要請があれば、CGIプログラムを実行して一つのプロセスを生成し、
その処理結果をウェブサーバに転送してプロセスが終了される形式です。
100個の要請があれば、CGIプロセスが100個が生成することになります。
PHPはCGIとは違って、アパッチウェブサーバにモジュールに装着されています。
したがって、毎回実行プロセスが生成されるCGIとは違って、一つのプロセスに複数のスレッドを生成して処理が可能です。 
プロセス、スレッド?何が違うんだって? プロセスはそれぞれ別途にシステム資源を消費します。
1つのプロセスがメモリ1メガバイトを消費していては、100個の場合100メガバイトのメモリーを消費することになります。
しかし、スレッドはスレッド間でシステム資源の共有ができますので、
100個だと聞いて100メガバイトを消費するのではなく、プロセスよりはるかに少ない量のメモリを消費することになります。
それでプロセス方式であるCGIよりスレッド方式であるPHPが性能が優れています。


HTMLにはない計算、処理過程とは何なのでしょうか? 


とても多いと思いますが、前にテストのために作ったソースを再利用してみましょう。


<? 

echo"最初のプログラム"; 

echo"ヤッタ~"; 

echo"日付:"。date("Y-m-d"); 

?>


結果は皆さんが実行してみてください。


このようにPHPは人がわざわざ変えなくても自分で処理して表示してあげます。 

ここにはdateという日付を表示する関数とechoというテキストを振り撒いてくれてる関数2つが使用されました。
上記で話したように、我々は結果をHTMLに返さなければならないとしました。

上記の結果についてソース表示をしたら


最初のプログラム、ヤッタ~日付:2017-04-05


このように出力されています。 上記のPHPコードは一連の処理過程を経て、PHPコードはすべて消されてしまい、
単純にHTMLコードのみを伝送したのです。


もしPHPがなかったら....


ホームページに日付表示機能を付けるためには毎日ホームページに今日の日付を修正しなければならない手間をかけるはずです。
もちろん掲示板のようなものは夢にも考えられないでしょう。


参考 

日付表示部分はJavaScriptでも可能です。 しかし、少しの違いはあります。
PHPはサーバー側時刻を基準にして

JavaScriptはユーザのコンピューター時刻を基準とします。


これからはPHP関数などを学びながらどのようにその結果をHTMLにまいてくれるかを考えながらやって行きましょう。

0 コメント