PHP 学習ガイド - 第 2 章

黄舟
黄舟オリジナル
2016-12-23 09:33:211203ブラウズ

サーバーサイド Web スクリプト言語

この章のキーポイント
・静的 Web ページと動的 Web ページについて理解する
・クライアントサイドとサーバーサイドのスクリプト言語の比較
・サーバーサイド スクリプト言語の概要

この章では次のことに焦点を当てますさらに、サーバー側スクリプト言語自体と静的 HTML およびクライアント側テクノロジ一般との関係についても説明します。この章が終わるまでに、読者は PHP でできることとできないことを明確に理解し、PHP が最初にクライアントと通信する方法についても一般的に理解できるようになります。

静的 HTML

Web ページの最も基本的な形式は、完全に HTML で記述された純粋に静的なテキストのみのページです。図 2-1 の単純な HTML ページは一例です。

サーバーサイド Web スクリプト言語

この章の焦点
・静的 Web ページと動的 Web ページの理解
・クライアントサイドとサーバーサイドのスクリプト言語の比較
・サーバーサイド スクリプト言語の概要

この章の焦点この章では、サーバー側スクリプト言語自体について説明します。また、静的 HTML および一般的なクライアント側テクノロジとの関係についても説明します。この章が終わるまでに、読者は PHP でできることとできないことを明確に理解し、PHP が最初にクライアントと通信する方法についても一般的に理解できるようになります。

静的 HTML

Web ページの最も基本的な形式は、完全に HTML で記述された純粋に静的なテキストのみのページです。図 2-1 の単純な HTML ページは一例です。

図 2-1 静的 HTML Web ページの仕様

以下は図 2-1 のソース コードです:

図 2-2 に示すように、クライアント コンピューターがサーバーから応答を行うと、 Web またはイントランネット ページに対して HTTP リクエストを行う場合、サーバーはアーカイブ内で見つからないプレーン テキストを渡すだけで済みます。


データがクライアント コンピューターに返送されると、ブラウザーはソース コードの内容、ユーザーの好み、モニターのサイズ、その他の要因の正確な分析に基づいて、最適な処理と表示を行います。サーバー上の HTML ファイルの内容は、クライアント コンピューター上のページのソース コードとまったく同じです。

あなたのようなごく普通の静的 HTML には次の利点があります:

◆ どのブラウザでもそれを表示する機能があります。

◆ほとんどのデバイスで表示する機能があります。

◆すべてのリクエストを迅速に実行し、最小限のリソースを使用します。

◆ HTML は学習しやすく、または自動的に生成されます。

◆ 個々のページに小さな変更をすばやく加えます。

◆ もちろん、静的 HTML には欠点もあります。

◆ デザインとレイアウトを制御するのが難しい。

◆ 大量のページに拡張することはできません。

◆ インタラクティブ性が十分ではありません。

◆ ページに関する意味のあるメタデータを簡単に含めることができます。

◆ コンテンツやパーソナライズされた情報の急速な変化に対応するのは簡単ではありません。

◆ あまり魅力的ではありません。


なぜなら...それは「アマチュア」レベルまたは特定の理想的なアプリケーションとしかみなされないからです(この理想は一部のコンピューターサイエンスの専門家によって書かれたWebページと同じくらい確固たるものであり、彼らはすべてのWebページが以下に準拠する必要があると信じています) HTML3.1 仕様に準拠しており、読み取り可能なすべてのデバイスにインストールする必要があります)。

これらの制限に対処するために、クライアント側 JavaScript、カスケード スタイル シート (CSS)、Java アプレット、サーバー側データベース接続用のサーバー側スクリプト言語など、他の多くのテクノロジが最近開発されました。開発中のテクノロジーには XML と XSL が含まれており、どちらも他のさまざまな仕様 (XHTML、XSLT、XPath、ICE など) の一部です。

これらのテクノロジーがどのような機能を持っているのか、そしてそれらを自分の Web サイトに追加できるかどうかを理解するのに少し時間を取れば、将来頭痛の種を引き起こす可能性は確実に減ります。 Web タスクを実行する場合、最初に自問すべき基本的な質問は、「この計算はどこで実行されるのか、クライアントとサーバーのどちらで行うのか」ということです。

