Presentation is loading. Please wait.

Presentation is loading. Please wait.

インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目.

Similar presentations


Presentation on theme: "インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目."— Presentation transcript:

1 インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目

2 目的 この舞台裏はどうなってるの? ページ表示 URL入力 リンククリック ページ表示 ボタンクリック 送信
hogehogehgoehgoe hogehoehgoehgoeh hgeoheohgoehgoeg gehoghoeghoehgoe image ページ表示 ボタンクリック hogehogehgoehgoe hogehoehgoehgoeh hgeoheohgoehgoeg gehoghoeghoehgoe image 送信

3 今日の目標 クライアント・サーバシステムの通信の仕組みについて簡単に説明できるようになる プロトコルの意味・目的について説明できるようになる
HTTPの仕組みについて簡単に説明できるようになる

4 ネットワーク アプリケーションの基本 クライアント・サーバシステム サーバ クライアントがサーバのサービスと受けるには、
サービスを公開し、サービス要求者にサービスを提供するプログラムのこと クライアント サーバに対してサービスを要求し、サービスを受けるプログラムのこと クライアントがサーバのサービスと受けるには、 クライアントプログラムをサーバプログラムに 接続する必要がある

5 論理的な話をすると・・・ クライアントプログラムがサーバプログラムを識別するために必要なもの
IPアドレスまたはホスト・ドメイン名 ネットワーク上でサーバコンピュータを特定する ポート番号 サーバコンピュータ上で動いているプログラムを特定する クライアントプログラムが実際にサーバプログラムからサービスを受けるために必要なもの ソケット プログラムとプログラムをネットワーク越しにつなぐ ポート番号は1~65535

6 プログラムとプログラムを つなぐソケット 電話の受話器(または郵便ポスト)
接続した相手との間に仮想的な回線ができる ソケットに喋りかけたり手紙を投函すれば、相手のソケットに届く インターネット上のコンピュータと通信するときは、必ず使わなければならないインターフェース 後述するインターネット共通の通信のルールに従うため 仮想的な回線 spitfire( ) entrance( ) プログラム プログラム ソケット port:10001 ソケット port:10002

7 ソケット間通信の手順 3、受け入れ 2、接続要求 サーバ: 133.27.36.64 クライアント: 133.27.173.237
Port:79 Port:xxxx Port:80 Server Socket socket 1、ソケット生成 socket 4、ソケット生成 → → → → → → → → → → データ → → → → → → → → → → ← ← ← ← ← ← ← ← ← ← データ ← ← ← ← ← ← ← ← ← ← 5、データの交換 Port:81 Port:82

8 コンピュータ通信を行う上での様々なルール
通信には様々なルールがある IPアドレス(またはホスト名)とポート番号をもとに、相手のプログラムを特定し、ソケットを使って通信するというのは、コンピュータ通信におけるルール コンピュータ通信の世界では、様々な通信レイヤーごとに、様々なルールがある ケーブルの規格 目的のIPアドレスのコンピュータまでのたどり着き方 転送するファイルのフォーマット 等等 通信には コンピュータ通信を行う上での様々なルール プロトコル

9 OSI7層モデル OSI(Open System Interconnection)
コンピュータ同士が機種に依存せず、相互に接続するためのプロトコルの枠組み 7つのレイヤーからなるプロトコルスタック 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 サービスの提供 論理的 表現方法の決定 ルールを階層的に定めたもの 接続相手の認証 データの信頼性確保 ネットワーク上の目的地までの経路 ネットワーク上の交通ルール ネットワークを構成するものの物理的な規格 物理的

10 例 運送業者の例 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層
7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 サービス(シロネコヤマト宅急便) オプション決定(クール宅急便、天地無用、われもの) 受け取り相手の決定 socket 最終届け先の決定、荷物の運び込み方の決定 サービスとは、アプリケーションそのもの 目的地までの経路決定 道路の交通ルール 道路の材質

11 それぞれの層が独立して 会話する 荷物を送りたい! 接続してくれ! 7層: アプリケーション層 6層: プレゼンテーション層
シロネコヤマトで頼む! 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 7層: アプリケーション層 6層: プレゼンテーション層 5層: セッション層 4層: トランスポート層 3層: ネットワーク層 2層: データリンク層 1層: 物理層 クール宅急便でおくるぞ! ○○さん当てだな! ι308に立て続けにおくる! 場所は慶応大学ι館だ! 交通ルールはこうだ! アスファルトの道を通って来い!

12 インターネットアプリケーションのためのプロトコル
OSI7層モデルで言う アプリケーション層 プレゼンテーション層 セッション層          にあたるプロトコル ソケットに対してどのように話しかけるかを定義する 通信手順、データフォーマットなどのルールを定義 HTTP,SMTP,POP,MIME,IMAP,FTP等

13 HTTPについて Hyper Text Transfer Protocol 現在HTTP1.1(RFC2616)
ハイパーテキストの転送を行うプロトコル HTML、画像、音声ファイルなど ハイパーテキストとは リンク、マルチメディアコンテンツを含むことのできるデジタル文書フォーマット 現在HTTP1.1(RFC2616) 実際は1.0と共存している状態 リソースの送受信だけを行うことを目的としている シンプル:複雑な処理がない ステートレス:接続状態を保たない

14 HTTPによる通信 メッセージ交換 クライアントからサーバへの「リクエスト・メッセージ」
サーバからクライアントへの「レスポンス・メッセージ」 ※ 原則として1リソースごとに1往復のメッセージ交換 WEBブラウザ WEB サーバ Hoge.html (1) HTMLファイルの取得 (2) 画像1ファイルの取得 画像1 (3) 画像2ファイルの取得 画像2

