WWW の歴史と仕組み WWW の歴史と WWW に必要な要素技術について学ぶ 2009 年 2 月 6 日 情報技術研究センター 飯尾 淳
内容 リソースの特定、ドメインネームシステム 5 ガイダンス 1 Web コンピューティングとは 2 通信技術の基礎 6 セキュリティ 7 まとめ 8 WWW の歴史 3 ハイパーテキストとは 4
ガイダンス
ガイダンス <ul><ul><li>第1日 </li></ul></ul><ul><ul><ul><li>WWWの歴史と仕組み </li></ul></ul></ul><ul><ul><ul><li>Webの表現技術 </li></ul></u...
そもそも Web コンピューティングって?
Webコンピューティングとは <ul><ul><li>定義:「Webコンピューティング」 </li></ul></ul><ul><ul><ul><li>WebアプリやWWW環境を(高度に)利用したコンピュータ活用のこと </li></ul></...
サーバとクライアント <ul><ul><li>サーバとは </li></ul></ul><ul><ul><ul><li>ネットワーク経由でアクセスし、何がしかのサービスを提供する機器 </li></ul></ul></ul><ul><ul><u...
Webアプリケーション(ウェブアプリケーション)とは <ul><ul><li>広義には、Webのしくみを利用し、イントラネット/インターネット上で提供されるアプリケーションサービス </li></ul></ul><ul><ul><li>インテル...
ウェブアプリケーションの例(チケット予約) 出典: http://www.jal.co.jp/ 出典: http://www.jnavi.eki-net.com/ 出典: http://www.ana.co.jp/ 出典: http://t.p...
ウェブアプリケーションの例(電子商取引) 出典: http://www.amazon.co.jp/ 出典: http://www.nissen.co.jp/ 出典: http://www.bk1.co.jp/
ウェブアプリケーションの例(オンラインバンキング) 出典: http://direct.bk.mufg.jp/ 出典: http://ib.resonabank.co.jp/ 出典: http://www.mizuhobank.co.jp/
ウェブアプリケーションの例(掲示板(BBS)) 出典: http://slashdot.jp/ 出典: http://www.2ch.net/newsplus/
ウェブアプリケーションの例(SNS) 出典: http://ja-jp.facebook.com/ ( 上)(下) 出典: http://mixi.jp/
ウェブアプリケーションの例(CMS) 出典: http://www.drupal.org/ 出典: http://www.xoops.org/ 出典: http://plone.org/ 出典: http://www.joomla.org/
ウェブアプリケーションの例(検索等) 出典: http://www.google.co.jp/ 出典: http://maps.google.co.jp/ 出典: http://www.yahoo.co.jp/
ウェブアプリケーションの例(その他の便利なサービス) 出典: http://navi.ekitan.com/ 出典: http://www.taxisite.com/ 出典: http://www.tokyo-ame.jwa.or.jp/
Web コンピューティングの進化 専用 サーバ   専用 クライアント   Web サーバ (汎用)   Web ブラウザ   Web サーバ 汎用サーバ 汎用 リッチ クライアント   リッチクライアント システム Web システム C/S ...
WWW の歴史
Internetの歴史(1) 1969 年 インターネットの原型といわれる ARPANET が始動 -> UCLA 、スタンフォード研究所  (SRI) が接続 -> 同年中に UC サンタバーバラ、ユタ大学も接続 1983 年 ARPANET...
Internetの歴史(2) 1988 年 アメリカで商用インターネット始動。 NSFNet との接続を開始 日本で産学協同研究プロジェクトの WIDE プロジェクト始動 -> IP 接続によるインターネット参加を開始 NTT が日本の主要都市...
WWW以前の世界(FTP) <ul><ul><li>あるデータをインターネットで公開したい!⇒  anonymous FTP サービス </li></ul></ul><ul><ul><li>FTP  ( File Transfer Protoc...
WWW以前の世界(gopher) <ul><ul><li>gopher  サーバ </li></ul></ul><ul><ul><ul><li>ファイルに見出しを付けて管理 </li></ul></ul></ul><ul><ul><ul><li...
WWWの歴史(1) 1983 年 ティム・バーナーズ = リーとロバート・カイリュー、 Web の基本的なアイディアといわれる「 ENQUIRE 」構築 1990 年 11 月 ティム・バーナーズ = リー、 World Wide Web  を...
WWWの歴史(2) 1992 年 イリノイ大学の米国立スーパーコンピュータ応用研究所  (NCSA; National Center for Supercomputing Applications)  に おいて、マーク・アンドリーセンらが画像...
Mosaic: 初期のWebブラウザ
ブラウザ戦争 <ul><ul><li>当初、Netscapeが圧倒的シェアを獲得 </li></ul></ul><ul><ul><li>Microsoftが、Internet ExplorerでWebブラウザのシェア獲得を仕掛ける </li><...
様々なWebブラウザ Internet Explorer Google Chrome Firefox Safari ( 番外) w3m
ブラウザの相互運用性(インターオペラビリティ) <ul><ul><li>様々な理由から、表現の違いや動作の不具合が生じる </li></ul></ul><ul><ul><ul><li>⇒  詳しくは後ほど </li></ul></ul></ul...
ハイパーテキストとは
定義:ハイパーテキスト <ul><ul><li>ふだん使い慣れている WWW の仕組みを見直してみよう </li></ul></ul><ul><ul><li>「ハイパーテキスト」  =  コンピュータを利用した文書セット </li></ul><...
ハイパーテキストのリンク構造 ここをクリック ここをクリック ここをクリック ハイパーリンク ハイパーリンク ハイパーリンク ハイパーリンクは文書の先頭のみを指すわけではないことに注意
ハイパーテキストの歴史(1) 1965 年 テッド・ネルソン、ブラウン大学において、 ・ヴァネヴァー・ブッシュの Memex 構想を具体化 ・ハイパーテキストの概念、 Xanadu Model を提示 1968 年 ダグラス・エンゲルバート、ス...
ハイパーテキストの歴史(2) 1982 年 ケント大学のピーター・ J ・ブラウンが、初の PC 用ハイパーテキスト システム’ GUIDE’ を開発 ・ Three River PERQ ワークステーション向けに開発されたものを   MS-D...
Webページの描くグラフ構造 サーバ A サーバ B サーバ C 循環グラフを成す場合がある
WWWとハイパーテキスト <ul><ul><li>WWWでの活用は、ハイパーテキストというよりも「 ハイパーメディア 」 </li></ul></ul><ul><ul><ul><li>テキストの連携に留まらない </li></ul></ul><...
リソースの特定とドメインネームシステム
ネット上のリソース(資源) <ul><ul><li>リソースとは </li></ul></ul><ul><ul><ul><li>情報の参照先 </li></ul></ul></ul><ul><ul><li>例 </li></ul></ul><u...
ノードの特定 <ul><ul><li>ノードとは </li></ul></ul><ul><ul><ul><li>ネットワーク上に存在するコンピュータ(クライアントおよびサーバの両者を対象) </li></ul></ul></ul><ul><ul...
IPアドレスの課題 <ul><ul><li>IP アドレス( v4, v6 ともに)は覚えにくい </li></ul></ul><ul><ul><ul><li>「人間が簡単に暗記できる数値は7桁まで」? </li></ul></ul></ul>...
DNS (Domain Name System) <ul><ul><li>ドメイン名とIPアドレスの変換を行うサーバが、DNSサーバ </li></ul></ul>tuat.ac.jp  以下を管理 ac.jp  以下を管理 jp   以下を管...
nslookup による IP アドレス検索 <ul><ul><li>やってみよう </li></ul></ul><ul><ul><ul><li>Windows の場合 </li></ul></ul></ul><ul><ul><ul><ul><...
URI、URL、URN <ul><ul><li>URI (Uniform Resource Identifier) </li></ul></ul><ul><ul><ul><li>インターネット上のリソースを特定する仕組みの総称、RFC1630に...
Web コンピューティングで利用する通信技術の基礎
複数サービスの提供 <ul><ul><li>IPアドレスでサーバを区別 </li></ul></ul><ul><ul><li>ではひとつのサーバで数多くのサービスを提供する場合は? </li></ul></ul>メールサーバ ウェブサーバ ファ...
ポート番号 <ul><ul><li>ポート番号でサービスを区別 </li></ul></ul><ul><ul><li>サービスの特定 =  IP アドレス  +  ポート番号 </li></ul></ul><ul><ul><ul><li>注意:...
HTTP <ul><ul><li>HTTP (Hyper-Text Transfer Protocol) </li></ul></ul><ul><ul><ul><li>Web サーバとクライアント( Web ブラウザ)間の通信方式を定めるプロト...
HTTPレスポンスコード (HTTP1.1) HTTP Version not Supported 505 Payment Required 402 Bad Gateway 502 Use Proxy 305 Server Unavailabl...
セキュリティ
なぜセキュリティを考えなければならないのか <ul><ul><li>昔は牧歌的な時代だった </li></ul></ul><ul><ul><ul><li>性善説ベースの運用、研究者間の信頼に基づくネットワーク </li></ul></ul></...
Webコンピューティングにおける認証技術 <ul><ul><li>パスワード(パスフレーズ) </li></ul></ul><ul><ul><ul><li>IDとパスワードを組み合わせる認証方式 </li></ul></ul></ul><ul>...
不正な情報収集に対する対策 <ul><ul><li>データ収集ロボットによる不正な情報収集 </li></ul></ul><ul><ul><ul><li>代表的な例: spambot によるメールアドレス収集 </li></ul></ul></...
XSS (クロスサイト・スクリプティング) <ul><ul><li>ユーザからの不正な入力をそのまま表示してしまう脆弱性を突いた不正攻撃 </li></ul></ul><ul><ul><ul><li>本来は、「 < 」⇒「 &lt; 」、「 >...
Webコンピューティングに対するその他の攻撃手法 <ul><ul><li>SQLインジェクション </li></ul></ul><ul><ul><ul><li>XSSと同様、ユーザからの入力にSQLコマンドを紛れ込ませることでDBを不正に操作 ...
まとめ
本講義のまとめ <ul><ul><li>Web コンピューティングとは Web アプリや WWW 環境によるコンピュータ活用である </li></ul></ul><ul><ul><ul><li>電子商取引、オンラインバンキング・トレード、掲示板...
Upcoming SlideShare
Loading in …5
×

Lesson01

38,016 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
38,016
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lesson01

  1. 1. WWW の歴史と仕組み WWW の歴史と WWW に必要な要素技術について学ぶ 2009 年 2 月 6 日 情報技術研究センター 飯尾 淳
  2. 2. 内容 リソースの特定、ドメインネームシステム 5 ガイダンス 1 Web コンピューティングとは 2 通信技術の基礎 6 セキュリティ 7 まとめ 8 WWW の歴史 3 ハイパーテキストとは 4
  3. 3. ガイダンス
  4. 4. ガイダンス <ul><ul><li>第1日 </li></ul></ul><ul><ul><ul><li>WWWの歴史と仕組み </li></ul></ul></ul><ul><ul><ul><li>Webの表現技術 </li></ul></ul></ul><ul><ul><ul><li>Webコンピューティング演習 </li></ul></ul></ul><ul><ul><li>第2日 </li></ul></ul><ul><ul><ul><li>アプリケーションの記述言語 </li></ul></ul></ul><ul><ul><ul><li>Webアプリケーションの仕組み </li></ul></ul></ul><ul><ul><ul><li>Webコンピューティングの具体例 </li></ul></ul></ul><ul><ul><ul><li>Webコンピューティング演習 </li></ul></ul></ul><ul><ul><li>第3日 </li></ul></ul><ul><ul><ul><li>オープンソースソフトウェア </li></ul></ul></ul><ul><ul><ul><li>Webとリッチクライアント </li></ul></ul></ul><ul><ul><ul><li>XML概論 </li></ul></ul></ul><ul><ul><ul><li>Web2.0の世界 </li></ul></ul></ul>
  5. 5. そもそも Web コンピューティングって?
  6. 6. Webコンピューティングとは <ul><ul><li>定義:「Webコンピューティング」 </li></ul></ul><ul><ul><ul><li>WebアプリやWWW環境を(高度に)利用したコンピュータ活用のこと </li></ul></ul></ul><ul><ul><li>(参考) さまざまなコンピューティング環境 </li></ul></ul><ul><ul><ul><li>デスクトップアプリケーション </li></ul></ul></ul><ul><ul><ul><ul><li>オフィススイート(生産性ソフトウェア): ワープロソフト、表計算ソフト、プレゼンテーション、データベースなど </li></ul></ul></ul></ul><ul><ul><ul><ul><li>専門用途アプリケーション: CAD/CAM、デザイン、DTP、フォトレタッチ、財務会計など </li></ul></ul></ul></ul><ul><ul><ul><ul><li>コンシューマ向けアプリケーション: ビデオ編集、 DTM、ゲーム、住所録管理、年賀状作成など </li></ul></ul></ul></ul><ul><ul><ul><li>クライアント・サーバシステム </li></ul></ul></ul><ul><ul><ul><li>基幹システム </li></ul></ul></ul><ul><ul><ul><li>レガシーシステム </li></ul></ul></ul><ul><ul><ul><li>組込み機器 </li></ul></ul></ul><ul><ul><ul><li>ウェアラブルコンピューティング </li></ul></ul></ul><ul><ul><ul><li>ユビキタスコンピューティング </li></ul></ul></ul>写真:三菱総合研究所
  7. 7. サーバとクライアント <ul><ul><li>サーバとは </li></ul></ul><ul><ul><ul><li>ネットワーク経由でアクセスし、何がしかのサービスを提供する機器 </li></ul></ul></ul><ul><ul><ul><li>Webコンピューティングの場合は、Webサーバがクライアント向けインタフェースを提供 </li></ul></ul></ul><ul><ul><ul><li>注意:Webコンピューティングにおけるサーバは、Webサーバ以外のサーバも活躍する </li></ul></ul></ul><ul><ul><li>クライアントとは </li></ul></ul><ul><ul><ul><li>ユーザが操作 </li></ul></ul></ul><ul><ul><ul><li>サーバに対して「リクエスト」を送信する </li></ul></ul></ul><ul><ul><ul><li>サーバから結果を受け取ってユーザに表示する </li></ul></ul></ul><ul><ul><ul><li>Webコンピューティングの場合は、Webブラウザがクライアントになる場合が多い </li></ul></ul></ul>① リクエストを送信 ② 処理結果としてのサービスを返信 クライアント サーバ
  8. 8. Webアプリケーション(ウェブアプリケーション)とは <ul><ul><li>広義には、Webのしくみを利用し、イントラネット/インターネット上で提供されるアプリケーションサービス </li></ul></ul><ul><ul><li>インテル用語集より </li></ul></ul><ul><ul><li>さまざまなWebアプリケーション </li></ul></ul><ul><ul><ul><li>電子商取引(e-Commerce) </li></ul></ul></ul><ul><ul><ul><ul><li>単独のオンラインショップだけでなく、ショッピングモールなどもある </li></ul></ul></ul></ul><ul><ul><ul><li>オンラインバンキング、オンライントレード </li></ul></ul></ul><ul><ul><ul><ul><li>エンドユーザ向けにWebアプリケーションを提供 </li></ul></ul></ul></ul><ul><ul><ul><li>掲示板、SNS (Social Networking Service) </li></ul></ul></ul><ul><ul><ul><ul><li>大規模掲示板から専門的なものまで、百花繚乱 </li></ul></ul></ul></ul><ul><ul><ul><li>CMS (Content Management System) </li></ul></ul></ul><ul><ul><ul><ul><li>WWWで提供する情報(記事や写真、図表など)をデータベースで一元的に管理するシステム </li></ul></ul></ul></ul><ul><ul><ul><li>e-Learning </li></ul></ul></ul><ul><ul><ul><ul><li>オンラインで教育のコースを提供。成績管理、学習進捗管理などの機能を持つ総合的なものもある </li></ul></ul></ul></ul><ul><ul><li>特徴 </li></ul></ul><ul><ul><ul><li>全てWebブラウザからアクセス可能! </li></ul></ul></ul>
  9. 9. ウェブアプリケーションの例(チケット予約) 出典: http://www.jal.co.jp/ 出典: http://www.jnavi.eki-net.com/ 出典: http://www.ana.co.jp/ 出典: http://t.pia.jp/
  10. 10. ウェブアプリケーションの例(電子商取引) 出典: http://www.amazon.co.jp/ 出典: http://www.nissen.co.jp/ 出典: http://www.bk1.co.jp/
  11. 11. ウェブアプリケーションの例(オンラインバンキング) 出典: http://direct.bk.mufg.jp/ 出典: http://ib.resonabank.co.jp/ 出典: http://www.mizuhobank.co.jp/
  12. 12. ウェブアプリケーションの例(掲示板(BBS)) 出典: http://slashdot.jp/ 出典: http://www.2ch.net/newsplus/
  13. 13. ウェブアプリケーションの例(SNS) 出典: http://ja-jp.facebook.com/ ( 上)(下) 出典: http://mixi.jp/
  14. 14. ウェブアプリケーションの例(CMS) 出典: http://www.drupal.org/ 出典: http://www.xoops.org/ 出典: http://plone.org/ 出典: http://www.joomla.org/
  15. 15. ウェブアプリケーションの例(検索等) 出典: http://www.google.co.jp/ 出典: http://maps.google.co.jp/ 出典: http://www.yahoo.co.jp/
  16. 16. ウェブアプリケーションの例(その他の便利なサービス) 出典: http://navi.ekitan.com/ 出典: http://www.taxisite.com/ 出典: http://www.tokyo-ame.jwa.or.jp/
  17. 17. Web コンピューティングの進化 専用 サーバ   専用 クライアント   Web サーバ (汎用)   Web ブラウザ   Web サーバ 汎用サーバ 汎用 リッチ クライアント   リッチクライアント システム Web システム C/S システム
  18. 18. WWW の歴史
  19. 19. Internetの歴史(1) 1969 年 インターネットの原型といわれる ARPANET が始動 -> UCLA 、スタンフォード研究所 (SRI) が接続 -> 同年中に UC サンタバーバラ、ユタ大学も接続 1983 年 ARPANET のプロトコルが NCP から TCP/IP に切り替わる 1984 年 日本で JUNET ができる(東大、慶大、東京工業大が相互接続) 1986 年 全米科学財団( National Science Foundation )が 学術研究用のネットワーク基盤 NSFNet の運用開始 インターネットのバックボーンが ARPANET から NSFNet へ移行
  20. 20. Internetの歴史(2) 1988 年 アメリカで商用インターネット始動。 NSFNet との接続を開始 日本で産学協同研究プロジェクトの WIDE プロジェクト始動 -> IP 接続によるインターネット参加を開始 NTT が日本の主要都市(全都道府県庁 所在地)を結んだ光ケーブル網を完成 -> 翌年 1989 年には NSFNet へ接続 1990 年 欧州原子核研究機構 CERN において、ティム・バーナーズ = リーが 最初の WWW サーバとブラウザを完成 1995 年 NSFNet が民間へ移管 インターネット関連機能を盛り込んだ Windows95 が登場 -> 個人ユーザの利用拡大
  21. 21. WWW以前の世界(FTP) <ul><ul><li>あるデータをインターネットで公開したい!⇒ anonymous FTP サービス </li></ul></ul><ul><ul><li>FTP ( File Transfer Protocol ) </li></ul></ul><ul><ul><ul><li>ファイルを転送するためのプロトコル </li></ul></ul></ul><ul><ul><ul><li>FTP サーバと FTP クライアントでファイルをやりとりする </li></ul></ul></ul><ul><ul><li>不特定多数に公開したい場合 </li></ul></ul><ul><ul><ul><li>ゲストでログインしてファイルを取得可能 </li></ul></ul></ul><ul><ul><ul><li>通常の運用方法 </li></ul></ul></ul><ul><ul><ul><ul><li>ID: anonymous PW: (利用者のメールアドレス) </li></ul></ul></ul></ul><ul><ul><li>anonymous FTP サービスの問題点 </li></ul></ul><ul><ul><ul><li>そっけないインタフェース </li></ul></ul></ul><ul><ul><ul><li>ファイル名ベースのやりとり </li></ul></ul></ul><ul><ul><ul><li>検索等の付帯機能なし </li></ul></ul></ul><ul><ul><ul><li>性善説に基づく運用 </li></ul></ul></ul>
  22. 22. WWW以前の世界(gopher) <ul><ul><li>gopher サーバ </li></ul></ul><ul><ul><ul><li>ファイルに見出しを付けて管理 </li></ul></ul></ul><ul><ul><ul><li>ネットワーク横断的に検索可能 </li></ul></ul></ul><ul><ul><ul><li>サーバを渡り歩いてアクセス </li></ul></ul></ul><ul><ul><li>gopher の歴史 </li></ul></ul><ul><ul><ul><li>1991 年にミネソタ大で開発 </li></ul></ul></ul><ul><ul><ul><li>WWW にとって代わられ、次第に利用されなくなった </li></ul></ul></ul><ul><ul><li>gopher サービスの問題点 </li></ul></ul><ul><ul><ul><li>いぜんとしてそっけないインタフェース </li></ul></ul></ul><ul><ul><ul><li>やはりファイル名ベースのやりとり </li></ul></ul></ul><ul><ul><ul><li>付帯機能は弱い </li></ul></ul></ul>
  23. 23. WWWの歴史(1) 1983 年 ティム・バーナーズ = リーとロバート・カイリュー、 Web の基本的なアイディアといわれる「 ENQUIRE 」構築 1990 年 11 月 ティム・バーナーズ = リー、 World Wide Web をより具体化した 提案書 “ WorldWideWeb: Proposal for a HyperText Project” 発表 最初のウェブページを Next ワークステーション上にて実装開始 世界初のウェブブラウザとウェブサーバを開発 1991 年 8 月 ティム・バーナーズ = リー、‘ World Wide Web Summary’ を alt.hypertext ニュースグループ に投稿 WWW がインターネット上で利用可能に
  24. 24. WWWの歴史(2) 1992 年 イリノイ大学の米国立スーパーコンピュータ応用研究所 (NCSA; National Center for Supercomputing Applications) に おいて、マーク・アンドリーセンらが画像なども扱える革新的な ブラウザ’ Mosaic’ を開発 ソースコードを無料で公開した>利用拡大 1993 年 4 月 CERN 、 WWW の無料公開を発表 1994 年 WWW コンソーシアム設立 World Wide Web 上で使用される各種技術の標準化を 推進する非営利団体
  25. 25. Mosaic: 初期のWebブラウザ
  26. 26. ブラウザ戦争 <ul><ul><li>当初、Netscapeが圧倒的シェアを獲得 </li></ul></ul><ul><ul><li>Microsoftが、Internet ExplorerでWebブラウザのシェア獲得を仕掛ける </li></ul></ul><ul><ul><ul><li>OSとの抱き合わせ提供で、シェア逆転 </li></ul></ul></ul><ul><ul><li>ブラウザ戦争がもたらしたもの </li></ul></ul><ul><ul><ul><li>メリット:技術革新 </li></ul></ul></ul><ul><ul><ul><li>デメリット:独自拡張による相互運用性の低下 </li></ul></ul></ul>出典:独立行政法人情報処理推進機構 「互換性の高い Web コンテンツ作成を支援するツールの仕様検討 調査報告書」 最近の Web ブラウザに関するシェアの推移
  27. 27. 様々なWebブラウザ Internet Explorer Google Chrome Firefox Safari ( 番外) w3m
  28. 28. ブラウザの相互運用性(インターオペラビリティ) <ul><ul><li>様々な理由から、表現の違いや動作の不具合が生じる </li></ul></ul><ul><ul><ul><li>⇒ 詳しくは後ほど </li></ul></ul></ul><ul><ul><li>相互運用性が欠如している例(右図) </li></ul></ul><ul><ul><ul><li>Mac OS X および(仮想) Windows 上で、様々なブラウザ( Internet Explorer 、 Firefox 、 Safari 等)のレンダリング結果を比較 </li></ul></ul></ul>
  29. 29. ハイパーテキストとは
  30. 30. 定義:ハイパーテキスト <ul><ul><li>ふだん使い慣れている WWW の仕組みを見直してみよう </li></ul></ul><ul><ul><li>「ハイパーテキスト」 = コンピュータを利用した文書セット </li></ul></ul><ul><ul><ul><li>特徴:文書中、任意の場所に「ハイパーリンク」が埋め込まれている </li></ul></ul></ul><ul><ul><ul><li>ハイパーリンク:他の文書に関する位置情報 </li></ul></ul></ul><ul><ul><ul><li>ハイパーリンクを辿っていくことで、複数の文書を自由に渡り歩きながら文書の森を探求できる </li></ul></ul></ul><ul><li>「 ハイパーリンク 」だということが分かることもデザイン上の重要な要素 </li></ul><ul><li>HTML ファイルは単なるテキストファイル。イメージデータもある種のハイパーリンクで埋め込まれていることに注意 </li></ul>
  31. 31. ハイパーテキストのリンク構造 ここをクリック ここをクリック ここをクリック ハイパーリンク ハイパーリンク ハイパーリンク ハイパーリンクは文書の先頭のみを指すわけではないことに注意
  32. 32. ハイパーテキストの歴史(1) 1965 年 テッド・ネルソン、ブラウン大学において、 ・ヴァネヴァー・ブッシュの Memex 構想を具体化 ・ハイパーテキストの概念、 Xanadu Model を提示 1968 年 ダグラス・エンゲルバート、スタンフォード研究所で NLS ( oNLine System )の研究をすすめ、革新的といわれる ハイパーテキストインタフェースのデモを実施 1980 年 ・カーネギーメロン大学において、アレン・ニューウェル指導のもと、   ZOG を開発 ・「フレーム」、「カード」型システムの原型 ・ DEC の Vax 版から Pascal ベースの Three Rivers PERQ ワーク  ステーションに移植 ・この年アメリカ海軍の航空母艦、カール・ヴィンソン( CVN-70 )に配備 ・ティム・バーナーズ=リー等、 ENQUIRE を開発
  33. 33. ハイパーテキストの歴史(2) 1982 年 ケント大学のピーター・ J ・ブラウンが、初の PC 用ハイパーテキスト システム’ GUIDE’ を開発 ・ Three River PERQ ワークステーション向けに開発されたものを   MS-DOS に移植 1987 年 アップルコンピュータ社が HyperCard を発表 1993 年 イリノイ大学 NCSA において Mosaic を発表 ・ X Window System 版に加え、後に PC 版、 Mac 版が発表され、   WWW 利用が増加
  34. 34. Webページの描くグラフ構造 サーバ A サーバ B サーバ C 循環グラフを成す場合がある
  35. 35. WWWとハイパーテキスト <ul><ul><li>WWWでの活用は、ハイパーテキストというよりも「 ハイパーメディア 」 </li></ul></ul><ul><ul><ul><li>テキストの連携に留まらない </li></ul></ul></ul><ul><ul><ul><li>マルチメディアが活用されている ⇒ まさにWWW普及に関する原動力のひとつ </li></ul></ul></ul><ul><ul><ul><li>メディアの利用については「Webとリッチコンテンツ」にて解説 </li></ul></ul></ul>
  36. 36. リソースの特定とドメインネームシステム
  37. 37. ネット上のリソース(資源) <ul><ul><li>リソースとは </li></ul></ul><ul><ul><ul><li>情報の参照先 </li></ul></ul></ul><ul><ul><li>例 </li></ul></ul><ul><ul><ul><li>WWWのページ、ビデオデータ、音楽データ </li></ul></ul></ul><ul><ul><ul><li>データベースに格納されているデータ </li></ul></ul></ul><ul><ul><ul><li>ISBN、ISSN (本や雑誌の番号) </li></ul></ul></ul><ul><ul><ul><li>リモートに存在するCPU (計算資源) </li></ul></ul></ul>
  38. 38. ノードの特定 <ul><ul><li>ノードとは </li></ul></ul><ul><ul><ul><li>ネットワーク上に存在するコンピュータ(クライアントおよびサーバの両者を対象) </li></ul></ul></ul><ul><ul><li>基本的なアドレスの特定 </li></ul></ul><ul><ul><li>IP(Internet Protocol) アドレス </li></ul></ul><ul><ul><li>注意: ノードで特定されないリソースも存在する </li></ul></ul><ul><ul><ul><li>物理的なハードウェアで特定できないもの(負荷分散サーバによるサービス、等) </li></ul></ul></ul><ul><ul><ul><li>物理的にコンピュータではないもの( ISBN 、 ISSN ) </li></ul></ul></ul>128 ビットの数値として特定されるアドレスを、 16 ビット単位で区切り ( 「 : 」で区切る) 16 進数により表現する。例: 3ae3:90a0:bd05:01d2:288a:1fc0:0001:10ee IPv6 (IP アドレス Ver.6) 32 ビットの数値として特定されるアドレスを、「 . 」で区切られた、4つの 10 進数 (0 から 255 まで ) の組で表す。例: 133.148.20.32 IPv4 (IP アドレス Ver.4)
  39. 39. IPアドレスの課題 <ul><ul><li>IP アドレス( v4, v6 ともに)は覚えにくい </li></ul></ul><ul><ul><ul><li>「人間が簡単に暗記できる数値は7桁まで」? </li></ul></ul></ul><ul><ul><li>シンボルで表記 </li></ul></ul><ul><ul><li>例 </li></ul></ul><ul><ul><ul><li>東京農工大学のウェブサーバ www.tuat.ac.jp =   165.93.11.108 </li></ul></ul></ul><ul><ul><ul><li>三菱総合研究所(情報技術研究センター)のウェブサーバ </li></ul></ul></ul><ul><ul><ul><li>it-center.mri.co.jp = 133.148.32.17 </li></ul></ul></ul><ul><ul><li>FQDN (Fully Qualified Domain Name) </li></ul></ul><ul><ul><ul><li>ドメイン名、サブドメイン名、マシン名まで全て指定した形式 </li></ul></ul></ul>www.tuat.ac.jp マシン名 (実際には仮想マシンや複数マシンによる 負荷分散環境の場合があり得る) ドメイン名
  40. 40. DNS (Domain Name System) <ul><ul><li>ドメイン名とIPアドレスの変換を行うサーバが、DNSサーバ </li></ul></ul>tuat.ac.jp 以下を管理 ac.jp 以下を管理 jp 以下を管理 co.jp 以下を管理 mri.co.jp 以下を管理 it-center.mri.co.jp = 133.148.32.17 u-tokyo.ac.jp 以下を管理 www.u-tokyo.ac.jp = 133.11.128.254 go.jp 以下を管理 it-center.mri.co.jp の IP アドレスは?
  41. 41. nslookup による IP アドレス検索 <ul><ul><li>やってみよう </li></ul></ul><ul><ul><ul><li>Windows の場合 </li></ul></ul></ul><ul><ul><ul><ul><li>コマンドプロンプト (command.com) を起動 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>nslookup ( 調べたいドメイン名 ) [RET] </li></ul></ul></ul></ul><ul><ul><ul><ul><li>IP アドレスが表示される(右図) </li></ul></ul></ul></ul><ul><ul><ul><li>Linux の場合 </li></ul></ul></ul><ul><ul><ul><ul><li>ターミナル( gnome-terminal など)を起動 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Linux で利用できるコマンド </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>nslookup </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>host </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>dig </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>操作方法は Windows の場合と同様 </li></ul></ul></ul></ul>
  42. 42. URI、URL、URN <ul><ul><li>URI (Uniform Resource Identifier) </li></ul></ul><ul><ul><ul><li>インターネット上のリソースを特定する仕組みの総称、RFC1630において定義 </li></ul></ul></ul><ul><ul><ul><li>DNSやIPアドレスよりもさらに抽象化された概念 </li></ul></ul></ul><ul><ul><li>URL (Uniform Resource Locator) </li></ul></ul><ul><ul><ul><li>DNSなどのアクセス手段によってインターネット上のリソースを示す表現方法 </li></ul></ul></ul><ul><ul><li>プロトコルの例 </li></ul></ul><ul><li>https:// ftp:// mailto: news: </li></ul><ul><ul><li>URN (Uniform Resource Name) </li></ul></ul><ul><ul><ul><li>リソースに付けられた名前。URNは場所が移動しても一意に定められなければならない </li></ul></ul></ul>http://www.tuat.ac.jp:8080/abc/ プロトコル ドメイン名 ポート番号 ファイル名
  43. 43. Web コンピューティングで利用する通信技術の基礎
  44. 44. 複数サービスの提供 <ul><ul><li>IPアドレスでサーバを区別 </li></ul></ul><ul><ul><li>ではひとつのサーバで数多くのサービスを提供する場合は? </li></ul></ul>メールサーバ ウェブサーバ ファイルサーバ ターミナルサーバ xxx.yyy.co.jp
  45. 45. ポート番号 <ul><ul><li>ポート番号でサービスを区別 </li></ul></ul><ul><ul><li>サービスの特定 = IP アドレス + ポート番号 </li></ul></ul><ul><ul><ul><li>注意: クライアント側のポート番号は自動的に割り振られる </li></ul></ul></ul><ul><ul><li>Well known port (特定サービスのために予約された番号) </li></ul></ul><ul><ul><ul><li>/etc/services ( UNIX の場合)に列挙されている </li></ul></ul></ul>作成:三菱総合研究所 443 SSL (Secure Socket Layer: (https) セキュアな HTTP) 109 / 110 POP2 / POP3 ( Post Office Protocol: メール受信) 80 WWW 25 SMTP ( Simple Mail Transfer Protocol: メール送信) 22 SSH (セキュアシェル) 20 ( データ ) 、 21 FTP (ファイル転送) 番号 サービス
  46. 46. HTTP <ul><ul><li>HTTP (Hyper-Text Transfer Protocol) </li></ul></ul><ul><ul><ul><li>Web サーバとクライアント( Web ブラウザ)間の通信方式を定めるプロトコル </li></ul></ul></ul><ul><ul><ul><li>RFC2616 で規定されている </li></ul></ul></ul><ul><ul><li>HTTP1.0 による通信の例 </li></ul></ul><ul><ul><ul><li>GET / HTTP1.0     ←リクエスト </li></ul></ul></ul><ul><ul><ul><li>サーバからのレスポンス </li></ul></ul></ul><ul><ul><ul><li>HTTP/1.0 200 OK </li></ul></ul></ul><ul><ul><ul><li>Cache-Control: private </li></ul></ul></ul><ul><ul><ul><li>Content-Type: text/html </li></ul></ul></ul><ul><ul><ul><li>Date: Tue, 10 Nov 2008 12:45:02 GMT </li></ul></ul></ul><ul><ul><ul><li>Connection: Close </li></ul></ul></ul><ul><ul><ul><li><html><head> </li></ul></ul></ul><ul><ul><ul><li>… (以下略) </li></ul></ul></ul><ul><ul><li>現在は、 HTTP1.1 による通信が主流 </li></ul></ul>物理層 データリンク層 ネットワーク層 トランスポート層 セッション層 プレゼンテーション層 アプリケーション層 HTTP TCP
  47. 47. HTTPレスポンスコード (HTTP1.1) HTTP Version not Supported 505 Payment Required 402 Bad Gateway 502 Use Proxy 305 Server Unavailable 503 Bad Request 400 Gateway Time-out 504 Unauthorized 401 Not Implemented 501 Not Modified 304 Forbidden 403 Internal Server Error 500 See Other 303 Unsupported Media Type 415 Moved Temporarily 302 Request-URI Too Large 414 Moved Permanently 301 Request Entity Too Large 413 Multiple Choices 300 Precondition Failed 412 Partial Content 206 Length Required 411 Reset Content 205 Gone 410 No Content 204 Conflict 409 Non-Authoritative Information 203 Request Time-out 408 Accepted 202 Proxy Authentication Required 407 Created 201 Not Acceptable 406 Ok 200 Method Not Allowed 405 Switching Protocols 101 Not Found 404 Continue 100
  48. 48. セキュリティ
  49. 49. なぜセキュリティを考えなければならないのか <ul><ul><li>昔は牧歌的な時代だった </li></ul></ul><ul><ul><ul><li>性善説ベースの運用、研究者間の信頼に基づくネットワーク </li></ul></ul></ul><ul><ul><li>インターネットの商用化とWebコンピューティングの一般化 </li></ul></ul><ul><ul><ul><li>社会生活に与える影響<大> </li></ul></ul></ul><ul><ul><ul><ul><li>便利になった反面、リスクも増大 </li></ul></ul></ul></ul><ul><ul><li>社会的脅威の例 </li></ul></ul><ul><ul><ul><li>オンラインバンキングに対する不正アクセスによる窃盗 </li></ul></ul></ul><ul><ul><ul><li>なりすまし、不正なサーバへの導入等による詐欺行為 </li></ul></ul></ul><ul><ul><ul><li>その他、掲示板への犯行予告など、様々な社会的脅威がある </li></ul></ul></ul><ul><ul><li>Webコンピューティングにおけるセキュリティ </li></ul></ul><ul><ul><ul><li>認証 </li></ul></ul></ul><ul><ul><ul><li>暗号化(SSL)通信 </li></ul></ul></ul>
  50. 50. Webコンピューティングにおける認証技術 <ul><ul><li>パスワード(パスフレーズ) </li></ul></ul><ul><ul><ul><li>IDとパスワードを組み合わせる認証方式 </li></ul></ul></ul><ul><ul><ul><li>メリット:簡単、使いやすい、古くからなじみがある </li></ul></ul></ul><ul><ul><ul><li>デメリット:安易なパスワードは推察されやすい、スケールしない </li></ul></ul></ul><ul><ul><li>ワンタイムパスワード </li></ul></ul><ul><ul><ul><li>時刻等の情報を利用して生成したその場限りのパスワードを用いる認証方式 </li></ul></ul></ul><ul><ul><ul><li>メリット:その場限りのパスワードなので、不正アクセスされにくい </li></ul></ul></ul><ul><ul><ul><li>デメリット:トークン生成機など特殊な装置を必要とする </li></ul></ul></ul><ul><ul><li>マトリクス認証 </li></ul></ul><ul><ul><ul><li>マトリクス形式で示されるパスワードを入力する認証方式 </li></ul></ul></ul><ul><ul><ul><li>メリット:比較的安全 / デメリット:マトリクスを持ち歩く必要がある </li></ul></ul></ul><ul><ul><li>SSO (Single Sign-On) </li></ul></ul><ul><ul><ul><li>パスワード方式と同様だが、システムが連携しており一度認証するだけでよい </li></ul></ul></ul><ul><ul><ul><li>メリット:いちどシステムにログインするだけでよい </li></ul></ul></ul><ul><ul><ul><li>デメリット:いちどパスワードが破られたら、全てが不正攻撃の対象となる、社会的なシステム連携の実現は難しい </li></ul></ul></ul>
  51. 51. 不正な情報収集に対する対策 <ul><ul><li>データ収集ロボットによる不正な情報収集 </li></ul></ul><ul><ul><ul><li>代表的な例: spambot によるメールアドレス収集 </li></ul></ul></ul><ul><ul><ul><li>spambot : spam の送付先収集を目的としたネットロボット </li></ul></ul></ul><ul><ul><li>上記への対策法 </li></ul></ul><ul><ul><ul><li>単純なパターンマッチに適合しないよう、表記を修正 </li></ul></ul></ul><ul><ul><ul><li>例:  sample@tat.ac.jp ⇒ sample at tat dot ac dot jp </li></ul></ul></ul><ul><ul><ul><li>テキストをイメージファイルにしてしまうことも </li></ul></ul></ul><ul><ul><li>CAPTCHA </li></ul></ul><ul><ul><ul><li>掲示板への荒らしや不正なメッセージの自動記入、アカウントや会員登録等の自動登録による不正を防ぐための仕組み </li></ul></ul></ul><ul><ul><ul><li>崩した文字にノイズを加えた画像を提示 ⇒ 人間が判定できるかで判断 </li></ul></ul></ul><ul><ul><li>いずれにしても、いたちごっこ </li></ul></ul><ul><ul><ul><li>パターンマッチは改良される、 CAPTCHA 対策は日々進化する… </li></ul></ul></ul><ul><ul><ul><ul><li>「 CAPTCHA はもう無意味」という指摘すらなされている </li></ul></ul></ul></ul>CAPTCHA 画像の例 HTKEHS と読める
  52. 52. XSS (クロスサイト・スクリプティング) <ul><ul><li>ユーザからの不正な入力をそのまま表示してしまう脆弱性を突いた不正攻撃 </li></ul></ul><ul><ul><ul><li>本来は、「 < 」⇒「 &lt; 」、「 > 」⇒「 &gt; 」などの HTML 要素無効化を行わなければならない </li></ul></ul></ul><ul><ul><ul><li>この処理を「サニタイジング」という </li></ul></ul></ul>
  53. 53. Webコンピューティングに対するその他の攻撃手法 <ul><ul><li>SQLインジェクション </li></ul></ul><ul><ul><ul><li>XSSと同様、ユーザからの入力にSQLコマンドを紛れ込ませることでDBを不正に操作 </li></ul></ul></ul><ul><ul><ul><li>対策:SQLコマンドに対するサニタイジング </li></ul></ul></ul><ul><ul><li>OSコマンドインジェクション </li></ul></ul><ul><ul><ul><li>OSのコマンドを紛れ込ませることでサーバ全体を不正に操作 </li></ul></ul></ul><ul><ul><ul><li>対策:OSコマンドに対するサニタイジング </li></ul></ul></ul><ul><ul><li>セッションハイジャック </li></ul></ul><ul><ul><ul><li>サーバとクライアントが複数回やりとりをするセッションを途中で乗っ取る操作 </li></ul></ul></ul><ul><ul><ul><li>対策:セッション管理に用いるキーを複雑にしたり、有効期限を短くする </li></ul></ul></ul>
  54. 54. まとめ
  55. 55. 本講義のまとめ <ul><ul><li>Web コンピューティングとは Web アプリや WWW 環境によるコンピュータ活用である </li></ul></ul><ul><ul><ul><li>電子商取引、オンラインバンキング・トレード、掲示板、SNS、CMS、e-Learningなど様々 </li></ul></ul></ul><ul><ul><li>1969 年インターネットの誕生に始まり、現在、爆発的に利用が進んでいる </li></ul></ul><ul><ul><ul><li>WWW以前はFTPやgopherという仕組みが利用されていた </li></ul></ul></ul><ul><ul><li>90 年代初頭にティム・バーナーズ = リーが WWW を発明した </li></ul></ul><ul><ul><ul><li>その後ブラウザ戦争が起こり、現在は第2次ブラウザ戦争ともいえる状況にある </li></ul></ul></ul><ul><ul><li>ハイパーテキストとは、ハイパーリンクで結ばれた文書セットのことである </li></ul></ul><ul><ul><ul><li>ハイパーリンクにより文書集合を探索可能。WWWは世界的なハイパーテキストといえる </li></ul></ul></ul><ul><ul><li>インターネット上のリソースは URI で特定できる </li></ul></ul><ul><ul><ul><li>URIを支える技術は、ドメイン名やIPアドレスの技術である </li></ul></ul></ul><ul><ul><li>Web サーバと Web ブラウザ間は HTTP という通信プロトコルでデータを通信する </li></ul></ul><ul><ul><ul><li>HTTPはさらにTCP/IPで支えられている。各種サービスはポート番号で区別できる </li></ul></ul></ul><ul><ul><li>Web コンピューティングにセキュリティの配慮は不可欠 </li></ul></ul><ul><ul><ul><li>もはや社会的インフラとなっているため </li></ul></ul></ul>

×