タナカのプログラミング

プログラミングについて

通信について

f:id:tanagram18:20190919214945j:plain

こんちは!今日は通信についておさらいしようと思います。
ルーターの事など抜けているところはあるけど、
自分がわかる範囲で書いていきます。
 
日々、自分達が見てるウェブサイトやSNSはどのような仕組みで動いているのか
 
それはHTTP通信という仕組みによって成り立っています。
 
HTTP通信とはブラウザからWebサーバー間で行う通信のこと。
ブラウザとはWebサイトやSNSを見る自分たちの端末やパソコン。
Webサーバーはサイトのページを返すサーバ、Webサーバのソフトが起動しているPC。Webサーバーのソフト:Apache Server nginx Tomcatなど。
 
ブラウザからインターネットにアクセスした時、
Webサーバーにリクエストを送っている。
そして最終的にクライアントとなるブラウザにレスポンスを返えしている。
 
www.yahoo.co.jpを検索すればYahoo!のページが見れるし
http://jojo.comを検索すればジョジョのページが見れる
 
しかし、URLだけだとWebサイトを閲覧することはできない。
普段、URLだけでWebサイトを見れてるように思うが、PC間の通信はURLだけではできない。そこで登場するのがIPアドレス
 
IPアドレスとは、Webサーバーや自分のパソコンなどインターネットに接続してる機器、全てに振られるネットワーク上の名前や住所のようなもの。
 
なので、実はURLには全てIPアドレスの情報がセットでくっ付いている。
 
それを使ってURLを読み取っている。
 
じゃあ直接IPアドレス打てばいんじゃね?ってなる
 
例えばYahoo!のページでいうと
IPアドレス182.22.70.250なので、
これを打つとしっかりサイトを表示することができる。
 
確かにIPアドレスを直打ちするのは良いが覚えるのが大変なのと、変更される可能性があるというデメリットがある。
 
そんな問題を解決するのがDNS(Domain Nmae System)サーバーです。
 
DNSサーバーはURL(ドメイン)とIPアドレスを紐づけ、
クライアントからURLのリクエストを送るとIPアドレスを返してくれるシステムです。

f:id:tanagram18:20190919204943p:plain 

TECH::EXPERTでメルカリのコピーサイトを作った際、なんだこの数字のURLは
と思っていたやつがIPアドレスだったという。
まだまだクッキーやセッションやらAjaxやら書きたいことはあるのですが
長くなりそうなので、ここで切ります。