インターネットの仕組みとは

# インターネットの仕組みとは

インターネットの基本的なことを学習しました。忘れないように備忘録としてまとめます。
インターネットの歴史については省略しています。

## 目次
Webアプリケーションとは
・デスクトップアプリケーションとWebアプリケーションの違い
WWWの誕生と普及
・インターネットとは
・インターネットの語源
・WWWとは
・WebサーバとWebクライアント
・なぜ、クライアントとサーバに分けるのか
・その「リソースはどこにある？」ー URL
・スキーム
・ホスト名
・パス名
・HTTP


今回はここまで

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

### Webアプリケーション
・主な処理は、手元のPCではなくサーバ上で行われている
・画面は、HTMLで表現され、Webブラウザ上に表示されている
・アプリケーションをPCへインストールする必要がない

### デスクトップアプリケーションとWebアプリケーションの違い
|| デスクトップアプリケーション | Webアプリケーション |
| :-: | :-: | :-: |
| 処理の主体 | 手元のPC | サーバ |
| 画面の表示 | OS上で表示 | Webブラウザ上で表示 |
| インストール | 必要 | 不要 |


## wwwの誕生と普及

### インターネットとは
世界中のコンピューターを接続するネットワーク網のことを指します。
インターネットは元々世界規模で構築されたものではなく、誕生からこれまでの数十年間の間に、様々なコンピュータネットワークを相互接続することで発展してきました。

### インターネットの語源
インターネット（Internet）の「インター（Inter）」は「〜の間」とか「相互」という意味を表す言葉なので、「インターネット」は「ネットを相互に繋ぐもの」という意味から名付けられています。

### WWWとは
「World-Wide Web（ワールド・ワイド・ウェブ）」と、現在私たちが利用しているWebブラウザの原型である「NCSA Mosaic（エヌシーエスエー・モザイク）」と呼ばれるソフトウェアの登場でした。
World-Wide Webは現在では「WWW」（ダブリュ・ダブリュ・ダブリュ）や、単に、「Web」（ウェブ）と省略して呼ばれています。より一般的には「ホームページ」や「Webサイト」などと呼ばれています。
最初に、「HTML（Hyper Text Markup Language）」と呼ばれる統一された形式で表現することを考えられました。研究成果を表現するには文章だけでなく図表や参考文献などが必要です。これらをテキストファイル（文字だけで構成されたファイル）だけで表現できるようにしたものが、HTMLです。HTMLは徐々に仕様が固められていき、現在でもWebサイトの記述に使われています。
ここで画期的だったのは、「Hyper Text（ハイパー・テキスト）」と呼ばれる仕組みです。ハイパーテキストでは、文章間の参照が「Hyper Link（ハイパー・リンク）」という、コンピュータに理解できる形式で記述されているので、瞬時に参照先の文章を閲覧できます（画像1）。これによって、今まで手作業で参照しなければならなかった参考文献や関連する論文などの資料を、ネットワーク経由で簡単に閲覧できるようになったのです。

＜＜画像1＞＞
![ハイパーリンクイメージ画像12022-03-24 23.01.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663596/df3fc77e-7260-8b54-ee17-9a44c27412e3.png)


このようなネットワーク上でリンクされたハイパーリンクのつながりを、あたかも蜘蛛の巣のように見える（画像2）ことから、World-Wide Web（世界に広がる蜘蛛の巣）と名付けられたのです。このWWWという、仕組みの登場によって、情報の相互伝達率が大幅に向上し、研究者たちは互いに研究成果をネットワーク上に公開し、自由に閲覧できるようになりました。

＜＜画像2＞＞
![WWWイメージ2022-03-24 23.26.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663596/b213b022-f2bb-b52f-bba4-d2c0403f6187.png)


WWWの登場当初の現在のWebブラウザのような表現はできず、文字のみの表現でした。現在のように文字と画像を混在させて表示できるようにしたのが、NSCA Mosaic（以降、Mosaic）というWebブラウザでした。

