HTTP / HTTPS ── Web の 血液
HTTP(HyperText Transfer Protocol)はクライアント(ブラウザ)とサーバの会話プロトコル。「GET /page」「POST /api/login」という命令と、200 OK・404 Not Found 等の返事で構成される。
HTTPS は HTTP を TLS で暗号化したもの。今は ほぼ必須。Chrome は HTTPS でないと「保護されていません」警告を出す。
| バージョン | 登場 | 特徴 |
|---|---|---|
HTTP/1.1 | 1997 | 1 接続 1 リクエスト。今でも現役 |
HTTP/2 | 2015 | 多重化(並列リクエスト)+ ヘッダ圧縮 |
HTTP/3 | 2022 | QUIC(UDP ベース)。モバイルで強い |
GET 取得(副作用なし) / POST 作成・送信 / PUT 上書き / PATCH 部分更新 / DELETE 削除。REST API の基本動作はこの 5 つでだいたい表現できる。
DNS ── インターネットの 電話帳
DNS(Domain Name System)は example.com → 93.184.216.34 のように、人間が読みやすいドメイン名を IP アドレスに変換する仕組み。
名前解決の流れ:
あなたのブラウザ
→ ① OS のキャッシュ
→ ② ルーターのキャッシュ
→ ③ ISP の DNS サーバ(フルサービスリゾルバ)
→ ④ ルート DNS(.com の権威に聞く)
→ ⑤ .com の権威 DNS
→ ⑥ example.com の権威 DNS
→ ⑦ 答えが返る
→ ⑧ ブラウザに IP が届く名前 → IPv4
最も基本。ドメインを IPv4 アドレスに紐付ける。
名前 → IPv6
A の IPv6 版。Quad-A と読む。
別名 → 本名
www.example.com → example.com のようなエイリアス。
メールサーバ指定
そのドメインへのメールを受け取るサーバ。優先順位付き。
自由テキスト
SPF / DKIM / DMARC / ドメイン所有確認に使う。
権威 DNS
そのドメインの本当の答えを持つ DNS サーバの位置。
DHCP ── 自動 住所配布
DHCP(Dynamic Host Configuration Protocol)は、ネットワークに繋いだ機器に IP アドレス・サブネットマスク・ゲートウェイ・DNS を自動で割り当てるサーバ。家庭のルーターはほぼ DHCP サーバを兼ねている。
仕組みは DISCOVER → OFFER → REQUEST → ACK の 4 ステップ。頭文字を取って DORA と呼ばれる。Wi-Fi に繋いだ瞬間にこの 4 通信が裏で走り、晴れて住所が渡される。
SMTP / IMAP / POP3 ── メール 三兄弟
| プロトコル | 役割 | ポート |
|---|---|---|
SMTP | 送信専用 | 25 / 587(暗号化) |
IMAP | 受信(サーバに残す。マルチデバイス向け) | 143 / 993 |
POP3 | 受信(端末にダウンロードして消す) | 110 / 995 |
SSH ── 暗号化リモートシェル
SSH(Secure Shell)は遠隔サーバを操作するための暗号化通信。ポート 22。
認証方法は パスワード認証(弱い) と 公開鍵認証(強い)。本番サーバはパスワード認証を無効にして、公開鍵のみ受け付けるのが定番。
# 公開鍵生成
$ ssh-keygen -t ed25519 -C "you@example.com"
# サーバに公開鍵を送る
$ ssh-copy-id user@server.example.com
# 接続
$ ssh user@server.example.comFTP / SFTP ── ファイル転送
FTP(File Transfer Protocol)は古典的なファイル転送(平文・非推奨)。SFTP は SSH 上で動く安全版。今は SFTP を使うのが基本。SFTP は名前は「FTP の暗号化版」に見えるが、実装はまったく別物(SSH の上で動くサブシステム)。
WebSocket ── 双方向 リアルタイム
HTTP は「クライアントからお願い → サーバが答えて切る」の一方通行。WebSocket は接続を張りっぱなしにして双方向通信できる。チャット・通知・マルチプレイヤーゲームで必須。
最初は普通の HTTP リクエストで Upgrade: websocket ヘッダを送って WebSocket に昇格する仕組み。だから HTTPS の :443 でそのまま動く(プロキシも通り抜ける)。
gRPC ── 高速 RPC
Google 製の RPC(Remote Procedure Call)フレームワーク。HTTP/2 + Protocol Buffers(バイナリ)で、JSON より 3〜10 倍速い。マイクロサービス間通信で人気。
欠点:ブラウザから直接呼べない(gRPC-Web で擬似対応)、デバッグしにくい(バイナリで人間が読めない)。サーバ間通信なら最強、ブラウザ向けは依然として JSON over HTTP の方が楽。
MQTT ── IoT 専用
MQTT(Message Queuing Telemetry Transport)は IoT 機器・低電力・断続接続向けの軽量プロトコル。Publish / Subscribe モデル。
例:温度センサ → MQTT ブローカー → スマホアプリで受信。電池駆動の機器が 1 日に数回だけ報告するような使い方に強い。
ICMP ── エラーと診断
ICMP(Internet Control Message Protocol)はネットワーク機器同士の状況報告。ping はこれを使う。サーバが落ちてる時に「到達不能」を返してくれるのも ICMP。
最近のクラウドはセキュリティ上 ICMP をデフォルトでブロックしていることが多い。「ping が返ってこない=サーバが落ちている」とは限らないので注意。
ARP ── IP → MAC 変換
同じネットワーク内で「IP 192.168.1.5 の MAC アドレスは?」と聞く仕組み。データリンク層(L2)の世界。IP は論理アドレス、MAC は物理アドレス。実際にケーブルにパケットを流すには MAC が必要。
NTP ── 時刻同期
世界中のサーバの時計を合わせるプロトコル。ログの順序整合・TLS 証明書の有効期限判定・分散システムの整合性 ── すべてが NTP の正確さに依存している。
「時計が 1 秒ずれただけで、本番が動かなくなった」
── は古典的な障害談義。NTP は地味だが、生命線。 — Operations Tale
TLS / SSL ── 暗号化の基盤
TLS(Transport Layer Security)は SSL の後継。HTTPS / SMTPS / IMAPS など、ほぼ全ての暗号化通信の下で動いている。詳しくは 第 3 章 セキュリティ編。
QUIC ── HTTP/3 の 中身
Google 発の新しいトランスポート層。UDP の上に独自の信頼性・暗号化・多重化を実装。モバイル網のパケロスに強い。Wi-Fi → モバイル回線への切り替わりでも接続を維持する。
BGP ── 世界を繋ぐ 経路情報
インターネット全体を繋ぐ経路情報プロトコル。AS(Autonomous System)番号を持つ ISP・大企業同士が「うちはこの IP 範囲を持ってます」を交換する。