※後日、大幅に推敲します(汗)
Webシステムは、
プレゼンテーション層、アプリケーション層、データ層の3層構造で構成されている。
※3層クライアントサーバーシステムは、サーバーの負荷分散や、システムのメンテナンス・改修がしやすくなる。
まず、
・プレゼンテーション層
は、ユーザーインターフェース部として、Webブラウザなどのクライアントに対応する。
例)Googlem、safari等
・アプリケーション層
は、システムのロジック部としてWebサーバーやAPサーバーが対応する。
例)Apache、Tomcat等
・データベース部
として、RDBMSが対応する。
例)Oracle、MySQL、PostgreSQL
##HTTP通信
HTTP通信には、HTTPリクエストとHTTPレスポンスに別れる。
・HTTPリクエスト
ブラウザからサーバーに送信する情報の事。
HTTPリクエストメッセージとしてサーバーに情報が送られる。
またリクエストには「GET方式」と「POST方式」の2つの方法がある。
■GET方式
GETには下記の3種類がある。
・WebブラウザでURLを直接入力する。
アドレス http://www.~~~~.co.jp/
・画面に表示されているリンク設定文字などをクリックする
詳細情報はこちら
・formタグのmethod属性に「get」を設定する。
<form action="..." method="get">~~~</form>
構成は
リクエスト行 GET/test.jsp?key1=value1&key2=value2HTTP/1.0
メッセージ・ヘッダ Accept: image/gif;image/jpeg,....
Accept-Language:jp
User-Agent:Mozilla/5.0
Host:www.test.net
Connection:keep-alive
空白行
メッセージ・ボディ
■POST方式
主に、お問い合わせフォームなどに入力したデータなどを送信する際に使用される。
formタグのmethod属性に「post」を設定する。
<form action="..." method="post">~</form>
構成は
リクエスト行 POST/test.jsp HTTP/1.0
メッセージ・ヘッダ Accept: image/gif; image/jpeg,・・・・・
Accept-Language:jp
User-Agent:Mozilla/5.0~~~~
Host:www.test.net
Connection:keep-alive
空白行
メッセージ・ボディ key1=value1&key2=value2
ざっくり言うとGET方式は、ハガキでデータをサーバーに送信して,そのデータを取りたい、欲しいと宣言する様なイメージで
POST方式は封筒に手紙を入れて自分のデータを与える様なイメージ。
■HTTPリクエストメッセージの構成
・リクエスト行・・・Webサーバーに要求する情報(メソッド、URL、HTTPバージョン)を示す
・メソッド(方式)・・・Webサーバに要求を示すコマンド(GET方式、POST方式)
・URL・・・リクエストの対象となるデータを指す情報
・HTTPバージョン・・・Webブラウザがサポートするバージョン
・メッセージ・ヘッダ・・・WebサーバにWebブラウザの情報を示す。
Webブラウザ側でサポートする。
「データのタイプ」、「データの圧縮方法」、「ブラウザの種類」などの情報がある。
・空白行・・・Webサーバに、「メッセージ・ヘッダ」の終わりを伝えるために使用する。
・メッセージ・ボディ・・・Webサーバにデータを送るために使用する。
例えば、テキストボックスに入力した情報などをWebサーバーに送るために使用する。
入力情報がなければ空白。
※GET方式の場合は、リクエスト行のURLに送信するデータが付加される。
HTTPレスポンス
Webブラウザからのリクエストに対して、
今度はWebサーバからWebブラウザに送信する情報。
WebサーバーからHTTPレスポンスメッセージとして、Webブラウザに情報が送られるが、
Webブラウザに表示する情報だけでなくHTTPリクエストに対する処理結果を示すステータスコードが含まれている。
■HTTPレスポンスメッセージ
こちらもかき4つの構成で成り立つ
ステータス行・・・Webブラウザに、Webサーバでの処理結果を伝える。
HTTPのバージョン、ステータスコード、説明文などの情報がある。
メッセージ・ヘッダ・・・WebブラウザにWebサーバの情報を示す。「サーバの種類」、「返信するデータのタイプ」、「データの圧縮方法」などの情報がある
空白行・・・Webブラウザに、「メッセージ・ヘッダ」の終わりを伝えるために使用する
メッセージ・ボディ・・・「HTML文書」、「画像ファイル」、「動画ファイル」などのデータを格納するために使用する。
■ステータスコード
レスポンスの状態を表す3桁のコード
主なステータスコード
200・・・OK(リクエストの受付に成功)
301・・・Moved Permanetly(リクエストで要求された情報の中身が別の場所に移動した)
401・・・Unauthorized(認証に失敗)
403・・・Forbidden(不許可、立入禁止)
404・・・Not Found(リクエストしたページが見つからない)
405・・・Method Not Allowed(許可されていないリクエスト形式)
500・・・Internal Server Error(サーバ内部エラー)