www(world wide web)登場の背景
- 欧州原子核研究機構のティムバーナーズ=リー博士が提案。核素粒子の実験成果を全世界の研究者で共有しようという話しから、試行錯誤の結果登場することになりました。当初は研究用の資料を共有するためだけであったので、文字が主体でしたが、マークアンドリューセンが開発したMosaicというWebブラウザが文字と画像を混在させて表示できるようにしました。これが基礎となり、のちにInternetExplorerやfirefoxなど現在私たちが使用しているwebブラウザにつながります。
Webにおけるクライアントとサーバの役割分担
- クラインアントとサーバをなぜ分ける必要があるかということについて。インターネットの普及により、不特定多数の人がコンテンツにアクセスできるようになりました。しかし、様々なコンテンツを多くの人に公開するにはサーバを管理する必要がありました。そこで、一箇所に情報を集めてしまおう、そしてたくさんいるクライアント(人々)とインターネットで接続してしまおうということで、クライアントとサーバは役割がわかれました。
URL(Uniform Resource Locator)の役割と構造
- Webブラウザが目的の情報をどのようにして得るかということについて。クライアントがサーバにリクエストを投げることによって、サーバがレスポンスを返すというのがクライアントとサーバの関係です。しかし、インターネットの発達によりコンテンツは数え切れないほどあるので、それをどのように特定するかということで発明された技術がURLです。
HTTPの役割
- インターネットが登場したばかりのころは、異なるコンピュータの間でどのように情報を通信するかという問題がありました。そこで、様々な種類のコンピュータが通信できるように取り決めをしたことを通信プロトコルと言います。インターネット黎明期はすでにファイル通信のためのFTPやSMPTなどのプロトコルが存在しましたが、HTMLの転送に適したHTTPが発明され幅広く利用されるようになりました。他のプロトコルに比べシンプルで実装が簡単であったのことが普及の要因です。
CGI登場の背景
- 人間は動くものに興味が引かれるという基本的な性質により誕生しました。wwwの誕生部分でも記述しましたが、インターネットは当初研究用の資料など文書の共有を中心に発達しました。サーバは静的なコンテンツをリクエストがあると返すというシンプルな構造でした。ただ、不特定多数の人がインターネットという大きなプラットフォームを絶えず訪れるようにするためには、変わり映えのしない静的コンテンツでは閲覧者が減ってしまいます。そこで誕生したのが、動的コンテンツでした。その仕組みがCGIです。CGIによってクライアントはリクエストを送り、それに応じたレスポンスをサーバ側で生成して返します。※静的コンテンツとはいつ誰がリクエストを送っても同じ内容しか返ってこないもの・動的コンテンツとはリクエストによって返ってくる内容が変わるもの。例えばtwitter、ログインしているユーザで内容がそれぞれ違います。
サーブレット登場の背景
- CGIのおかげでwebアプリケーションが爆発的に普及し、Webの利用者も同じく増えました。一方CGIは大規模で複雑な仕様には向いていません。これは言語と性能の問題です。①CGIはperlという言語を利用してプログラムを設計していましたが、perlは大規模で複雑な開発には向いていないうえに、当時はオブジェクト指向プログラミングも取り入れていませんでした。②ブラウザからリクエストが届くたびにCGIを通してプロセスを起動していました。アクセス数が少ないうちは問題ありませんが、1日に何万、何十万というアクセスになると処理が追いつかなくなってしまいます。CGIが上記のような問題を抱えているのに対して、登場したのがサーブレットです。サーブレットはJavaで作られたHTMLなどのWebコンテンツを生成するためのプログラムのことです。基本的構造はCGIと同じですが、CGIと違いリクエストのたびにいちいちCGIを通してプログラムを実行しましたが、サーブレットはWebサーバと同じプロセスの中でコンテンツを生成するプログラムが動作するため、比較的高速に動作します。
JSP登場の背景
- サーブレットは記述方法がJavaの中にHTMLを書くという記法でした。そのため、ソースコードが大量になればなるほど後の改良が難しくなりました。そこで新たに生まれたのが、JSPです。JSPはHTMLの記法の中にJavaのコードを埋め込むという記法をとりました。
Webアプリケーションフレームワークの必要性
- サーブレットやJSPによりWebアプリケーションの開発は進歩しましたが、インターネットの大規模化により、ますます効率がよく、分かりやすい開発手法を求められるようになりました。それが、「再利用」という考え方です。よく利用される部品はライブラリとよばれます。さらに再利用できる部分を増やしてアプリケーションを開発しやすくするための土台として作られたものが「フレームワーク」です。フレームワークを土台にして必要な部分を作り足していけば、望むアプリケーションが短期間で開発できます。