2011年8月5日金曜日

HTTPリクエスト の 中身(Yahoo.co.jp の場合)

 さて、あなたが 誰かの ホームページ を見る時、
あなたの パソコン の ブラウザ が インターネットに対して
リクエストを発するのでしたね。
※ブラウザがHTTPリクエストを作ってサーバーに送る



では、
Yahoo のサイトを ブラウザに 表示する時は どんな
リクエスト情報が送信されるのか?

答えは 次の3点セット情報です。
①リクエストライン
②メッセージヘッダ
③メッセージボディ(POSTでリクエストする時だけ)


具体的にどんなデータなのか?

GET / HTTP /1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* 

Accept-Language: ja-JP

User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; YTB730; GTB7.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

Accept-Encoding: gzip, deflate

Host: www.yahoo.co.jp

Connection: Keep-Alive

Cookie: B=54kjr7p6bgkvm&b=4&d=IHCejO1pYF3FPeuQjd8qwXTJm_uYrFxWaXFEZ9Av&s=9|&i=tV813iF_w0E2XXranlLi;YLS=v=1&p=0&n=1; 

(中略)

~E&d=c2wBTVRBd05BRXhNVEV4T1RnNE9ESS0BYQFZQUUBZwFGWDRUVU1DM0RHQ
0pKTkZGNUpHUk9XMkpIVQFvawFaVzAtAXRpcAEyWnhxOUMBenoBbGFSVU5CQTJK

ここまでが ブラウザが作製した HTTPリクエスト です。 
(※第一弾ですが)


ブラウザは瞬時にこれを作成し、サーバーに送信します。
「 Yahoo のページを見せて下さい!!」 という意味です。

サーバー側は、ブラウザが送ってきた HTTPリクエスト の
内容を読み解き、どのような情報をブラウザに送るか、
これもまた一瞬のうちに判断して HTTPレスポンス なる
情報を作成し返答します(※これがサーブレットの仕事)。


HTTPレスポンスにはHTMLファイル等のホームページを
表示する情報が含まれており、ブラウザ がそれを受け
取ると無事ホームページがクライアントのブラウザ上に
表示される訳ですね。

※サーブレットのプログラムには、HTTPリクエストの内容を
  読み解く メソッド が含まれます。


HTTPレスポンス は こちら


ホームへ





最初に ” HTTPとは? ” を理解しよう !!

 サーブレット は インターネット(ネットワーク)技術の上に

作られた技術なので、先ず土台となるインターネット技術を

押さえておかなければならない。



そもそもインターネットとは?

ざっくり表現すると、ネットワークを介して別のコンピュータから

情報(ホームページ)を見せてもらったり、こちらの情報を別の

コンピュータに見せたりする技術ですね。 




どうやって?

情報(ホームページ)の送受信の約束事を決め、

その約束に則り 情報を互いに送りあう。

その約束事(プロトコル)を ” HyperText Transfer Protocol ”

略して HTTP と言うのでしたね。 



別の表現をするなら、

ホームページを記述する文書(HTML)や画像などのデータを、

Webサーバ と Webブラウザ で やり取りする為に使われる

プロトコルです。



さて、本題ですが、

HTTP(ホームページを見せ合う約束事)では、


データを受信する側(クライアント)が サーバーに要求

(リクエスト)を伝え、そのリクエストに対して サーバー が

応答(レスポンス)する。



もう少し具体的に表現すると、

あなたのパソコン(ブラウザ)に URL を入力して、エンターキー

を押下すると、ブラウザは インターネットに向けて要求を発信

します。 すると、 インターネット上の該当するサーバーが、

あなたの要求を受け取り、サーバーはあなたの要求に応える

べく 処理を実行し、結果をあなたのパソコン(ブラウザ)に送る。



さらに具体的に表現すると、

インターネット上の Webページ を取得する為、ブラウザが

HTTPに則り、リクエスト情報(GETメソッドなど)を送信する。


該当するサーバーがそのリクエストを受け取り、サーバーの

コンテナ(JAVA Servlet クラス)は ブラウザ が要求してきた

情報から リクエストオブジェクト と レスポンスオブジェクト を

生成する。そして、サーブレットのdoGet()メソッドにそれらを

引き数として渡し、サーブレットを起動する。サーブレットは

リクエストオブジェクトからレスポンスオブジェクトを







HTTP では、データを受信する時に使う 「GET」 の他に、

データ を送信する 「PUT」「POST」 等の メソッド が用意され

ている。 



ホームへ

2011年8月4日木曜日

ホーム (サイトマップ)

最初に、” HTTP とは? ” を理解しよう!!

HTTPリクエストの中身(yahoo.co.jp の場合)
・HTTPレスポンスの中身(yahoo.co.jp の場合)
Webアプリケーションとは
サーブレットとは
サーブレットとアプレット
・main()メソッドが無いのですが(汗)!
・doGet()メソッド って何?

・Webアプリケーション、サーブレット、インターネット技術が
 やっと見えてきた。





下のサイトにもお立ち寄りください。

人柱ブログ
情報処理 再チャレンジ ブログ
街ブラ情報発信ブログ
東京散歩 おもに新宿界隈(ただの散歩)

2011年8月3日水曜日

サーブレット と アプレット

 サーブレット とは サーバー(アプリケーションサーバー)上で
動作するJavaプログラムでした。 その概念に対して アプレット 
という概念がある。

Wikiぺディアでは、
 Javaアプレットは、ネットワークを通して Webブラウザに読み
込まれ実行される Java の アプリケーション の一形態。1996年
に Netscape Navigator に搭載されたことで普及した。
と解説している。

他のサイトでは、
 Webブラウザ上で実行する為のクラス。狭義としてはAppletクラス、もしくはサブクラスの事。 
としている。


これらの事から、Javaアプレットとは
インターネット技術(クライアント⇔サーバの情報交換)から波及した技術で、クライアント側のブラウザ上で実行させるプログラム。 
と言えよう。




人柱ブログ ホーム へ



サーブレットとは?

・サーバー上で動作するJavaプログラム。
 (※アプレット や JavaScript といったクライアントのブラウザ上
  で実行されるプログラムと区別される)

・ネットワーク上(インターネット等)のアプリケーションサーバ上で
 動作するJavaプログラム。
 
・クライアントのブラウザが発した HTTPリクエスト の情報を元に
 サーバー上でプログラム処理を実行し、動的な結果をクライ
 アントに返す

・Webブラウザ等のWebクライアントに対してサービスを提供する。
 (※HTTPプロトコル上で動作するサーバープログラム) 


Java Servlet を理解する為の足掛かり ホーム

Webアプリケーションとは?


・ インターネット上で動くアプリケーション 。

・ アプリケーションサーバーで実行されるプログラム。

・ インターネット上のホームページで 『動的に作られたもの』
 であれば、Webアプリケーションである。

・ Webアプリケーションの開発には、 Java、PHP、Perl等の
 言語が使われる。

・ AmazonやGoogleはWebアプリケーションである。



※ インターネットに接続された あなたのパソコンで、 ブラウザ
  のアドレス欄 に URL を入力して ENTER キーを押下すると、
  あなたのパソコンが HTTPリクエスト を インターネット に向け
  て発する。 インターネット上では URL を元に特定のサーバー
  (アプリケーションサーバー)が、HTTPリクエスト の情報を受
  け取り、それを元に htmlファイルを生成し、あなたのパソコン
  に情報を送り返す。あなたのパソコンではブラウザが  html
  ファイルを元に情報を表示する。この流れの中でアプリケー
  ションサーバーが htmlファイルを生成しているが、このプログ
  ラム を Webアプリケーション と言う。



ホームへ