【初心者向け解説】Webサーバーとは? & Webコンテナとは?

WebサーバとWebコンテナ
  • このエントリーをはてなブックマークに追加
  • Pocket

JavaでWebアプリケーションを作っていく際に、まず理解したいのがWebサーバとWebコンテナとは何か、だ。

このページではWebサーバとWebコンテナについてご紹介した。参考にしていただければ幸いだ。

WebサーバとWebコンテナ

はじめに

Javaで作られたWebアプリケーションを動かしたい、そんな時まず用意するべきものはWebサーバとWebコンテナだ。

クライアントアプリケーションを動かしたい時は、動作させるPCにJRE(Java Runtime Environment )を入れる必要がある。一方Webアプリケーションの場合は、利用する側はPCに何もインストール必要はなく、Webブラウザから指定のURLにアクセスしさえすればよい。

Webアプリケーション側では、Webブラウザからの要求(リクエスト)に応じて処理するWebサーバとWebアプリケーションを動かす基盤となるWebコンテナが必要となる。

Webサーバとは?

Webサーバーとは、上でも書いたようにWebブラウザからのリクエストに応じて静的画面や画像を表示する働きをするものだ。

次のようなイメージになる。

webサーバとは

もちろんブラウザ以外にもクライアントはたくさんあるので、下記の感じだ。

サーバと聞くと難しいが、要は会社が用意したパソコンくらいに思っておけばいい。インターネット越しにそのパソコンのデスクトップなり、フォルダの中なりを閲覧できるようにしているだけだ。

クライアントとサーバ

サーバ

Webサーバ

クライアントの要求に応じで情報を返す。

クライアント

Webブラウザ

サーバーから帰ってきた情報(リソース)を解析して表示する。

HTML・CSS・JavaScript・画像・動画などを表示する。

主なWebサーバ

Apache、nginx 、IIS(Internet Information Services)の3つが有名だ。それぞれの特徴を簡単にまとめると次のようになる。

Apache

フリーでありながら高い信頼性と充実した機能を備えたWebサーバ。しかし充実しているがゆえに大量のアクセスがあった場合にレスポンスが遅くなる問題点がある。

Nginx(エンジンエックス)

Apacheの問題点である一度の大量のアクセスがあった際にレスポンスが遅くなる点を解決するために作られた。処理が高速。

IIS

Microsoft Windowsの標準Webサーバ

 日本だと圧倒的にApacheが人気だ。海外だと徐々にNginxが優勢になってきている。

Webコンテナとは?

Javaで作られたWebアプリケーションを動かすためには、プログラムを解析して処理を行う実行環境が必要になる。

Webアプリケーションを動作させるための実行環境がJ2EEだ。J2EEはJDKやJREのようにライブラリをインストールするのではなく、J2EEを組み込んだWebコンテナとして提供されている。サーブレットコンテナとも言う。

検索エンジンなどのように入力された値などをもとに要求された処理を実行して結果をブラウザに表示するなどの動的処理を行う。

webコンテナ

サーブレットコンテナの仕事

サーブレットコンテナの主な仕事をあげると次のようになる。

サーブレットの実行環境の提供

サーブレットを動かすライブラリ群などの機能を提供

ライフサイクルの管理

サーブレットの起動から破棄されるまでの一連の流れを管理する。起動や破棄という

処理をコンテナが引き受けることで、プログラムを作成する際の品質が保たれやすい。

また要求が多くなってもレスポンスが落ちにくくなっている。

セッション管理

セッションを管理する機能が用意されている。セッションがわからないという方は徐々に説明をしていくので、その際に理解していただければ十分だ。

Webアプリケーションに必要なサービスの提供

そのほか、多言語への対応などWebアプリケーションに必要なサービスを組み込んでいる。

主なWebコンテナ

Javaの主なWebコンテナには次のようなものがある。

Tomcat

オープンソースのソフトウェア。J2EEのServletとJSPという仕様にのっとったプログラムを動かすエンジン

Glassfish 

J2EE標準のWebコンテナ。やや重い。NetBeansというOracleが提供する開発ツールでは標準装備されている。

Jetty 

Javaで作られたWebコンテナ。

非常に軽量。

まとめ

このページではWebサーバとWebコンテナについて簡単にお伝えしてきた。サーブレットを学習する前に、まずはこれらの言葉の意味を掴んでいただければと思う。 

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リナックスアカデミーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. 山田 より:

    「Webコンテナとは?」に記載されている図の、番号の振り方がおかしくないでしょうか?

    ②処理要求 (Webサーバ→Webコンテナ)
    ③処理結果 (Webコンテナ→Webサーバ)

    になると思います。

    番号だけ見ると、処理結果を出してから、処理要求をしてます。
    私もこの業界に入っての初心者なため、実際はわかりませんが、
    是非確認していただければと思います。

    1. リナックスアカデミー より:

      ご愛読いただきありがとうございます。
      画像の番号についてですが、ご指摘の通り(2)処理要求・(3)処理結果となります。
      ご指摘いただきありがとうございました。

      引き続き、ご愛読のほど、よろしくお願いいたします。

リナックスアカデミー へ返信する コメントをキャンセル

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リナックスアカデミーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する