WEBの歴史を学ぶ

f:id:ryoutaku_jo:20190123114949p:plain

【結論】
・技術を習得するには、その技術が確立された背景も
 理解しないと、応用が効きづらい。
・Webは、一つの課題が解決されても、
 そこから新たな課題が見つかり、それを解決させても
 次の課題が見つかるというサイクルで成長している


【目次】


【本題】

記事を書いた経緯

前回下記の記事でもお話ししましたが、
デプロイが本当に大変だった・・・

ryoutaku-jo.hatenablog.com


そして、今またデプロイのエラーに困らされています・・・

大変な理由は、挙げ出したらキリがありません
・設定箇所が多岐に亘る
・ログに残らない作業がある
・ログがあっても、エラー箇所が直接明示されていない

但し、本質的な問題点は、
どういった仕組みで
サーバーが通信しているのか?

ということを、きちんと理解していないことだと感じました。

例えば、
「Mysql2::Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock’」
というエラーが出ても、
「socketって何?」というところからスタートなので、
全く何が起きているのか理解出来ないという事が多々ありました。

それ以外にも、アプリ開発で度々登場するHTTPについても
きちんと理解していない部分があったので、
これを機にWEB技術の基礎を勉強することにしました。

歴史を学ぶ重要性

Web技術の基礎を学ぶ際、
HTTPやsocketといったピンポイントで技術を絞って
学習した方が良いと、始めは考えていました。

但し、Web技術について学習するにあたり、
参考にした本に記述されていた下記の内容で考えが変わりました。

○最も効率よく「技術」を学ぶ方法
本書では、最新の技術ではなく、何年経っても役に立つ基本的な考え方を
伝えることを主眼に置いています。先ほども説明した通り、Webアプリケーションの
世界は次々と新しい技術が登場しており、本書執筆時点での最新技術を紹介しても
すぐに陳腐化してしまうからです。

ポイントを押さえて技術を理解するには、その歴史や背景を押さえる事が
効率的ではないでしょうか。技術は全て私たち人間が生み出したものですから、
それが必要になった背景があります。ある背景から問題意識が生まれ、
それを解決する為に新たな技術が生み出される。
さらにその技術を利用する上で
別の問題が生じ、それを解決する為に新たな技術が生まれる。
その繰り返しの上に成り立っているのが、今私たちが利用している技術だと言えます。

※引用:「プロになるためのWeb技術入門」

つまり、なぜその技術が必要になったのか?ということを
理解していないと、点と点が繋がらず、応用が効かないという事です。

なので、まずはWeb技術が確立されていった歴史から学ぶことにしました。


1:インターネットの原型の誕生(1969年)

