Presentation is loading. Please wait.

Presentation is loading. Please wait.

HTTPプロトコル J2EE I 第7回 / 2005-06-23.

Similar presentations


Presentation on theme: "HTTPプロトコル J2EE I 第7回 / 2005-06-23."— Presentation transcript:

1 HTTPプロトコル J2EE I 第7回 /

2 ここでの内容 URLを理解する。 HTTPの仕組みを知る。 HTTPの動作をのぞいてみる。
要求 (request) と 応答 (response) ブラウザの動作がイメージできる。 HTTPの動作をのぞいてみる。 HTMLのフォームから入力したデータと、HTTP の要求 (request) の関係。 JSP と HTTPの要求・応答との関係。

3 ホスト名とポート番号 インターネットでの通信に必要なもの ホスト名 (= IPアドレス) ポート番号 HTTPだって例外ではない

4 URL http://ホスト名:ポート番号/パス?クエリー ホスト名(= IPアドレス) ポート番号が 80 なら省略できる。
パスは「Webサーバ上のファイルのありか」 クエリーは、動的なページ作成に使う

5 URL の例 http://www.wakhok.ac.jp/ www.wakhok.ac.jp という「ホスト (=コンピュータ)」に接続
ポートは 80番なので省略している と書いてもよい。 localhost の 8080 番に接続

6 HTTP というプロトコル インターネットでの通信方法 (= プロトコル) は、RFC というもので規定されている。
HTTP は、WebブラウザとWebサーバの通信方法について定めている。 HTTP は RFC2616 で規定されている。 HyperText Transfer Protocol (= HTTP)

7 HTTP 最初に、ホスト名とポート番号を使って接続を確立 「要求」を出して「応答」がくる。 ブラウザが応答の中身を表示する。

8 http://localhost:8080/examples/jsp/index.html を見る場合
URL を解釈する localhost の 8080 番に接続 「/examples/jsp/index.html をくれ!」 (要求) 「はい、お渡しします」と index.html を渡す (応答) index.html を表示

9 Webブラウザからの要求(request) 概要
GET /examples/jsp/index.html HTTP/1.1 (リクエスト行) Host: localhost (ヘッダ) User-Agent: …… (ヘッダ) …… (ヘッダ) (空行) (本文)

10 Webブラウザからの要求(request) リクエスト行
GET /examples/jsp/index.html HTTP/1.1 「GET」 がメソッド メソッドとは、要求の種類の指定 「/examples/jsp/index.html」が対象となるURI 「HTTP/1.1」が HTTP のバージョン

11 Webブラウザからの要求(request) いろいろなメソッド
GET URI の内容を取得する POST URI に情報を送信する HEAD URI に関するヘッダ部分のみを取得する などなど

12 Webブラウザからの要求(request) ヘッダ
フィールド名: 値 Host どの名前のホストにアクセスするか。 User-Agent どんなブラウザを使っているか Referer どのページからやってきたかわかる。(どこからリンクが貼られているかわかる)

13 Webブラウザからの要求(request) 本文
GET では使わない POST で使う

14 HTTP

15 Webサーバからの応答 (response) 概要
HTTP/ OK ステータス行 Etag: …. ヘッダ Last-Modified: … ヘッダ Content-Type: text/html ヘッダ Content-Length: ヘッダ 空行 <html> 本文 …. </html>

16 Webサーバからの応答 (response) ステータス行
HTTP/ OK 「HTTP/1.1」は、HTTPのバージョン 「200」はステータスコード サーバからの応答がどのような種類のものか 「OK」は説明文 ステータスコードについての説明

17 Webサーバからの応答 (response) ステータスコード
200 番台 -- 要求が正常に処理された 200 OK 成功 400 番台 – クライアント側に問題がある 403 Forbidden アクセスを拒否 404 Not Found 該当するものがない 500 番台 – サーバ側に問題がある 500 Internal Server Error エラー発生

18 Webサーバからの応答 (response) ヘッダ
フィールド名: 値 Content-Type 本文に書かれているものがどういった種類のものか Content-Length 本文に書かれているもののサイズ Last-Modified このURIが最後に更新されたのはいつか

