ネットワークアーキテクチャ 第 07 回 (2003/11/26) 「 www のアーキテクチャ」
DESCRIPTION
ネットワークアーキテクチャ 第 07 回 (2003/11/26) 「 WWW のアーキテクチャ」. 村井 純. 09/29(1) 講義概要 / インターネットのアーキテクチャ 10/06(2) もうインターネットを分かっちゃおう 10/13 体育の日 10/20(3)DNS のアーキテクチャ 10/27(4) インターネット自動車のアーキテクチャ 11/03 文化の日 11/10(5)SOI のアーキテクチャ 11/17(6) メールのアーキテクチャ 11/24 勤労感謝の日の振替休日 - PowerPoint PPT PresentationTRANSCRIPT
2003/10/20 Network Architecture 2003f
ネットワークアーキテクチャ第 07 回 (2003/11/26)
「 WWW のアーキテクチャ」
村井 純
2003/10/20 Network Architecture 2003f
2003 年度秋学期授業日程09/29 (1) 講義概要 / インターネットのアーキテクチャ10/06 (2) もうインターネットを分かっちゃおう10/13 体育の日10/20 (3) DNS のアーキテクチャ10/27 (4) インターネット自動車のアーキテクチャ11/03 文化の日11/10 (5) SOI のアーキテクチャ11/17 (6) メールのアーキテクチャ11/24 勤労感謝の日の振替休日11/26 (7) WWW のアーキテクチャ <-( 水曜日 )12/01 (8) セキュリティーのアーキテクチャ12/08 (9) インターネット上の様々なサービスを見てみよう12/15 (10) P2P とオーバレイネットワーク12/22 (11) これからのネットワークアーキテクチャ(1)~ 冬休み01/08 (12) これからのネットワークアーキテクチャ(2)
<-( 木曜日 )01/12 成人の日01/19 (13) 最終試験
(最新情報は SoI* で確認してください)
今日はここ
2003/10/20 Network Architecture 2003f
今日のお品書き
WWW のアーキテクチャWWW のプロトコル (HTTP)メールの拡張メールのセキュリティー
2003/10/20 Network Architecture 2003f
インターネットでの情報公開
2003/10/20 Network Architecture 2003f
• 不特定多数の人に情報を伝えたい• 色んな種類のデータを取り扱えるようにしたい• 相手からのフィードバックも受けたい
→ どうするの?
前回のおさらい• メールは、指定した個人やグループにデータを届けることが出来た
特定の個人
特定のグループ
メール?
マルチメディアデータ
フィードバック?
2003/10/20 Network Architecture 2003f
情報を公開したい!• 自分の情報を他の人に見てほしい!• 実世界ではどうする?
– 回覧板に書いて回し読む– チラシをばらまく– みんなが見ている ( 例: α 館 ) 掲示板に貼り付ける
• インターネットでは?– 管理者も閲覧者も分散している。– 集中して管理しているところがない。
2003/10/20 Network Architecture 2003f
WWW: World Wide Web• クライアント・サーバ型の情報公開システム
– 世界規模の分散型データベース– 公開者は、リソース ( 文書、画像、プログラム等 ) を HTTP で取得できるようにする。– リソースから別のリソースにハイパーリンクする。– 相互にリンクを張り合う様子を絵に描くと「クモの巣」の様に見える。
•World Wide Web :世界中に張り巡らされたクモの巣
2003/10/20 Network Architecture 2003f
WWW のアーキテクチャ
http://www.soi.wide.ad.jp/が見たい!
HTTP
URL
ファイルの中身を送るね!HTML表示
www.sfc.wide.ad.jp
WWW ブラウザ
2003/10/20 Network Architecture 2003f
ハイパーリンク
三田祭へのリンク
www.mitasai.comwww.sfc.keio.ac.jp
ハイパーリンク
2003/10/20 Network Architecture 2003f
WWW のアーキテクチャ
2003/10/20 Network Architecture 2003f
WWW を構成する要素技術• WWW は三つの機能からなりたっている。
– 識別子: URI(Uniform Resource Identifier)• ファイルの場所を示す
– 転送方式: HTTP(Hyper Text Transfer Protocol)• 示した場所のファイルを転送する
– 記述言語: HTML(Hyper Text Markup Language)• 転送されたファイルを整形して表示する
2003/10/20 Network Architecture 2003f
URL: Uniform Resource Identifier• リソース ( 資源 ) を示す識別子
– 特にリソースの場所を示すものを URL と呼ぶ。http://www.soi.wide.ad.jp:80/contents.html
パス・データ名ポート番号省略時はスキームの初期値(HTTP なら 80) に従う
サーバのホスト名スキームアクセスに使うプロトコルプロトコル・サーバ名・サーバ内のファイルの場所の三つによってファイルを一意に特定する。
2003/10/20 Network Architecture 2003f
HTTP: Hyper Text Transfer Protocol• URI の示すファイルを転送する。
– リクエストとレスポンスという単純な構造からなる。– いくつかのメソッドによって目的を指示する。
• GET ( ファイルの取得 )• POST ( 情報の更新 )• PUT ( ファイルの送信 )
– ステートレス ( 状態を保持しない ) である。– ファイルの種類や更新日付などの情報を付ける事ができる。
2003/10/20 Network Architecture 2003f
HTTP メッセージ例 : http://www.soi.wide.ad.jp/HTTP リクエストGET / HTTP/1.1 ← メソッド、ファイル名、プロトコルHost: www.soi.wide.ad.jp ← 接続しようとしているサーバ名 ←空行で終了HTTP レスポンスHTTP/1.1 200 OK ← プロトコル、ステータスコードDate: Fri, 21 Nov 2003 00:20:23 GMT ← 現在時刻Server: Apache/1.3.26 (Unix) ← サーバのソフトウェア名Last-Modified: Mon, 06 Oct 2003 12:49:46 GMT ← 最終更新時刻ETag: “10173-3c4-3f8164ea“ ← 内容が変わると変化する固有値Accept-Ranges: bytes ← 取得範囲を指定できるかどうかContent-Length: 964 ← ファイルサイズ (964bytes)Content-Type: text/html ← ファイルの種別 (HTML 形式 )
← 空行でヘッダの終了<!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 3.2//EN”><HTML> ←以降は HTML ドキュメント内容
2003/10/20 Network Architecture 2003f
HTTP によるやりとり例 (GET)WWWブラウザ WWWサーバ
GET /index.html
内容
GET /picture/wide_big.gif
内容GET /picture/titlesoi.gif
内容
/index.html に含まれる画像をみつける。•/picture/wide_big.gif
•/picture/titlesoi.gif
画像を含んだページを表示する。
2003/10/20 Network Architecture 2003f
HTTP によるやりとり例 (POST)WWWブラウザ WWWサーバ
POST /[email protected]=junjunmessage= おはようございます。更新結果
フォームの内容を送信
更新結果を表示する。情報の更新
更新成功
email: [email protected]: junjunmessage: おはようございます。
2003/10/20 Network Architecture 2003f
HTTP の拡張•ちょっと単純すぎるので色々拡張された。
– Cookie (RFC2965)• 閲覧者の識別子をページを跨いで保存する。
– 基本認証 (RFC2617)• 閲覧に必要なユーザ名とパスワードを送信する。
– 持続的接続 (persistent connection) (HTTP/1.1)• 一回ごとに接続し直していると効率が悪いので、複数のファイルを接続を切らずに続けて転送する。
– 転送エンコーディング• 転送時に内容を圧縮したりする。
2003/10/20 Network Architecture 2003f
HTML• Hyper Text Markup Language
– 文書にしるしを付けて ( マークアップ ) 、ハイパーリンクを可能とする記述方式– CERN (欧州原子核研究機構)の Tim Berners-Lee らが開発– 元々、文書の構造や論理関係を定義することができる汎用言語として ISO によって標準化された「 SGML 」( Standard Generalized Markup Language )の一種 – 命令文は < > で挟まれた「タグ」によって表記される– 基本構造は、
< tag name> 対象となるコンテンツ</tag name>という開始タグと終了タグの対になっており、ブラウザはこれを処理して表示する
2003/10/20 Network Architecture 2003f
HTML の例<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN
"http://www.w3.org/TR/html4/strict.dtd"><html>← 文書の種類 (HTML4.01)
<html> ←HTML の開始<head> ←HTML ヘッダ<title> ネットワークアーキテクチャ第 07 回 </title> ← ページのタイト
ル</head><body> ← 文書の内容
<h1> 第 07 回 WWW のアーキテクチャ </h1> ← 表題<h2> 今日のお品書き </h2> ← 小表題
<p> 今回は WWW のアーキテクチャです。 </p> ← テキスト
<p><a href="http://www.soi.wide.ad.jp/">SOI のトップページ </a> に戻る。</p>←SOI のページにリンク
</body></html> ←HTML の終了
2003/10/20 Network Architecture 2003f
HTML のアーキテクチャHTML 文書 (html 要素 )ヘッダ (head 要素 )
本文 (body 要素 )第 07 回 WWW のアーキテクチャ (h1 要素:表題 レベル 1)
今日のお品書き (h2 要素:表題 レベル 2)
今回は WWW のアーキテクチャです。
に戻る。SOI のトップページ (a 要素: http://www.soi.wide.ad.jp/ にリンク )
ネットワークアーキテクチャ第 07 回 (title 要素:ページのタイトル )
文書の種類は HTML4.01 ( 文書型宣言 )
2003/10/20 Network Architecture 2003f
WWW の拡張機能
2003/10/20 Network Architecture 2003f
ここまでで…• 不特定多数の人に情報を公開する仕組みはできた!
– でも相手の人たちはどんな人?– どちらかというと一方通行なコミュニケーション→ もっとインタラクティブなコミュニケーションを取りたい!
伝えたいデータHTML 表示
表示するもの:WWW ブラウザHTTP
www.sfc.wide.ad.jpURL
?OK
NG
2003/10/20 Network Architecture 2003f
CGI: Common Gateway Interface• WWW サーバでプログラムを実行する機能
プログラムに渡すオプションを送信プログラムの実行結果を内容として返す
•掲示板•アクセスカウンター•データベースからの検索
プログラムを実行
2003/10/20 Network Architecture 2003f
JAVA アプレット• WWW ブラウザ上で動く Java のプログラム• サーバに格納されたアプレットをクライアントのブラウザにダウンロードして実行することができる
必要に応じて実行結果を送信
プログラム自体をダウンロード
ブラウザに実装された Java VM がプログラムを実行
2003/10/20 Network Architecture 2003f
REST: Representational State Transfer• Architectural Styles and
the Design of Network-based Software Architectures– HTTP/1.1 の設計者 R. Fielding の博士論文– Chap.5: Representational State Transfer (REST)
• WWW のアーキテクチャをあらわしたもの– ウェブサイトが保持・公開しているリソースを URI によって示す。– メソッド: PUT(作成 ) 、 GET( 取得 ) 、 POST( 更新 ) 、 DELETE(削除 ) よってリソースにアクセスでき、その処理結果が返される。– リソースの現在の状態を表現 (Representational State) し、それを転送する (Transfer) アーキテクチャ
• SFC のトップページの含む情報を HTML で表現し、それを URL(http://www.sfc.keio.ac.jp) として示す。
• 自分の課題をテキストで表現して、 SOI の課題提出の URL から送信(POST) する。
2003/10/20 Network Architecture 2003f
HTTP をとりまくアプリケーション
2003/10/20 Network Architecture 2003f
WWW上のアプリケーション
2003/10/20 Network Architecture 2003f
WWW は膨大なコンテンツを含んだデータベース• どうやって目的のコンテンツを見つける?
– URL が分からない場合は?– 目的のサイトが頻繁に更新される場合は?
URL
たくさんの WWW サーバ大量の WWW コンテンツ頻繁な更新作業
欲しいデータ×
どうやって探す?更新はどうやったら分かる?
2003/10/20 Network Architecture 2003f
検索エンジン• 分散している WWW サイトの検索機能を提供
– WWW サイトの内容を取得、データベースを作成– 様々なメトリックから順序づけして表示
• 大別すると 2 種類に分かれる– 「ディレクトリ型検索エンジン」:
• ロボットではなく人間ウェブサイトを審査• カテゴリーごとにデータベースに登録• 例:「 Yahoo! 」など
– 「ロボット型検索エンジン」:• ロボットがウェブ上を自動的に巡回してデータを収集• 構文解析プログラムなどでキーワードを抽出し、自動的にデータ
ベースを作成する• 例:「 Google 」「 goo 」「 Infoseek 」など
2003/10/20 Network Architecture 2003f
Google PageRank™• WWW のリンクを利用したページの評価
– 他からリンクされているページは良いページだ– 良いページからリンクされているページはもっと良い
2003/10/20 Network Architecture 2003f
アンテナ•複数のサイトの最終更新時刻の取得・一覧
– 例: SFC Antenna X– 主に日記のような更新頻度の高いページに対して利用されている。– HTTPヘッダの最終更新時刻やファイルサイズを見て更新時刻を判断– ちょっと泥臭い。
2003/10/20 Network Architecture 2003f
Weblog• Weblog あるいは blog
– 定義は色々。•広義には Web上の日記のような更新頻度の高いサイト•狭義には、あるトピック毎に URL を紹介してそれに対するコメントを書き、下のような技術によって相互言及を行うサイト
– いくつかの面白い要素技術• RSS :ウェブサイトの要約情報• TrackBack :リンク先に対して言及した内容を送りつける
– SFC でも最近流行りだしている ( らしい ) 。
2003/10/20 Network Architecture 2003f
要素技術 1 : RSS による要約の提供• RDF Site Summary
– ウェブサイトの概要をメタデータとして記述する形式– ページ毎のタイトルや内容の要約、更新時刻を提供
•再利用性の向上– 複数のウェブサイトから RSS を収集し、再利用
RSSRSS
RSS
RSS
情報の集約
閲覧
2003/10/20 Network Architecture 2003f
要素技術 2 : Trackback による相互言及支援• 自分がリンクを張った相手に、そのことを通知
– A さんが B さんの記事 C にリンクを張り、記事 D を追加– B さんのウェブサイトに Trackback Ping( 言及通知 ) を送信– B さんの記事 C から記事 D にリンクを張り返す
A さんのウェブサイト B さんのウェブサイト
記事 Cおなかすいたー!!!!記事の追加 記事 DB さんご飯食べれば? ↑B さんの記事 C へのリンク Trackback to 記事 D
B さんご飯食べれば?
Trackback Ping( 言及通知 )
A さん
リンクの張り返し
2003/10/20 Network Architecture 2003f
WebDAV ( Web-based Distributed Authoring and Versioning )• HTTP1.1 を拡張し、 Web コンテンツなどの編集( Authoring )やリビジョン管理( Versioning )を行うことを目的に規定されたプロトコルの名称
– RFC2291 で提唱、 RFC2518 で定義
コンテンツの閲覧
コンテンツの編集 WebDAV サーバクライアント
どちらも 80 番ポートを利用
2003/10/20 Network Architecture 2003f
Web アプリケーション• RPC
– SOAP– Amazon
2003/10/20 Network Architecture 2003f
WWW のセキュリティ
2003/10/20 Network Architecture 2003f
WWW におけるセキュリティ•通信路の暗号化
– SSL• ブラウザのセキュリティホール• 個人情報の保護
– Cookie によるトラッキング• Amazon(良い例 )• バナー広告 (悪い例 )
– P3P• プライバシーポリシーの表現の標準化
2003/10/20 Network Architecture 2003f
SSL による通信路の暗号化• Secure Socket Layer
– HTTP と TCP の間で暗号化を行う。•盗聴の防止
– 証明書による相手の認証• なりすましの防止
HTTPSSLTCPIP
Ethernet
私がサーバAですよー。…え、証明書なんてないよ!
サーバA
証明書を見せてみろ!正しかったら信用しよう。
サーバAになりすました人閲覧者
2003/10/20 Network Architecture 2003f
ブラウザのセキュリティホール• 表示することによってプログラムを自動実行
– 本来は、表示しただけではコンピュータに悪影響を与えるプログラムは実行できないようになっている。– ブラウザのセキュリティホールによって、ファイルの削除や、勝手に情報を送信してしまう。– HTML メールによっても感染してしまう。
2003/10/20 Network Architecture 2003f
個人情報の保護•何を守るのか:
– こんなケースを考える•通販サイト A で自分の住所と名前を入力した。• 掲示板サイト B で社長を告発する書き込みをした。
– サイト B の管理者が実はサイト A も管理していたら?• 書き込みした人と住所・名前が結びついてしまうかも…• IP アドレス• Cookie
2003/10/20 Network Architecture 2003f
トラッキングの例: Amazon.com•利用者の閲覧情報を保存
– 保存される個人情報•本名、住所、クレジットカード番号•過去に買ったもの
– 例えば同じ物を買った人の傾向を出してくれる。– 全ての情報は Amazon が保持し、そのプライバシーポリシーに従う。
2003/10/20 Network Architecture 2003f
トラッキングの例:バナー広告•複数のサイト上に設置されている。
– 広告が設置されているサイトと別の広告会社が運営– 保存される個人情報
•その人はどのサイトをいつ閲覧したか– 「ある誰か」の行動や趣味が特定される。– 広告会社に情報を提供しているサイトで本名や住所を入力してしまうと、知らない間に本名とその行動が結びつけられてしまう危険性がある。
2003/10/20 Network Architecture 2003f
Web バグ• HTML メールに埋め込む監視カメラ
– HTML から外部のファイルを読み込む– 「いつ」メールを読んだかが分かってしまう。– IP アドレスから、「どこ」に接続しているかが分かってしまう。
• 「意図しない情報収集」であることが問題
2003/10/20 Network Architecture 2003f
WWW のこれから
2003/10/20 Network Architecture 2003f
コンテンツ管理• WWW コンテンツの肥大化• サイト管理が大変• データベースとの連携が必須
2003/10/20 Network Architecture 2003f
Web サービス• 従来の Web サイト
– サイトにアクセスするのは人間– 何らかの人間の作業が必要
• Web サービス– 人間の作業を介在せず、コンピュータ同士が直接情報をやり取りできるようにする
絵の書き換えが必要
2003/10/20 Network Architecture 2003f
web サービスの仕組み
1 .提供者はサービスを UDDIビジネスレジストリに登録する2.サービス利用者は、利用したサービスを UDDIを使って検索3.WSDLと別途用意された該当 webサービスのメソッドの仕様を見て、その webサービスを利用できるアプリケーションを開発4.開発したアプリケーションを用いて、該当 webサービスを利用
絵の書き換えが必要
2003/10/20 Network Architecture 2003f
Semantic Web• Web の進化
– HTML: 表示のための Web– XML: シンタックスをもった Web→ セマンティックスをもった Web へ
• HTML ベースの Web– → 人間が読んで意味を解釈する
• SemanticWeb– → 構造化されたメタデータ群(オントロジー)に基づいてコンピュータが推論を行い、意味的な解釈をする
– シンタックス [syntax] とは?(1)統語論。統辞論。構文論。(2) コンピューターのプログラム言語における字句間の関係。構文。
– セマンティックス [semantics] =意味論(1)〔言〕 言語の意味現象を研究する分野。意味の本質探究、意味構造の分析、意味変化の原因・類型の分析などを行う。意義学。(2)〔論〕 記号論の一分科。記号とそれが指し示す対象や事態との間の関係を取り扱う。特に論理学では、記号の解釈と真理概念を扱う分野を指す。
– 三省堂提供「大辞林 第二版」より
2003/10/20 Network Architecture 2003f
誰でも見れるように•ユニバーサルデザイン
– 身体に障害がある人も、ない人も同じ情報にアクセスできる
2003/10/20 Network Architecture 2003f
おしまい
2003/10/20 Network Architecture 2003f