「動的」の意味 「静的」Web ページと「動的」Web ページの間には基本的かつ繰り返し発生する違いがありますが、「動的」は通常の HTML を除くほとんどすべてを意味します。これは、クライアント側の機能とサーバー側の機能の両方を記述するために使用されます。ユーザー側では、「ダイナミクス」はマルチメディア表示、タイトル行のスクロール、ページの自動更新、要素の表示と非表示などとして認識されます。サーバー側では、この用語は一般に、無線で送信され、インタラクティブに組み立てられるコンテンツを指すために使用されます。

クライアントテクノロジー

通常の HTML の場合、最も一般的なコンテンツの追加はクライアント側で行われます。これには、CSS やダイナミック HTML などの形式拡張機能、クライアント側スクリプト言語、Java アプレット、Flash が含まれます。これらのテクノロジーのサポートは (ほとんどが) Web ブラウジングに組み込まれています。表 2-1 にそれらの機能をリストします。一部の機能は重複しています。

表 2-1 クライアント側の HTML 拡張機能

図 2-3 にリストされているページの例は、図 2-1 と同じ内容に基づいています。


ソース コードからわかるように、この例では、いくつかの新しいスタイル シート、クライアント側のスクリプト、およびいくつかのより複雑な HTML コードが追加されています。


残念ながら、クライアント側テクノロジーの最大のセールスポイントは、最悪の品質でもあります。つまり、ブラウザーに完全に依存しているということです。同じブランドが製造した異なるバージョンであっても、各ブラウザの機能は大きく異なります。誰もがさまざまな方法でブラウザを構成することもできます。たとえば、セキュリティ上の懸念から JavaScript の使用を無効にし、ナビゲーションに JavaScript を過度に使用するサイトを閲覧できなくなる場合があります。 (前の例で関数を示すと)

さらに、多くのユーザーは、コストやテクノロジーの不足により、ブラウザーのアップグレードの結果が良くありません。 Web 開発者は、デバイスベースのブラウジング、一般およびグローバル ユーザーなどについて理解している必要があります。たとえば、Yahoo! と Amazon は、これらの標準を採用してから 3 年以上、スタイル シートと JavaScript を使用しないことを主張しています。 W3C からの圧力を受けて、多くの Web サイトは依然として FONT タグと BGCOLOR 属性の使用を頑固に主張しています。その顧客は、13 時位置のモニターを備えた古い Macintosh マシンで AOL 3.0 を使用しているユーザーである可能性があります。さらに皮肉なことに、Web は 5 年間の急速な発展を経験した後でも、開発者が顧客に絶対に保証できるのは、主にプレーン テキストである通常の HTML が表示されるということだけです。 (または、時の試練に簡単に成功した HTML のサブセットでも)

最後に、クライアント側のテクノロジーは、バックエンド サーバーへの接続を必要とする作業を実行できません。 JavaScript では、データベースに保存されているユーザー設定オプションに基づいてカスタマイズされたドロップダウン リストを即座に生成することはできません。リストに変更を加える必要がある場合、Web 開発者はページにアクセスして手動で変更する必要があります (サーバーサイド JavaScript では可能です)。現在は使用されていません) この問題に対して、サーバーサイド JavaScript 言語がこのギャップを埋める救世主となります。

つまり、レイアウト設定やブラウザ イベントを処理するすべてのアクションはユーザー側で発生します。一般的に、見た目のカッコいいエフェクトやマウスの動きに依存するものはユーザー側で行われます。イベントの表示が速いほど、そのイベントがクライアントによって処理される可能性が高くなります。これは、速度が速いということは、サーバーからダウンロードする必要がないことを意味するためです。

