はじめに
こんにちは、テリスです!
ネットワークが繋がる理由についてアウトプットするために書きました。
備忘録として残しておきます。
用語解説
- Web = WWW(World-Wide-Web):インターネットを利用して文章や画像などを公開・閲覧できる仕組みのこと
- インターネット:世界中のコンピューターを相互接続したネットワーク網
- HTTP:情報を取得したり発信したりする際のプロトコル(約束事)
- URI(Uniform Resource Identifire):インターネット上における情報の場所
- URL:正確には違いがあるが、URIと同じとして考えて問題ない
- クエリパラメータ:?の後に名前=値が続く。パラメーターを渡す
- URIフラグメント:URIのリソースの、さらに具体的な部分を指定する
- ドメイン名:インターネット上で使われるユニークな名前
- IPアドレス:ネットワーク上の機器を識別するためのインターネットの住所
- DNS:ドメイン名をIPアドレスに変換する仕組み
- DNSサーバー:ドメイン名とIPアドレスの対応表を持っているサーバーで、インターネット上に配置されている
- ポート番号:どのアプリケーション宛の通信なのかを指定する番号(手紙でいうと〜様宛と書くのと同じ)
- TCP/IP:インターネットを構築する上で必要なプロトコル群の総称。宛先へ通信を届ける役割を担っている
- HTTPメソッド:リソースに対して実行したいアクションの種類
- HTTPステータスコード:HTTPリクエストが正常に完了したかを示すレスポンスの3桁の数字
- リソース:URIを持っている情報のこと
用語解説の詳細
URI(Uniform Resource Identifire)
URIはスキーム、ホスト名、ポート番号、パス名、クエリパラメータ、URIフラグメントから構成されている
http(スキーム)://example.jp(ホスト名):50080(ポート番号)/usr/index.html(パス名)?tag=top(クエリパラメータ)#middle(URIフラグメント)
HTTP
決められた書式により、クライアント(web検索などインターネットを使う人)がHTTPリクエストを送り、サーバーがHTTPレスポンスを返す
HTTPリクエスト【クライアント → サーバー】 ※()は説明
GET(HTTPメソッド) / HTTP/1.1(HTMLのバージョン)
Host: www.google.com:443
Accept: text/html
HTTPレスポンス【クライアント ← サーバー】
HTTP/1.1 200(HTTPステータスコード)
cacha-control: private, max-age=0
...
HTTPメソッド
アクションの種類は9種類
- GET:リソースの取得
- POST:リソースの作成
- PATCH:リソースの部分修正
- DELETE:リソースの削除
- PUT:リソースの更新
- HEAD:リソースのヘッダの取得
- OPTION:リソースの利用可能なメソッドの取得
- TRACE:リクエストメッセージを返す試験を実行
- CONNECT:プロキシ動作のトンネル接続への変更
HTTPステータスコード一覧
ステータスコードは先頭の数字によって5つに分類できる
- 1xx:情報
- 2xx:成功
- 3xx:リダイレクト
- 4xx:クライアントエラー
- 5xx:サーバーエラー
ステータスコード | 意味 |
---|---|
200 | OK |
201 | Crested |
204 | No Content |
301 | Moved Permanently |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
500 | Internal Server Error |
503 | Service Unavailable |
通信はどのように届くのか
- HTTPリクエストのHostに記載されているドメイン名をDNSサーバーでIPアドレスに書き換える
- 書き換えたIPアドレスとポート番号から宛先を特定する
- TCP/IPがデータをパケットという形で小分けにして送信する※1
※1 インターネットは様々なネットワークが繋がっているため、大きなデータを一度に流すとエラーになる可能性があるため、小さければエラーがしにくく再送もしやすいため、パケットという形で送信している。
まとめ
現代でネットワークは私たちの生活と切っても切り離せないものとなっています。
日常で使うネットワークの仕組みを少しでも理解しようと学習したが、思っていたよりもネットワークを完全に理解するのは難しそうでした。
今後もネットワークについての学習を進めていきたいと思います!
参考