19 Webサーバからの応答 (response) Content-Type
MIME 型で本文の種類を示す 代表的な MIME型 text/html HTML文書 text/xml XML文書 text/plain テキスト image/gif GIF画像 image/jpeg JPEG画像 video/mpeg MPEG

20 Webサーバからの応答 (response) 本文
HTML を取得するのなら HTML JPEG 画像を取得するのなら JPEG

21 HTTP

22 Webブラウザの働き HTTP は要求と応答がペア たいていのWebページは、複数のファイルを含む ブラウザは、HTMLを解析する
1回の要求につき、1つのファイルを取得 たいていのWebページは、複数のファイルを含む 画像がいっぱいのWebページ フレームを使ったページ ブラウザは、HTMLを解析する 途中で取得しなければならない画像などのファイルを見つけたら、改めて要求を出す

23 HTTP

24 HTMLのフォーム (1) 画面イメージ Webブラウザから何かを入力してもらうために使う。

25 HTMLのフォーム (2) HTMLのソース <p>姓名を入力してください:</p>
<form method=“get” action=“name.jsp”> <p>姓: <input type=“text” name=“familyName” /></p> <p>名: <input type=“text” name=“givenName” /></p> <input type=“submit” value=“実行” /> <input type=“reset” value=“キャンセル” /> </form>

26 フォームとプログラム 「実行」ボタンが押されると、HTTPの要求を用いて、フォームに入力したデータがプログラムに渡される。
プログラムに渡すときは、次のメソッドを使う。 GET POST

27 POSTメソッドによる処理 (1) HTMLのソース
<p>姓名を入力してください:</p> <form method=“post” action=“name.jsp”> <p>姓: <input type=“text” name=“familyName” /></p> <p>名: <input type=“text” name=“givenName” /></p> <input type=“submit” value=“実行” /> <input type=“reset” value=“キャンセル” /> </form>

28 POSTメソッドによる処理 (2) 要求の内容
POST /test/name.jsp HTTP/1.1 …… Content-Length: 35 (←空行) familyName=maruyama&givenName=fujio (←本文の内容が「クエリー」)

29 POSTメソッドによる処理 (3) クエリーの内容
familyName=maruyama&givenName=fujio familyName の値が “maruyama” givenName の値が “fujio” パラメータと値の間を “=” でつなぐ パラメータと値の組み合わせを “&” でつなぐ

30 POSTメソッドによる処理 (4) プログラムの処理後の画面
name.jsp を呼び出している

31 GETメソッドによる処理 (1) HTMLのソース
<p>姓名を入力してください:</p> <form method=“get” action=“name.jsp”> <p>姓: <input type=“text” name=“familyName” /></p> <p>名: <input type=“text” name=“givenName” /></p> <input type=“submit” value=“実行” /> <input type=“reset” value=“キャンセル” /> </form>

32 GETメソッドによる処理 (2) 要求の内容 GET /test/name.jsp?familyName=maruyama&
givenName=fujio HTTP/1.1 …… If-Modified-Since: Sun, 19 Jan :39:50 GMT

33 GETメソッドによる処理 (3) リクエスト行とクエリーの内容
GET /test/name.jsp?familyName=maruyama& givenName=fujio HTTP/1.1 リクエスト行にクエリーが置かれている。 プログラム名 “name.jsp” の後に “?” があり、その後にクエリーが続く。

34 GETメソッドによる処理 (4) プログラムの処理後の画面
URL に クエリーが含まれる。

35 POSTとGETの使い分け (1) POSTを使う場合

36 POSTとGETの使い分け (2) GETを使う場合
クエリーがURLにでているので、ブックマークに保存したり、リンクをはったりできる。 例えば、Google の実行結果にリンクを貼ったりする。 POSTメソッドだとこうはいかない。

37 JSPと要求・応答 要求の処理には、request という変数を使う。 応答の処理には、response という変数を使う。
request.getMethod() request.getRequstURI() request.getProtocol() request.getRemoteAddr() 応答の処理には、response という変数を使う。

38 JSPを使ったパラメータの処理 <%= request.getParameter("familyName") %>
GET でも POST でも利用できる。


Download ppt "HTTPプロトコル J2EE I 第7回 / 2005-06-23."

Similar presentations


Ads by Google