課 題:従来の電話網では、電話中継基地が破壊されると、役に立たなくなる
解決策:分散型ネットワーク・情報のパケット化(ARPANET
立役者:アメリカ国防総省 高等研究計画局(ARPA)

この時代の最も効率的な通信手段は電話回線によるものでしたが、
従来の電話網では、電話中継基地が破壊されると、機能しなくなります。

実際に、1961年に米国の電話中継基地がテロで破壊され、
国防総省の回線も一時ダウンしてしまう事件も発生しました。

当時は米ソ冷戦の真っ只中で、核戦争が起こる可能性も想定されていた為、
こういった有事でも通信可能なシステムの研究が始まりました。

その研究を行っていたのが、アメリカ国防総省
高等研究計画局(略称ARPA、後にDARPA)です。

そして、ARPAが構築したネットワークが「ARPANET」と呼ばれ、
これが現代のインターネットの原型となっています。

ARPANETでは、現在のインターネットにも取り入れられている
「分散型ネットワーク」「情報のパケット化」という仕組みが採用されています。

・分散型ネットワーク
 従来の中央集合型のネットワークだと、中継点を一ヶ所に限定しているので、
 そこが機能しなくなると、通信が出来なくなります。
 対して、分散型の場合、通信を行う際の中継点が一ヶ所だけではなく、
 別の箇所から迂回する事も可能になったので、中継点が破壊される事による
 通信障害のリスクを回避する事が出来ます。

・情報のパケット化
 従来は、情報は全て一まとまりで送られていましたが、
 その場合、通信が一時的に寸断されただけで、通信がストップします。
 対して、パケット化によって、送るデータを小分けすることで、
 通信が一時的に寸断されても、続きのデータを送ることが出来る様になりました。

きっかけこそ軍事問題でしたが、
研究機関同士の円滑な情報交換を重視しており、
次第に研究用ネットワークへと変化していきます。

但し、利用用途が、電子メールの共有やファイル共有と限られていた事と、
パソコンも非常に高価で、ネットワークへの接続もハードルが高い物だったので、
コンピュータに縁が無い人には興味の向かない物でした。

1:WWWの誕生(1989年)

課 題:実験成果の数が膨大で、他の研究者へスムーズに共有できなかった
解決策:HTML(Hyper Text Markup Language)によるWWW(World-Wide-Web)
立役者:欧州原子核研究機関(CERN)、バーナーズ=リー博士

欧州原子核研究機関(CERN)という組織で、
実験成果を研究者でスムーズに共有出来る仕組みを
作ろうという話が持ち上がりました。

というのも、CERNで行われている素粒子の研究は、
非常に長い期間を掛けて行われています。
なので、その間に研究者は入れ替わって行くので、
研究結果を共有して、引き継いでいく必要があります。

但し、当時存在した電子メールやファイル転送では、
膨大な数の参考文献を参照するには、使い勝手が悪かったのです。

そこでひと肌脱いだのが「バーナーズ=リー博士」です。

論文には図表や参考文献など、文字以外の情報が多く含まれますが、
彼は「HTML(Hyper Text Markup Language)」と
呼ばれる統一形式で、これらを表現することを考えます。

HTMLでは、文書間の参照が「Hyper Link」という
コンピュータの理解できる形式で記述されているので、
瞬時に参照先の文書を閲覧できます。

これにより、今まで手作業で参照していた関連論文が
ネットワーク経由で簡単に閲覧できる様になりました。

この様な、Hyper Linkの繋がりが、
あたかも蜘蛛の巣の様に見えることから、
このネットワークはWorld-Wide-Web(世界に広がる蜘蛛の巣)
と名付けられました。

なお、WWWでは、
「Webサーバー」がネットワーク上に公開しているHTMLファイルを、
「Webクライアント」の要求に従って渡してあげる仕組みになっています。

「Webクライアント」からの要求を「リクエスト」
「Webサーバー」がリクエストに応じてデータを返す処理を「レスポンス」
と言います。

Webクライアントとは、普段使用している
Internet ExplorerGoogle Chromeなどといった
Webブラウザがそれに当たります。

2:Webブラウザの祖先誕生(1993年)

課 題:同じウィンドウでテキストと画像を混在させて見れない
解決策: NCSA Mosaic(エヌシーエスエー・モザイク)
立役者:米国立スーパーコンピュータ応用研究所(NCSA)

WWW登場当初のWebブラウザはテキストだけしか表示出来ず、
画像は別のウィンドウで表示するのが一般的でした。

そこに登場したのが、
NCSA Mosaic(エヌシーエスエー・モザイク)です。

NCSA Mosaic(エヌシーエスエー・モザイク)は、
テキストと画像を同じウィンドウで表示させる事が出来た
最初のWebブラウザです。

画像の描写が可能になった事で、表現の幅が広がり、
研究者だけでなく、一般人にも興味を惹く人が現れ出します。

そして、1990年代後半から2000年代前半にかけて
パーソナルコンピューの高性能化・低価格化
ASDLや光ファイバーの普及で、
手軽にインターネットに接続できる環境が整ってきたことで
一気にWebが普及していきます。

3:CGIの誕生(1993年)

課 題:一方通行の情報発信しか出来ない。ページ更新にコストが掛かる。
解決策:CGIによる双方向通信
立役者:米国立スーパーコンピュータ応用研究所(NCSA)

インターネットが一般の人々に広がってくると、
企業も利益拡大の為、本格的に利用を始めます。

そして、企業がインターネットの効用を最大限得るためには、
公開した企業情報や広告などを、より多くの人に見て貰う必要があります

但し、どれだけ有益な情報を公開しても、
その内容が毎回同じでは、やがて閲覧者が減っていきます。

また、当時は、あらかじめ用意されたHTMLを返すことしか
出来なかったので、顧客のニーズに応じて対応する為、
双方向の通信手段が求められ始めました。

そこで考え出されたのが、CGIという仕組みです。

CGIによって、アクセス数に応じたコンテンツのランキングを表示させたり、
取り扱っている商品の在庫数をリアルタイムで反映させる事などが可能になり、
訪問者を飽きさせない工夫が出来る様になりました。

また、Webブラウザからの入力を受け取って、
それに応じた処理を行うことも可能になりました。

それにより、「検索サイト」「掲示板」「ショッピングサイト」といった
コンテンツも誕生し、爆発的にWebが普及していくきっかけになりました。

総括

ざっとWebの歴史をまとめました。

歴史を振り返ると、やっぱりこういうルール作りは、
アメリカが強いなと、改めて感じました。

まだまだ基礎中の基礎の段階ですが、
これを土台に、更にWebの仕組みに対する理解を深めようと思います。

《今日の学習進捗》

簡単なアプリを自作しながら、Railsの復習中。

学習開始からの期間 :46日
今日までの合計時間:457h
今日までに到達すべき目標時間:420h
目標との解離:37h
「10,000時間」まで、

残り・・・「9543時間!」