LoginSignup
3
4

More than 3 years have passed since last update.

Webシステムの構造、HTTP通信

Last updated at Posted at 2019-07-26

※後日、大幅に推敲します(汗)

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(サーバ内部エラー)

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4