### WebサーバとWebクライアント
WWWによるハイパーテキストの公開と閲覧は、具体的には「Web サーバ」と「Webクライアント」というソフトウェアで表現されています。
「クライアント」と「サーバ」という言葉はそれぞれコンピュータやその上で動作するソフトウェアを指し、「client（お客様）」と「server（仕える人）」というそのままの意味の英語が語源になってます。
WWWでは、Webサーバがネットワーク上に公開するハイパーテキスト（具体的には、HTML形式のファイル）を蓄積し、Webクライアントの要求に従って必要なHTMLファイルを渡してあげる仕組みになっています（画像3）。

＜＜画像3＞＞
![クライアントとサーバ2022-03-24 23.49.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663596/0e27721b-3792-0a99-7593-b6dcca37d2bb.png)

ここで、一般に、クライアントからサーバに対する要求を「リクエスト（request）」、サーバからクライアントに対する応答を、「レスポンス（response）と呼びます。

・「WWWサーバ」や「HTTPサーバ」という呼ばれ方もしますが、全て同じ意味と捉えて差し支えない。

・「オープンソース」とは、ソフトウェアのソースコード（コンピュータの動きを記述した命令書）が公開され、商品製品とは違って基本的に誰でも無償で利用できるソフトウェアのことです。

Webサーバ用のソフトウェアとして、オープンソースで公開されている「Apache HTTP Server（アパッチ）」や、Microsoft社の「Internet Information Services（通称IIS）」が幅広く利用されている。
Webクライアントとは、普段利用しているInternet Explorer、Firebox、SafariなどのWebブラウザのことです。

### なぜ、クライアントとサーバに分けるのか
WWWのように様々なコンテンツを不特定多数の人に公開するには、コンテンツを出来るだけ1ヵ所にまとめておいた方が、管理が楽になります。同じコンテンツが複数の場所に分散していると、更新するのが大変になってしまう。コンテンツの保存場所を把握し、それらを同時に更新しなければいけないからです。
利用者の手元にあるPCをWebクライアントとして利用できるようにして、遠隔地にあるWebサーバとWebクライアントの間をインターネットで接続することで、WWWを実現しました。このように、不特定多数の利用者に多様なWebコンテンツを公開するWWWを実現するために、クライアントとサーバに役割を分けることが必然となったのです。

・Webサーバと通じて公開される情報を一般的に「コンテンツ」と呼ぶ。HTML以外にも、画像や動画、音楽も含む。

### その「リソースはどこにある？」ー URL
クライアントがサーバに対して「HTMLをください」と要求しているわけですが、実際にはもっと具体的に要求を伝えてもらわなければ、サーバも困ってしまいます。クライアント（利用者）が「どこどこにあるこのコンテンツが読みたい」と指定する方法が必要になります。コンピュータがネットワークに接続される前に、各コンピュータに保存されたファイルに一意な名前を付けておけば問題ありませんでした。しかし、WWWの場合は不特定多数の人が様々なコンテンツを公開するため、単なるコンピュータ上のファイル名だけでは、インターネット全体で一意にならないという問題があります。
この問題をわかりやすくするため、現実世界に置き換えて考えてみましょう。例えば、友達に、「鈴木太郎」という名前の人がいたとします。約1億3000万人いる日本人の中から、あなたの友人の鈴木太郎さんを特定するにはどうしたらよいでしょうか。
まず、「鈴木」という名字だけでは特定できません。次に「鈴木太郎」ではどうでしょうか。これでも鈴木太郎さんは国内に何百人といそうです。では、勤務先の会社名をつけて「◯◯商事の鈴木太郎さん」ではどうでしょうか。だいぶ絞られてきそうですが、大会社であれば、まだ数人いるかもしれません。さらに、「◯◯商事営業部1課の鈴木太郎さん」と、部署名まで付ければ余程のことがない限り、特定できそうです。つまり、「ユニークな名前」となるわけです。

・「一意な〜」というのは「ただ１つに決まる〜」という意味で、よく使われる言葉。「一意」は英語では「Unique」のことなので、「一意な名前」を「ユニークな名前』とも言います。