15 WEBサーバの指定 HTTPはURLが示す場所のファイルを取得する URL(Uniform Resource Locator) 書式:
リソースの場所を指定する 全世界で一意 書式: 相対URLでは、ドキュメントルートをサーバが自分で補って解釈してくれている スキーム: リソースにアクセスする手段。 他にも、mailto、ftp、file、telnetなんかがある。デフォルトはHTTP。 WEBサーバ名: IPアドレスを使用することも可能 ポート: アクセスするサーバのポート番号。デフォルトはHTTP標準の80番。 パス: WEBサーバの ドキュメントルートからのパス

16 (参考)URI/URL/URN リソース指定の3形態 URL(Uniform Resource Locator)
リソースの「位置」を示すもの URN(Uniform Resource Name) リソースそのものの永続的な「名前」を指定する URI(Uniform Resource Identifier) 識別可能な全てのものを指定する スキーム(Scheme) URNのスキームはリソース取得手段とは関係ないのでURLに含まれない URI URN urn: URL http: mailto: pln: oasis: file: news: NID(Name Space ID)

17 WEBサーバはソケットに対してこういうことを話しかける!
HTTPメッセージの構造(1) リクエスト・メッセージ レスポンス・メッセージ GET /index.html HTTP/1.1 Accept: */* Accept-Language: ja Accept-Encoding: gzip, deflate Referer: User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) Host: HTTP/ OK Server: Apache/ (TurboLinux) mod_perl/1.24 ApacheJServ/1.1 Date: Sun, 11 Feb :57:02 GMT Connection: close Content-Type: text/html  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML lang="ja"> <HEAD> <META HTTP-EQUIV="Content-Type" content="text/html;charset=SHIFT_JIS"> (略) </BODY></HTML>  WEBサーバはソケットに対してこういうことを話しかける!

18 HTTPメッセージの構造(2) リクエスト・メッセージ レスポンス・メッセージ 命令 結果 報告 引数 内容 リクエスト・ライン
・ヘッダ リクエスト・ライン メッセージ ・ヘッダ ステータス・ライン 命令 結果 報告 各種ヘッダフィールド (リクエスト・ヘッダ 一般ヘッダ エンティティヘッダ) 各種ヘッダフィールド (リクエスト・ヘッダ 一般ヘッダ エンティティヘッダ) 空行(CR+LF) 空行(CR+LF) メッセージボディ (フォームのパラメータなど) メッセージボディ (HTMLファイル、 マルチメディアデータなど) 引数 内容

19 HTTPリクエスト リクエスト・ラインの書式 メソッド一覧 メソッド [空白] リクエストURL [空白] HTTPバージョン
※リクエストURLは、WEBサーバのドキュメントルートからの相対パス メソッド HTTPバージョン 機能 HEAD 1.0/1.1共通 指定したURL取得の結果レスポンスのヘッダーのみ取得する。 GET 1.0/1.1共通 指定したURLが示すリソースを取得する。 POST 1.0/1.1共通 指定したURLが示すサーバーに対してデータを転送する。 PUT 1.0/1.1共通 指定したURLが示すリソースに対して、データを転送して置き換える。 DELETE 1.0/1.1共通 指定したURLが示すリソースを削除する TRACE 1.1より追加 サーバーやプロキシの動作を診断するための情報を返答する OPTIONS 1.1より追加 使用できるメソッドやオプションの一覧を取得する CONNECT 1.1より追加 プロキシでのトンネリング接続を行う

20 HTTPバージョン [空白] ステータスコード [空白] 結果フレーズ
HTTPレスポンス ステータスラインの書式 ステータスコード一覧(有名どころ) HTTPバージョン [空白] ステータスコード [空白] 結果フレーズ ステータス・コード HTTPバージョン 結果フレーズ 200 1.0/1.1共通 OK 301 1.0/1.1共通 Moved Permanently 302 1.0/1.1共通 Moved Temporarily 400 1.0/1.1共通 Bad Request 401 1.0/1.1共通 Unauthorized 403 1.0/1.1共通 Forbidden 404 1.0/1.1共通 Not Found 500 1.0/1.1共通 Internal Server Error

21 リクエスト・メッセージを送り、結果を受け取る
TelnetによるHTTP実習 Telnetを使って、WEBサーバに リクエスト・メッセージを送り、結果を受け取る やること 学校の端末(ccz01など)にSSHでログインする telnetでSFCのWEBサーバに接続します HTTPリクエストのGETメソッドを試してみよう! % telnet 80 Trying Connected to www. Escape character is '^]'.

22 GETメソッド % telnet www.sfc.keio.ac.jp 80 Trying 133.27.4.212...
Connected to www. Escape character is '^]'. GET /~kobataka/index.html 1.1 [+改行2回] GET /~kobataka/cgi-bin/httptry.cgi?name=hoge&age= [+改行2回]

23 まとめ クライアント(プログラム)とサーバは、ソケットを通して会話することで成り立っている
IPによりコンピュータを特定する ポートによりサービスを特定する プロトコルは通信のためのルールであり、OSI7層モデルによって、通信レイヤーごとにまとめられている HTTPはURLで指定したコンピュータとメッセージを交換することでハイパーテキストの転送を行うプロトコルである


Download ppt "インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目."

Similar presentations


Ads by Google