
動的ウェブページとは、静的ウェブページ(保存された状態で配信されるウェブページ)とは異なり、実行時(ソフトウェアの実行中)に構築されるウェブページのことです。
サーバーサイド動的ウェブページとは、サーバーサイドスクリプトを処理するアプリケーションサーバーによって構築が制御されるウェブページのことです。 [ 1 ]サーバーサイドスクリプトでは、パラメータによって、新しいウェブページの組み立てがどのように進むかが決定され、クライアントサイド処理の設定も含まれます。
クライアントサイドの動的ウェブページは、ブラウザで実行されるJavaScriptを使用して、ページの読み込み時に処理されます。JavaScriptは、ドキュメントオブジェクトモデル(DOM)を介してページとやり取りし、ページの状態を照会したり、変更したりできます。クライアントサイドで動的に動作するウェブページであっても、サーバーサイドのコードが含まれていない限り、GitHub PagesやAmazon S3などの静的ホスティングサービスでホストできます。
動的なウェブページは、ユーザーまたはコンピュータプログラムによって再読み込みされ、可変コンテンツが変更されます。更新情報は、サーバーから、またはそのページのDOMへの変更から取得できます。これにより、閲覧履歴が切り詰められたり、戻るための保存バージョンが作成されたりする場合がありますが、AJAXテクノロジーを使用した動的なウェブページの更新では、戻るためのページが作成されることも、表示されているページより前のウェブ閲覧履歴が切り詰められることもありません。AJAXを使用すると、エンドユーザーは、ウェブブラウザで単一のページとして管理される1つの動的なページを取得できますが、そのページにレンダリングされる実際のウェブコンテンツは変化する可能性があります。AJAXエンジンはブラウザ上にのみ存在し、アプリケーションサーバーからクライアントのDOMの一部を要求します。特定のアプリケーションサーバーは、ウェブアプリケーションにサービスを提供するために、標準化されたRESTスタイルのインターフェースを提供することができます。[ 2 ]
DHTMLは、静的なWebページではないWebページを作成するために使用される技術と手法を総称する用語ですが、AJAXの普及以降、一般的にはあまり使われなくなりました。AJAX自体も現在ではほとんど使われていません。クライアントサイドスクリプト、サーバーサイドスクリプト、またはこれらの組み合わせによって、ブラウザ上で動的なWeb体験が実現されます。
HTMLまたはXHTMLのみを使用した従来のハイパーテキストナビゲーションは、「静的」なコンテンツを提供します。つまり、ユーザーはウェブページを要求し、そのページとそのページ上の情報を表示するだけです。
しかし、ウェブページは「ライブ」「ダイナミック」「インタラクティブ」なユーザー体験を提供することもできます。ウェブページ上のコンテンツ(テキスト、画像、フォームフィールドなど)は、さまざまな状況や条件に応じて変化する可能性があります。
このような効果を生み出すには、2つの方法があります。
クライアントサイドスクリプトを使用するWebページは、リッチインターフェースページと呼ばれるプレゼンテーション技術を広く利用する必要があります。JavaScriptやActionScriptといったクライアントサイドスクリプト言語は、それぞれDynamic HTML(DHTML)やFlash技術に使用され、プレゼンテーションのメディアタイプ(音声、アニメーション、テキストの変更など)を制御するためによく用いられます。スクリプトでは、リモートスクリプティングも利用できます。これは、DHTMLページが非表示のFrame、XMLHttpRequest、またはWebサービスを使用してサーバーから追加情報を要求する手法です。また、 Webフレームワークを使用してWeb APIを作成することも可能で、クライアントはJavaScriptを使用してこのAPIを利用し、データを取得したり、データに応じてページの表示や動作を動的に変更したりできます。
サーバーサイドスクリプトを使用するWebページは、PHP、Perl、ASP、JSP、ColdFusionなどのサーバーサイド言語を用いて作成されることがよくあります。これらのサーバーサイド言語は通常、Common Gateway Interface (CGI)を使用して動的なWebページを生成します。また、これらのページでは、クライアント側で最初の種類のWebページ(DHTMLなど)を使用することもできます。
「動的ウェブページの始まり」や時系列を正確に述べるのは難しい。なぜなら、正確な概念は「ウェブページが広く普及した後」に初めて意味を持つようになるからだ。HTTPは1989年から存在し、HTMLは1996年に一般に標準化された。ウェブブラウザの人気上昇は1993年のMosaicから始まった。1995年から1996年にかけて、 Coldfusion、WebObjects、PHP、Active Server Pagesなど、複数の動的ウェブ製品が市場に導入された。
JavaScript(当時はLiveScriptとして知られていた)の導入により、クライアントのブラウザでJavaScriptコードを実行するクライアント側の動的なWebページの作成が可能になった。[ 4 ] AJAXという用語の「J」は、元々はJavaScriptとXMLの使用を示していた。2009年に開発されたNode.jsなどのサーバー側JavaScript処理の台頭により、JavaScriptはサーバー上でページを動的に作成し、それをクライアントに送信するためにも使用されるようになった。
Wikipediaを支えるコンテンツ管理システムであるMediaWikiは、フォーム送信やURLパラメータを通じて操作される、元々はサーバーサイドで動作する動的なウェブページの一例です。時間の経過とともに、ビジュアルエディタなどの拡張機能が段階的に強化され、クライアントサイドで動作する動的な要素も追加されました。一方、従来の編集フォームなどのサーバーサイドで動作する動的な要素は、エラーや互換性の問題が発生した場合に備えて、代替手段として(段階的な機能低下)引き続き利用可能です。