注:
「クライアントサイド Java (クライアントサイド Java)」とも呼ばれる Java アプレットは、他のクライアント側テクノロジーに比べてブラウザーへの依存度が低くなります。名前が示すように、これらはインターネット経由で配信される完全な小さな Java アプリケーションですが、クライアントのオペレーティング システムと直接対話する他のプログラミング言語で書かれたアプリケーションとは異なり、Java アプレットは JVM (Java 仮想マシン) と呼ばれるソフトウェア上で実行されます。 . 仮想マシン、Java 仮想ホスト)仲介ソフトウェア。 JVM は、実際のオペレーティング システムの上に存在するオペレーティング システムとみなすことができます。最新のブラウザのほとんどには十分ではない JVM が搭載されていますが、別途ダウンロードして使用することもできます。この動作の違いにより、アプレットは、ブラウザの比較的弱い機能によって制限されることなく、ブラウザが特別な機能を実行できるようになります。

アプレットはもともと、透明な接着剤のように見えるアイコン ロゴ、スクロールするタイトル バー、ジャンプ キーなどの単純なアニメーションを実装するために使用されていたため、初期の頃は無意味な小さなものであると考えられていました。幸いなことに、アプレットは進化しており、クロスワード パズル、ハノイ塔のシミュレーション、スーツやアクセサリーの試着、仮想モードなど、非常に人間的な目的に使用できるようになりました。


サーバー側スクリプト言語

図 2-4 は、サーバー スクリプト データ プロセスの概略図です。

クライアントサイドスクリプト言語は非常に魅力的であり、Web 開発で最も目を引く部分です。サーバーサイドプログラミングはその逆で、ユーザーには見えず、その背後に隠されています。サーバーサイド スクリプト プログラマーは常にバックエンド Web サーバー上のデータを探索しようとしていますが、フロントエンドでは芸術的才能を持つ同僚が公衆の前で自分の作品を表現できます。

サーバーサイド Web のスクリプト言語は、主に Web Web サイトをデータベースなどのバックエンド サーバーに接続し、双方向通信を可能にするために使用されます。


サーバーサイド Web のスクリプト言語は次のとおりです。主に Web ウェブサイトをデータベースなどのバックエンド サーバーに接続することで、双方向通信が可能になります。

◆ サーバーからクライアント: バックエンド サーバーの出力から Web ページを結合できます。

◆ クライアントからサーバーへ: クライアントが入力した情報を有効にします。

ユーザーからサーバーへの通信の一般的な例は、オンライン フォームと、サーバー上で動的に結合されるいくつかのドロップダウン リストです。 (通常はボタンを押す必要があります)。

サーバーサイドのスクリプト言語製品には、スクリプト言語とスクリプト エンジン (Web サーバーに組み込まれている場合と組み込まれていない場合があります) という 2 つの主要な部分があります。エンジン部分はすべて同じ会社またはチームによって開発されており、相互に組み合わせてのみ使用できます (PHP3 と ColdFusion はその 2 つの例です)。ただし、この規則には例外もあります。たとえば、Java Server Pages は、専用のスクリプト言語ではなく、標準のプログラミング言語で記述されています。一部のパートナーは、互換性のある互換性のあるエンジン (Allaire JRun、Apache JServ など) を開発しています。

理論的には、Active Server Pagesb では、ほとんどのスクリプト言語と、いくつかの一致する ActiveX スクリプト エンジンの 1 つを使用できます (ただし、実際には、 NT/IIS/VBScript/JScirpt の組み合わせを除き、他の組み合わせでは多くの問題が発生します)。現在、PHP4 のスクリプト エンジン (Zend) は理論的には PHP プログラミング言語から分離されているため、PHP4 は別個の独立したスクリプト テクノロジとみなされます。

図 2.5 は、サーバー側のソース コードとクライアント側のソース コードに基づいて、データベースから即座にページが生成される単純なサーバー側スクリプト言語の例を示しています。この例の目的は PHP の最終製品を示すことであり、正式なものではないため、データベース呼び出し (この本の第 2 部まで詳しくは説明しません) を組み込み、含まれるファイルの一部を省略しました。ジョブ実行可能ソース コードの使用法

以下はサーバー上のソース コードです

​​

これはクライアントに到達したときの同じページのソース コード表示フォームです:

上記は PHP 学習ガイド - 第 2 章の内容です, 詳細 関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。