インターネットとは

# ★概要
これからプログラミングを学習していく際に、フロントエンドでもバックエンドでも必ず学習すべきとされているのが<font color="Red">インターネット</font>というものです。
言葉だけならかなり身近なものなのではないでしょうか？
ですが、"では、インターネットって何ですか？説明できますか？"と言われると言葉に詰まってしまうのが現状。
なので、本記事を通して今回私が<font color="Red">インターネット</font>について学んだことを紹介していきます。

# ★今回学ぶこと
* インターネットとは
* HTTP通信とは
* ホスティングとは
* ドメインとは

# ★参考にしたもの
* [総務省のHP](https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/index.html)
* [NeXtWeb](https://www.next-web.ad.jp/)
* [アイティーエム](https://www.itmanage.co.jp/column/about-http-https/)


## ★インターネットとは？
なんとなくは知ってても、人に説明しようとすると"～～な感じ"としか説明できないものですよね。
総務省のHPによると
> インターネットは、世界中のコンピュータなどの情報機器を接続するネットワークです。

とあります。
？？？？？？？？
それだけ？と思いましたよね笑
では次にネットワークとは何でしょうか。
これもまた総務省のHPからですが、それによると
> 複数のコンピュータを接続して、データを共有化したり、他のコンピュータの機能を利用したり、共有のプリンタを使用したりできるようにする通信網のこと。

とあります。
ネットワークというのはコンピュータ同士が繋がる為の仕組みみたいなものですかね。
そして、たくさんのネットワーク同士を繋ぐための仕組みがインターネットということになります。

イメージとしてネットワークはこんな感じでしょうか。
![social_network_9868.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192300/623cce3c-fc1d-7664-0a81-70623e1a8515.png)

そしてインターネットはこんなイメージです。
![internet_earth.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192300/976d95c2-08a5-861d-6fe7-54cf30962c8e.png)

ここまで読んでいただけた方はインターネット・ネットワークに関して結構イメージがわいてきたのではないでしょうか？
目に見えない領域の話なので、イメージできないと難しいですよね💦
何かもっと想像しやすい例えなどがあればコメントで教えていただけると嬉しいです！


## ★HTTPとは
なんか聞いたことはあるけど意味は分からない英語だなというイメージがありますよね。
ですが、普段私たちがURLを共有する時にコピーしてテキストとして貼り付けしますよね？
その際の先頭をよく見ると書いてあります。
> https://qiita.com/ryutizm  　　←こんな感じですね。

https? sってなんだ？って思うかもしれませんが、これに関してもご説明します。
![http.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192300/97d30c2f-53d0-aabc-e0b8-f1bc2a76ce5a.png)

### ■HTTPについて
普段私たちが何気なくスマホやPCで検索していますが、その際にコンピュータはある仕事をしています。
それは、<font color="Red">これから閲覧しようとしているページの情報をくれ！</font>という交渉です。
Webページの情報というのは私たちのスマホやPCに保存されているわけではなく、サーバー上にあるので、対象の情報をサーバー側に要求しないといけないんですね。
ちなみに、サーバーとは簡単に説明するとインターネット上のファイル保管役です。
Webサイトの情報を要求するとサーバーが返答してくれます。
そして、その時に使用しているのが<font color="Red">HTTP</font>ということになります。
私の勝手なイメージですが、手元のコンピュータ(スマホなど)とインターネットとでやり取りをする言葉のようなものだと思います。
アイティーエムのHPによると
>HTTPの特徴の1つは動作がとてもシンプルな点です。情報のやり取りは常に、クライアント（Webブラウザなど）が要求を出し、サーバが応答を返します。1つの要求（リクエスト）には1つの応答（レスポンス）を返すルールになっていて、どちらかが多くなることはありません。

とあります。
難しく考える必要はなく、シンプルにコンピュータがインターネットを利用するためにサーバーと連絡を取るための言葉と認識しておきましょう。

### HTTPSについて
こちらはHTTP通信を暗号化するものになります。
実はHTTP通信だけではハッキングなどで外部に情報が漏れてしまう危険性があります。
そこで、暗号化してHTTPSとすることでそのような危険性を回避することができます。
アイティーエムのHPによると
> HTTPSを使うことで、HTTPのリクエストやレスポンスの内容は暗号化されるので、インターネットのどこかで誰かが盗聴しても、その内容を知ることは出来ません。また、通信中に誰かが通信内容を書き換える「改ざん」が行われたことを検知することも出来、接続先のWebサーバが本物かを検証する機能もあります。

とあります。
これからWebサイトを閲覧するタイミングで一度URLを確認してみると面白いかもしれませんね(笑)


## ★ホスティングとは
簡単に言うとレンタルサーバーを借りることです。
先述しました通り、サーバーは私たちのコンピュータからの要求に返答するという仕事をしています。
ですので、ブログを運営したり、ネット上で商品を販売したりといったサービスをしようとするとお客様のコンピュータに自動でHPを表示するためのサーバーを用意しないといけません。
その際にメジャーなレンタルサーバーを借りることをホスティングというそうです。
サーバーをホストするというニュアンスでしょうか。

## ★ドメインとは
一言でいうとドメインはインターネット上の住所です。
サーバー上には膨大なファイルが保存されているので、住所(ドメイン)を使用して判別しています。

住所：緯度123456/経度987645→東京都港区******
ドメイン：IPアドレス123.456.78.90→ryutizm.com

上記のように住所は私たちの住んでいる緯度と経度を私たちが理解しやすくしたものになります。
住所を聞かれて緯度と経度を言われても意味が分かりませんよね(笑)
それと同じで、ドメインはIPアドレスを私たちが理解しやすい表記に変換してくれます。
IPアドレスというのはサーバー上のファイルの格納場所になります。

流れとしては以下のようなイメージです。
URLを入力→→→URLをIPアドレスに変換→→→サーバーがIPアドレスを頼りにファイルを探す


# まとめ
以上が私が学習したインターネットに関しての内容になります。
かなり長くなってしまいました💦
ですが、これからプログラミングを学習していく中で避けては通れないほど重要な内容なので、今回しっかりと学習できてよかったと思います。

今後も学習内容を発信していきますので、お手すきの際に閲覧していただけるとモチベになります。
以上です、お時間ありがとうございました。