2003年度 データベース論

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/
|
|- lib/
|-- loop.jsp
 必須
 Servlet などのクラス
 使用するライブラリ
 JSP
きょうの内容


URLを理解する。
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/i
ndex.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
–

POST
–

URI に情報を送信する
HEAD
–

URI の内容を取得する
URI に関するヘッダ部分のみを取得する
などなど
Webブラウザからの要求 (request)
ヘッダ

要求 (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 番台 -- 要求が正常に処理された
–

OK
成功
400 番台 – クライアント側に問題がある
–
–

200
403
404
Forbidden
Not Found
アクセスを拒否
該当するものがない
500 番台 – サーバ側に問題がある
–
500
Internal Server Error
エラー発生
Webサーバからの応答 (response)
ヘッダ

応答 (response) に必要な関連する情報
–

Content-Type
–

本文に書かれているものがどういった種類のものか
Content-Length
–

フィールド名: 値
本文に書かれているもののサイズ
Last-Modified
–
このURIが最後に更新されたのはいつか
Webサーバからの応答 (response)
Content-Type


MIME 型で本文の種類を示す
代表的な MIME型
–
–
–
–
–
–
text/html
text/xml
text/plain
image/gif
image/jpeg
video/mpeg
HTML文書
XML文書
テキスト
GIF画像
JPEG画像
MPEG
Webサーバからの応答 (response)
本文


HTML を取得するのなら HTML
JPEG 画像を取得するのなら JPEG
HTTP
Webブラウザの働き

HTTP は要求と応答がペア
–

たいていのWebページは、複数のファイルを含む
–
–

1回の要求につき、1つのファイルを取得
画像がいっぱいのWebページ
フレームを使ったページ
ブラウザは、HTMLを解析する
–
途中で取得する必要なものを見つけたら、改めて要求
を出す