CHROMA

世の中の "当たり前" を確認する

Webとネットワークの基本用語

僕はこれまでパフォーマンスを考慮してコードを書くということをしていませんでした。
それに、Webサイトを表示するブラウザや、その周辺の仕組みの理解を深める動きをしてきませんでした。

しかし、一年ほど前にHTML5 ROCKSの「ブラウザの仕組み: 最新ウェブブラウザの内部構造」という記事を読んだときから少しずつ興味が湧いてきました。
自分が作ったWebサイトがどのような仕組みで動いているのか、HTTPやTCP/IPという言葉は何を指すのかというのが気になってきたのです。

そして、その頃上記のようなことを知るためには「HTTPの教科書」という本が最適だと思って購入していたので、最近になってこれを読み始めました。(本当にここ最近までは、買ったまま内容がわからずに放置していました... )

読み終えたのはまだ第一章までですが、知らない用語の意味も多かったので、リスト形式でメモを書き残しておこうと思います。

  • クライアント ... サーバにリソース提供の依頼を出すもの(Webブラウザなど)
  • サーバー ... クライアントから依頼されたリソースを返すもの
  • プロトコル ... 通信方式の決め事
  • TCP/IP ... インターネットに関する様々なプロトコル群の総称。これは階層構造を持っており、次の4つの階層に分かれている
  • アプリケーション層 ... ユーザーに提供するアプリケーションで使う通信の動きを決めている階層。FTP, DNS, HTTP など
  • トランスポート層 ... アプリケーション層から受け取ったデータを分解し、それぞれに識別子を付けて次の層に渡す階層。TCPUDPがこの階層に含まれる
  • ネットワーク層 ... パケットを送信する経路(道順)を決める階層。IPなど
  • リンク層 ... ネットワークに接続するハードウェア的な面を扱う階層
  • HTTP ... 文章の転送プロトコル。アプリケーション層に含まれている
  • DNS ... HTTPと同じアプリケーション層のシステムで、ドメイン名とIPアドレスの名前解決を行なう
  • TCP ... 大きなデータを送りやすいようにTCPセグメントと呼ばれる単位のパケットに細かく分解して管理し(バイト・ストリーム・サービス)、それぞれに通し番号を付けて次のネットワーク層に渡す
  • IP ... プロトコルの一種で、ネットワーク層に含まれている。個々のパケットをまとめて次のリンク層に届ける役割を担っている
  • ARP ... アドレスを解決するためのプロトコルの1つ。宛先のIPアドレスを元にMACアドレスを調べる
  • IPアドレス ... IPがパケットを次の階層に届けるために必要な要素の一つ。各ノードに付けられたアドレスを指す
  • MACアドレス ... IPアドレスと同じく、IPがパケットの運搬に必要な要素の一つ。各ネットワークカードに割り当てられた固有のアドレスを指す
  • URI ... スキーム(http:, ftp:, file:, etc... )で表せるリソースを識別するための識別子
  • URL ... リソースの場所を表すもの。URIのサブセットにあたる

とりあえずデータ通信には階層があり、段階毎に決められた役割が決められているというところまでわかりました。そして、HTTPやTCP、IPという気になっていた用語は、大体はプロトコルの一種でした。