第8回
WWW・動的コンテンツ
グループ6 西尾 優 山本 風歌 尾立 誠弥 宇野 則文 藤原 敏明 12/05/09 1World Wide Webの始まり
CREN(欧州合同原子核研究機構)には、多く
の科学者が訪れ、それぞれが異なる文書シス
テムを使っていた
World Wide Web (1)
1989年にティム・バーナーズ=リーがCERN内部の情 報システムとしてネットワークを使ったハイパーテキス トシステムの導入を提案 インターネットで異なるコンピュータを結び、共通の約 束に従って文書を公開して相互参照する仕組み 12/05/09 3World Wide Web (2)
• 環境に依存しない情報共有の実現をする -‐コンピュータ同士が情報をやり取りするため のルール(HTTP) -‐ネットワーク上の情報を一意に特定するアド レス指定方法(URI) -‐環境に関わりなく情報を一貫した方法で実現 する文書記述方法(HTML)World Wide Web の仕組み
12/05/09 5 インターネット file file file h>p h>p URI HTML クライアント サーバHyper Text Transfer Protocol (1)
• HTML文書のハイパーテキストを転送するた めのプロトコル – 実際には画像や動画、PDFなどのコンピュータで 扱えるデータなら転送できる • シンプルなプロトコル – 主なメソッド メソッド 意味 GET URIで指定した情報を要求 POST クライアントからデータを(名前と値)のセットで渡す DELETE URIで指定したサーバ上のファイルを削除するHyper Text Transfer Protocol (2)
• TCP/IPをベースに使用している – IPを用いてパケットのやりとりをしている – デフォルトでは80番ポートを使用する • ステートレスなプロトコルとして設計されてい る – やりとりが冗長 – クライアントが毎回リクエストを繰り返す 12/05/09 7サーバ クライアント
HTTPの仕組み
GET HTMLが 送信される リクエストをHTTPサーバがURLから判 断し、ドキュメントルートから探して送信GET メソッドの詳細
12/05/09 9 クライアント サーバ GET(結合情報の要求) HTMLファイルを返送 GET(付属情報の要求) 画像ファイルなどを返送 文書ファイルの表示Uniform Resource IdenQfier
• 概要 – インターネット上のリソースを特定するための記 述 – h>p://www.info.kochi-‐tech.ac.jp/index.html • スキーム部:h>p • ホスト部:www.info.kochi-‐tech.ac.jp • パス部:index.htmlHypertext Markup Language (1)
• コンピュータは一種類ではなく、利用できる フォントやファイル形式がそれぞれ異なる • バーナーズ=リーはWWWでの文書記述方 法としてHTMLを設計した 12/05/09 11Hypertext Markup Language (2)
• マークアップ言語 – 文書中にタグと呼ばれる特殊な文字列を埋め込 むことにより見出しや段落などの文書構造、文字 の大きさなどの修飾情報を記述する言語 • 例. <Qtle> 高知工科大学 </Qtle> • ハイパーテキスト – 画像ファイルやほかの文書と結びつける仕組み – 文書中に関連するURIを埋め込むWebブラウザ
• HTML文書の解析 – HTMLタグの解析 • 通信機能 – URIをスキーム部、ホスト部、パス部に分解 – HTTP通信 • 描画機能 – 文字フォント・文字サイズの指定 – 画像、表の表示 12/05/09 13Webサーバ
• クライアントに対しHTML文書や動画像を提供す る • 代表的な機能 – HTTPサーバ – Webアプリケーションサーバ – HTTPプロキシサーバ • サーバソフトウェア – Apacheキャッシュ
• サーバの負荷を軽減 – コンテンツを複製・蓄積し、本来のサーバに代 わって配信 12/05/09 15 キャッシュサーバ WWWサーバ クライアント サーバからの応答をキャッ シュし、同じ問い合わせは本 来のサーバに代わって配信Cookie
• サーバとのやり取りの情報を保存する
– 一時的なデータ
プロキシ
• キャッシュの実現 – ネットワークの負荷を軽減 • アクセス制限 – ユーザレベルの認証 12/05/09 17Apacheの特徴
• 無償で利用できる • モジュールによる拡張機能 – ユーザ認証 – アクセス制限 • プラットフォームに対応– Windows, Mac, FreeBSD
ユーザ認証
• Basic認証 – ユーザ名とパスワードをそのまま送信 • Digest認証 – ユーザ名とパスワードをハッシュ値に変換して送 信 12/05/09 19静的コンテンツ
• 変化しない – あらかじめ用意されたファイルをそのまま表示 File File File Server File File File Client動的コンテンツ
• 変化する – サーバサイドで加工する • SSI/CGI/PHP – クライアントサイドで加工する • Javascript File File File Server File File File Client 加工 加工 12/05/09 21Server Side Include
• HTML中に記述されている実行可能コマンドを サーバ側で実行し、結果がHTMLに反映され る • 自動的に自分のWebページの更新時刻を表 示させたり、よく使うテンプレートを別のファイ ルから読み込ませて変更の手間を軽減させ るSSI の仕組み
12/05/09 23 HTML <!-‐-‐#config Qmefmt="%Y/%m/%d %X" -‐-‐> <!-‐-‐#echo var="LAST_MODIFIED" -‐-‐> HTML 利用者 2012/05/10 13:30:28 WWWサーバ 処理 リクエストCommon Gateway Interface
• クライアントからリクエストされたプログラムを
サーバで実行する
CGI の仕組み
12/05/09 25 ー 外 部 CGIは他のプログラムを 呼び出すことがある サーバにURIを要求する CGIは他のプログラムの出力や 自分の出力をまとめてサーバに送る CGIからのデータを送る 受け取ったデータを 整形/表示するPHP:Hypertext Preprocessor
• サーバサイドスクリプト – スクリプトの実行をWebサーバプロセス自身が行 う • HTML文書への埋め込み型 • Cライクな文法PHPの仕組み
12/05/09 27 ー 実行結果 受け取ったデータを 整形/表示する リクエスト PHPスクリプトの解析と実行ECMAScript
• クライアントサイドのスクリプト言語
• JavaScriptとJScriptを標準化するために作られ
たスクリプト言語。