HTTPプロトコルとJSP (1) データベース論 第3回
この講義に関するWebページ http://www.wakhok.ac.jp/~tomoharu/db2003/
Tomcat はインストールできましたか? 環境変数はセットしましたか? JAVA_HOME と CATALINA_HOME それぞれ、Java と Tomcat がインストールされているフォルダを指定する ポート番号は変更しましたか? (実習室の場合) インストール時に「NTサービス」にチェックを入れておくとはまりやすいかも。
課題は動きましたか? loop.jsp を作って、次に示す場所にコピーする。 %CATALINA_HOME/webapps/ に配置 test/ | |-- WEB-INF/ --- web.xml 必須 | |- classes/ Servlet などのクラス | |- lib/ 使用するライブラリ |-- loop.jsp JSP
きょうの内容 URLを理解する。 HTTPの仕組みを知る。 HTTPの動作をのぞいてみよう。 要求 (request) と 応答 (response) ブラウザの動作が(何となく)わかる HTTPの動作をのぞいてみよう。
ホスト名とポート番号 インターネットでの通信に必要なもの ホスト名 (= IPアドレス) ポート番号 HTTPだって例外ではない
URL http://ホスト名:ポート番号/パス?クエリー ホスト名はコンピュータの名前。 ポート番号が 80 なら省略できる。 パスは「Webサーバ上のファイルのありか」 クエリーは、動的なページ作成に使う (解説は次回)
URL の例 http://www.wakhok.ac.jp/ www.wakhok.ac.jp という「コンピュータ」に接続 ポートは 80番なので省略している http://www.wakhok.ac.jp:80/ と書いてもよい。
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を解析する 途中で取得する必要なものを見つけたら、改めて要求を出す