これと同じ考え方で、インターネット上のコンテンツを一意に指定するための仕組みが、「URL（Uniform Resource Locator）」なのです。Webブラウザでサイトを閲覧するとき、アドレスバーに入力している文字列のことです。URLは日本語に訳すと「統一資源位置子（とういつしげんいちし）」となります。もう少し平たく言えば、「リソース（資源）の位置を指し示す統一的な記述方法」ということでしょうか。URLがどのようにしてインターネット上のリソースを指し示しているのか、確認してみましょう（画像5）。

＜＜画像5＞＞
![その「リソースはどこにある？」ー URL2022-03-25 7.20.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663596/3a82bab1-26ea-7d51-b88c-f856886a0ffa.png)

URLは、大きく分けて3つの部分になります。

### スキーム
リソースを取得するための方法を表す。Webアプリケーションにおいては、ほとんどの場合「http」（HTTPプロトコルを使用して入手すること）となります。
「https」暗号化されたhttp通信を表すスキームがあります。

### ホスト名
リソースが存在するホスト（コンピュータ）名を表します。
インターネットをはじめとするコンピュータネットワークの世界で、ネットワークに接続されて他のコンピュータからの要求を受け取り、処理した結果を返すようなコンピュータのことを一般的に「ホストコンピュータ」と呼びます。ここでいう「ホスト名」とは、ホストコンピュータの名前のことを指します。
ホスト名は、さらに「ローカル名」と「親ドメイン名」に分かれます。親ドメインはそのホストが存在する組織を表し、ローカル名がその組織の中のコンピュータに付けられた名前を表します。

![その「リソースはどこにある？」ー URL②2022-03-28 7.12.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663596/de650d19-bc04-c460-8893-4d6ffc365a36.png)

つまり、「www.sample.jp」というホスト名は、以下の意味を表します。

``jp`` （Japan）→日本の
``Sample`` →sampleという組織の
``www`` →wwwというサーバというコンピュータ

ローカル名はその組織の中で自由に決めることができますが、親ドメインの部分は勝手に決めてしまうとインターネット上の一意性が失われてしまうため、指定された団体が管理しています。2010年現在、日本では「日本レジストリサービス（JPRS」）という会社が管理しています。

### パス名
ホスト名で指定されたコンピュータ上のリソースの位置を示します。
webtextというディレクトリの下にあるindex.htmlというファイルを示しています。このようにURLを利用することで、ドメイン→コンピュータ→ディレクトリ→ファイル名というように階層的にリソースの位置を表すことができるというわけです。

### HTTP
WebサーバとWebクライアントが通信を行うには、どのような情報をやり取りするかという取り決めが必要です。この取り決めを「通信プロトコル（Communications protocol」）と呼んでいます。

簡単な例えとして、大昔、人間が遠く離れた相手に情報を送るのはとても難しいことでした。そこで最初に考えられたのが、狼煙という手段です。ここで、狼煙を使って、離れた人に情報を伝えるには、どのような取り決めが必要なのかを考えてみましょう（画像6）。
・狼煙（煙）を使って合図を伝えること
・「煙」は敵の襲来を示すこと
・狼煙の煙を見たら、自分達も狼煙を上げてさらに周囲に伝達すること

仮にこのような取り決めをしていなかったら、どうなるでしょうか。1つ目の取り決めがなければ、煙が上がっているのが見えたとしても、それが何らかの合図であることは分かりません。また、2つ目の取り決めがなければ、狼煙の煙が何を表すかも分かりません。このように、相手と何らかの情報をやり取りするには、事前にこのような取り決めをしておくことが重要です。

HTMLの転送に適したプロトコル、これが現在も幅広く利用されている「HTTP（Hyper Text Transfer Protocol）」です。HTTPは他のプロトコルに比べシンプルで実装が簡単であるため、広く利用されるようになりました。


今回はここまで
今後はHTTPについて詳しくアウトプットする予定

## 参考文献
・プロになるためのWeb技術入門