過去から学ぶWebシステムの仕組み【簡単解説!】
こんにちは、ともです。
20年間システムエンジニアを続けるなかで、Webシステムの仕組みが急速に変わりました。
今回はWebシステムの歴史について紹介します。
目次
- Webとは
- 静的コンテンツ
- 動的コンテンツ(CGI)
- 動的コンテンツ(Java)
- 動的コンテンツ(フレームワーク)
- 動的コンテンツ(フレームワーク)
- 開発ルールの統一
- MVCモデルを使ったコーディングの分担
- まとめ
Webとは
World Wide Web(ワールド・ワイド・ウェブ、略名:WWW)とは、インターネット上で提供されているハイパーテキストシステムである。Web、ウェブ、W3(ダブリュー スリー)とも呼ばれる。俗には「インターネット」という表現がワールド・ワイド・ウェブを指す場合もある。情報提供を担う者はウェブサーバーを公開し、一般利用者はウェブブラウザを介してウェブサーバーにある情報を閲覧するようなシステムが基本である。
「"World Wide Web"」『フリー百科事典 ウィキペディア日本語版』より。
"最終日付(2019年3月25日 (月) 00:17)" UTC
URL:http://ja.wikipedia.org/
つまり、Chrome、Safariなどのブラウザを介して
- 「https://www.google.com/」
- 「https://www.yahoo.co.jp/」
- 「https://bsf40.blogspot.com/」
上記URLに対するウェブサーバーから情報を閲覧するシステムです。
『https://bsf40.blogspot.com/』をブラウザのアドレスに入力するとウェブサーバーからHTML形式で情報が送られます。
HTMLは【HyperText Markup Language】の略で、テキストをマークアップで表現した言語です。
- <H1>文字</H1>
上の例は、文字がテキストで、<H1></H1>これがマークアップです。この1行が言語です。
ブラウザのアドレスに入力しウェブサーバーに問い合わせることをリクエストといい、ウェブサーバーからブラウザに結果を返すことをレスポンスと言います。
レスポンスはHTML形式です。そのHTMLをブラウザが翻訳(解析)をして結果をブラウザの画面に表示します。
静的コンテンツ
20~30年前のwebのシステムは静的HTMLファイルをウェブサーバーに配置しそのHTMLの文章をブラウザで表示していました。
最初は文字だけですが、その後CSSを使って文字の中央寄せ、文字の色を変える等のスタイルやデザインができるようになます。
また、画像もウェブサーバーから取得します。
この画像は一時的なフォルダに保存され、描画の際に読み込まれます。
この当時はJavaScriptはIE系とNetscape Navigator(NN) 系の2種類ありましたが、互換性がなくこの時の開発者は泣いていました。
動的コンテンツ(CGI)
静的コンテンツはサーバーに配置されたHTMLファイルをそのまま表示するだけでした。
しかし、技術的な向上と利便性から動的なコンテンツを利用することができるようになります。
- ページを閲覧するカウンター
- 問い合わせ用のフォーム
- 掲示板
- チャット
この動的なコンテンツを作る技術として、CGI:Common Gateway Interfaceが登場しました。
リクエストに.cgiを記述することでCGIを介してperlなどのプログラムからHTMLで表示する一部、または、全体を動的に作成します。
CGIを使うことで動的なコンテンツが利用できるようになります。
ただし、このCGIはリクエスト毎にプログラムを起動するため、リクエストが多くなるとサーバーの負荷が高くなるというデメリットがありました。
※プログラムの起動については以降プロセスと表現します。
動的コンテンツ(Java)
そこで登場したのが、Javaでありプロセスが複数起動するのではなく、ひとつのプロセスの中でスレッドといわれる処理の単位で実行されます。
JavaがWebシステムで利用された当初は、各企業が独自のコーディングで実装を行っていました。
Javaがでた当初はJavaのコーディングで直接HTMLのタグを記述することもありました。
動的コンテンツ(フレームワーク)
独自コーディングでは開発工数が増える傾向でしたが、この工数の短縮方法としてフレームワークが登場しました。
フレームワークを使う利点は以下の通りです。
- アプリケーション特有の処理の提供
- 開発ルールの統一化
- MVCモデルを使ったコーディングの分担化
アプリケーション特有の処理の提供
セッション管理、セキュリティ面の強化、リクエストやレスポンスの管理などをフレームワークが提供します。
フレームワークが提供することでアプリケーション固有のコーディングに力を入れることができます。
開発ルールの統一
フレームワークを利用することで、コーディングのルールを統一することができ、開発スピードと品質が向上します。
MVCモデルを使ったコーディングの分担
主なフレームワークはMVCモデルを採用しています。MVCモデルを採用することで、開発の専門性と分担が可能となり開発スピードも向上します。
まとめ
インターネットとパソコンの普及によりビジネスのスピードが年々はやまるなかで、システムの短期開発が求められWebシステムの仕組みも劇的に変化しています。
フレームワークもかなり進化し、数多くのフレームワークがあります。その一方でなくなるフレームワークもあります。
今後はAIやiotの技術により、今までと異なるWebシステムの仕組みが登場することも考えられます。
そういった部分に柔軟に対応できるように過去の技術の移り変わりを勉強することをお勧めします。意外と基本的な部分は同じです。
0 件のコメント:
コメントを投稿
コメントをお待ちしています。