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

Slides:



Advertisements
Similar presentations
セッション管理 ソフトウェア特論 第 8 回. ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。
Advertisements

1 JSP の作成 JSF による Web アプリケーション 開発 第 4 回. 2 ここでの内容 JSF での JSP の作り方と動かし方につい て学ぶ。
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
1 PHP プログラムの実行(まと め) 担当 岡村耕二 月曜日 2限 平成 22 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明 准教授等による以前の講義資料をもとにしています。
情報基礎A 情報科学研究科 徳山 豪.
The Perl Conference Japan ’98 朝日奈アンテナによる コンテンツ情報の取得と利用
第1回.
Webアプリケーションの 通信メカニズム WEBアプリ研究プロジェクト 第2回.
第2章 ネットサービスとその仕組み(前編) [近代科学社刊]
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPアドレス、IPパケットとはなにか? 情報塾( ) URLとの関係は? コンピュータ同士はどう繋がっているか?
インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目.
エンタープライズアプリケーション II 第10回 / 2006年7月23日
Servlet J2EE I 第8回 /
Servlet入門(2) 入力フォームをつかったWebアプリ
WWW (=World Wide Web)とは
JavaServlet&JSP入門 01K0018 中村太一.
「コンピュータと情報システム」 07章 インターネットとセキュリティ
インターネット概論 第9回12月11日 Webって、どんなシステム?.
第4回 個人の動画配信補足のためのWeb構築
OpenID 勉強会 (OpenID Authentication1.1)
30分でわかるTCP/IPの基礎 ~インターネットの標準プロトコル~ 所属: 法政大学 情報科学研究科 馬研究室 氏名: 川島友美
オペレーティングシステムⅡ 第3回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/10/16.
佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
Bottle/Pythonによる Webアプリ入門
担当教官:大月 美佳(佐賀大学) 2001年度 総合科目
インターネット メールサーバ DNSサーバ WWWサーバ ファイアウォール/プロキシサーバ クライアント.
セッション管理 J2EE I 第9回 /
HTTPプロトコルとJSP (1) データベース論 第3回.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
Curlの仕組み.
JSPの作成 J2EE II 第3回 2005年4月10日.
情報コミュニケーション入門 総合実習(1) 基礎知識のポイント(2)
Servlet入門(2) 入力フォームをつかったWebアプリ
情報学部 プログラミング体験教室 (初級編)
データベース設計 第9回 Webインタフェースの作成(1)
Javaによる Webアプリケーション入門 第9回
情報アプリケーション1 2006年 10月 5日 第三回資料 担当 重定 如彦 .
第8章 Web技術とセキュリティ   岡本 好未.
Step.9 VPN VPNのトンネルを張る PC 3 PC 1 PC 2 論理ネットワーク1 xx (自動割当)
Microsoft PowerPoint98 Netscape Communicator 4.06[ja]
HTTPとHTML 技術領域専攻 3回 中川 晃.
情報コミュニケーション入門b 第10回 Web入門(1)
情報コミュニケーション入門b 第10回 Web入門(1)
第7回ネットワークプログラミング 中村 修.
卒業論文発表 「Web アクセスに伴う脅威の特徴分析」
ガジェット・マスターへの まわり道!? ~Ajaxを理解しよう~
Javaによる Webアプリケーション入門 第6回
制作技術ー3 双方向通信 : CGIシステムと環境変数
情報コミュニケーション入門e 第11回 Part2 Web入門(1)
Webサーバとクライアント 接続要求 GET ・・ 接続状態 HTTP ・・ Webサーバ
Javaによる Webアプリケーション入門 第2回
情報アプリケーション1 2006年 10月 19日 第四回資料 担当 重定 如彦 .
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
端末およびサービス透過的な 情報閲覧支援システムの構築
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
Servlet ソフトウェア特論 第7回.
Servlet J2EE I (データベース論) 第12回 /
Servlet データベース論 第6回.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
JSPの基本 J2EE I (データベース論) 第8回 /
システムプログラミング 第10回 プロセス間通信3 簡易Web server(準備) Chat プログラム 担当:青木義満、篠埜 功
ネットワークプロトコル.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
アプリケーションゲートウェイ実験 2001.10.5 鬼塚 優.
SMTPプロトコル 2001年8月7日 龍 浩志.
TCP/IPの通信手順 (tcpdump)
ポートスキャン実習 2002年9月19日 修士1年 兼子 譲 牧之内研究室「インターネット実習」Webページ
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

HTTP

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

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

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

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

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

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

HTTP

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

HTTP

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

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>

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

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>

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

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

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

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>

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

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

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

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

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

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

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