A program running on a web server is used to generate the web content on various web pages, manage user sessions, and control workflow. Server responses may be determined by such conditions as data in a posted HTML form, parameters in the URL, the type of browser being used, the passage of time, or a database or server state.
Such web pages are often created with the help of server-side languages such as ASP, ColdFusion, Java, JavaScript, Perl, PHP, Ruby, Python, and other languages, by a support server that can run on the same hardware as the web server. These server-side languages often use the Common Gateway Interface (CGI) to produce dynamic web pages. Two notable exceptions are ASP.NET, and JSP, which reuse CGI concepts in their APIs but actually dispatch all web requests into a shared virtual machine.
The server-side languages are used to embed tags or markers within the source file of the web page on the web server.[5] When a user on a client computer requests that web page, the web server interprets these tags or markers to perform actions on the server. For example, the server may be instructed to insert information from a database or information such as the current date.
Dynamic web pages are often cached when there are few or no changes expected and the page is anticipated to receive considerable amount of web traffic that would wastefully strain the server and slow down page loading if it had to generate the pages on the fly for each request.
Client-side scripting is changing interface behaviors within a specific web page in response to input device actions, or at specified timing events. In this case, the dynamic behavior occurs within the presentation. The client-side content is generated on the user's local computer system.[6]
このようなウェブページでは、リッチインターフェースページと呼ばれるプレゼンテーション技術が用いられます。JavaScriptやActionScriptといったクライアントサイドスクリプト言語は、それぞれダイナミックHTML(DHTML)やFlash技術に使用され、プレゼンテーションのメディアタイプ(音声、アニメーション、テキストの変更など)を制御するために頻繁に利用されます。クライアントサイドスクリプトでは、リモートスクリプティングも使用可能です。これは、DHTMLページが隠しフレーム、XMLHttpRequest、またはWebサービスを使用してサーバーから追加情報を要求する手法です。
JavaScriptが初めて一般に使用されたのは1995年で、Netscape Navigator 2に実装され、 2年後にECMAScriptとして標準化された。[ 7 ]
クライアント側のコンテンツはクライアントのコンピュータ上で生成されます。ウェブブラウザはサーバーからページを取得し、ページに埋め込まれたコード(通常はJavaScriptで記述されている)を処理して、取得したページのコンテンツをユーザーに表示します。[ 8 ]
プロパティinnerHTML(または書き込みコマンド)は、クライアント側の動的なページ生成を例示できます。2つの異なるページAとBは、(「イベント応答ダイナミクス」によって)ととして再生成できます。document.innerHTML = Aまたdocument.innerHTML = B、「ロード時のダイナミクス」によってとでdocument.write(A)再生成することもできますdocument.write(B)。
動的なウェブページを構成するクライアントおよびサーバーのコンポーネントすべてをウェブアプリケーションと呼びます。ウェブアプリケーションは、ユーザーとのやり取り、状態、セキュリティ、パフォーマンスを管理します。[ 9 ]
Ajaxは、クライアントサイドスクリプトとサーバーサイドリクエストの両方を組み合わせた手法です。これは、コンテンツを動的に交換するためのWebアプリケーション開発技術であり、そのためにサーバーにデータ要求を送信します。サーバーは要求されたデータを返し、それをクライアントサイドスクリプトが処理します。この技術は、クライアントがサーバーの言語パーサーにWebページ全体の再生成を要求するのではなく、変更されるコンテンツのみを送信するため、サーバーの読み込み時間を短縮できます。Googleマップは、Ajax技術を使用しているWebアプリケーションの一例です。
ウェブブラウザなどのウェブクライアントは、独自のサーバーとして機能し、Gopher、FTP、NNTP(Usenet)、HTTPなど、さまざまなサーバーからデータにアクセスしてページを構築できます。HTTPは、クライアントからサーバーへのドキュメントのアップロードをサポートしています。これを行うためのHTTPメソッドはいくつかあります。
{{cite web}}: CS1 maint: url-status (リンク){{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク)