Web サイトを構築する場合、ほとんどの場合、静的な Web ページへのアクセス機能を提供するだけでなく、ブラウザ ユーザーと対話したり、リアルタイムの更新情報を提供するためにバックエンド データベースにアクセスしたりすることも必要になります。動的な Web ページ サービスを提供するために必要です。このとき、従来の CGI を選択するべきでしょうか、それとも PHP や ASP などのサーバーサイド スクリプトを選択するべきでしょうか?
■CGIからサーバーサイドスクリプトへ
動的Webページを作成する標準的な方法はCGIです。これにより、Webサーバーはブラウザのリクエストに応じてCGIプログラムを実行できます。単純な CGI 標準に準拠することを除けば、CGI プログラムの開発は通常のプログラムの開発と何ら変わりません。ただし、生成される動的 Web ページの数と複雑さが増加するにつれて、このアプローチは困難に直面します。
CGIプログラムには大きく2つの部分があり、1つはプログラムコード、もう1つは出力されるHTML文書の内容(HTMLコードと呼ぶこともできます)です。初期の Web 開発者はプログラマーと Web デザイナーの両方を兼ねていましたが、当時の開発者が最も関心を持っていたのはプログラム コードであり、ページ コードは基本的にあまり調整する必要がありませんでした。 DHTML や JavaScript などの技術の発展により、ページは非常に複雑に設計できるようになりましたが、さまざまな CGI プログラム ライブラリの登場により、プログラム コードは非常に単純になりました。このように、ページコードを調整するたびにCGIプログラムの修正が必要となり、最終的にはCGIプログラムのデバッグ作業において、プログラムコードのデバッグ作業量よりもHTMLコードのデバッグ作業量の方が多くなってしまう。これは、Web 開発において HTML コードの重要性が非常に明らかになり、プログラム コードを中心とした従来の CGI プログラムが動的な Web ページを処理する最適な方法ではなくなっていることを示しています。
このように、特にインターネットの商用化に伴い、CGI プログラムを書くことと HTML ページをデザインすることは、この種の HTML コードを調整する作業にうんざりしているプログラマーが少なくありません。この問題を解決するために、プログラマーはまずテンプレート ファイル方式を使用してプログラム コードと HTML コードを分離し、CGI プログラムがテンプレート ファイルを読み取って HTML コードを取得するようにしました。これにより、ページに微調整を加える必要がなくなりました。 CGI プログラムを変更します。
基本的にプログラマーは自分のCGIプログラムでカスタマイズしたテンプレートを使用しますが、汎用のHTMLテンプレートがあり、前処理に汎用のプログラムを使用すれば、プログラム設計の負担は大幅に軽減されるのではないでしょうか?最も単純なテンプレートは、テンプレート内の事前定義された変数を置き換えることで解釈作業を完了できます。このプログラムは、Web サーバーに統合されており、CGI プログラムよりも高い効率を実現します。
ncsa httpd に登場した SSI などの初期のサーバーサイド スクリプトには、変数の概念のみが含まれており、制御ステートメントの概念は含まれていませんでした。その後、さまざまなプログラム開発者が、制御ステートメントやサブルーチンさえもサポートするスクリプト解釈処理プログラムを再開発しました。これにより、これらのプログラムは、特定の動的な Web ページにサービスを提供するだけでなく、プログラミングもできるようになり、CGI プログラムが実行できるすべてを完了できるようになりました。 . 仕事は新しいプログラミング言語になりました。また、パフォーマンス上の理由から、これらのプログラムは Web サーバー自体に組み込まれ、Web 開発の新しい形式になりました。
■ オープンリソースからの PHP
現在、サーバーサイドスクリプトは動的 Web ページを開発する一般的な方法となっていますが、CGI には依然として柔軟性という利点がありますが、一般的にはサーバーサイドスクリプトを使用する方が簡単で便利です。 。ただし、CGI とは異なり、サーバーサイド スクリプトには統一された標準がなく、さまざまなサーバーサイド スクリプトが独自の構文を使用します。現在、より一般的に使用されているものは、Active Server Pages (ASP)、ColdFusion、Java Servlets、Personal Home Page (PHP) などです。これらの技術には、ASP などの大企業がサポートするソフトウェアと、PHP などインターネットを介して共同開発されたオープンソース ソフトウェアの両方が含まれます。
PHP は、もともと Rasums Lerdorf によって書かれた、彼自身の Web ページへの訪問者を記録するための単純な CGI プログラムでした。その後、C言語で書き直され、データベースにアクセスできるように範囲が拡張されました。この期間中、多くの人が、自分で使用するためにこのプログラムのコピーを Rasums Lerdorf に求め、このプログラムを紹介する文書を作成し、PHP v1.0 をリリースしました。その後、PHP を使用する人が増え、ループ ステートメントや配列変数などの他の機能の追加を強く求めるようになりました。このとき、他のプログラマーも PHP のソース コードの作成に参加し、PHP を書き直しました。 v3.0が登場しました。現在、PHP を使用する Web サイトは 800,000 を超え、その数は今も増え続けています。
動的なWebページをブラウザに送信することに加えて、PHPはさまざまなHTTPヘッダー識別子を送信することもでき、Webページの再配置、Webサーバーのセキュリティ認証と組み合わせる機能、およびCookieの設定を提供できます。 PHP は、MySQL、Sybase、Informix、Oracle、MsSQL などのさまざまなデータベースと直接相互接続する機能を提供し、ODBC もサポートします。また、追加のライブラリを通じてセッション管理と XML 処理をサポートできます (これらのライブラリは基本ライブラリであるため、PHP ユーザーの基本構成でもあります)。ここから、PHP はもはや単純なサーバーサイド スクリプトではないことがわかります。「PHP3 ブラウザ アプリケーション プログラミング」の著者である David Medinets 氏によると、PHP はアプリケーション サーバーです。 PHP には完全なプログラミング言語が含まれているだけでなく、データベースにアクセスし、インターネット プロトコル (電子メールや HTTP など) をサポートする完全な機能も含まれているため、PHP は ASP、ColdFusion、WebSphere よりも短くなります。
PHPを実行するには、通常、オペレーティングシステムとしてLinuxまたはFreeBSDが使用され、WebサーバーとしてApacheが使用されます。もちろん、PHP はクロスプラットフォーム ソフトウェアであるため、他のオペレーティング システムを使用することも可能です。もちろん、オープン ソース ソフトウェアであるという利点もあります。ただし、Apache サーバーを使用しない場合、PHP は CGI モードでのみ実行できるため、PHP を Apache にコンパイルすることによるパフォーマンスの利点を活用できません。 www.php3.net から PHP の最新バージョンをダウンロードし、インストールと構成を完了したら、エディターまたは Web ページ作成ソフトウェアを使用して PHP コードを作成できます。 C または Perl を使用してプログラミングできる場合、PHP プログラミングはプログラミング言語としては複雑ではないことがわかります。PHP は C よりも単純で、Perl よりも理解しやすいです。以下は、PHP プログラムを埋め込んだ最も単純なページです。