はじめに
本資料の目的
本資料は、Webサーバーとクライアント(例:ブラウザ)間で使われる主要な通信プロトコルを分かりやすく解説することを目的としています。HTTPやHTTPSを中心に、TCP/IPの階層構造、ファイル転送、メール送受信、リモート操作、リアルタイム通信、DNS、企業間通信、セキュリティの基本を丁寧に説明します。
想定読者
- Web開発者や運用担当者の方
- ネットワークの基礎を学びたい学生や技術者
- 非専門の管理者や関係者で全体像を把握したい方
読み方のガイド
各章は実際のやり取り(例えば、ブラウザがサイトを開くときの流れ)を例にして説明します。用語は必要最小限にとどめ、具体例で補足しますので、順番に読むと理解が深まります。実務で試す場合は、該当章の手順や図を参考にしてください。
前提知識
インターネットに接続したことがあり、ブラウザやメールを使った経験があれば十分です。専門的な設定は章ごとに丁寧に扱います。
Webサーバー通信の基本プロトコル
概要
HTTP(HyperText Transfer Protocol)は、ブラウザとサーバーがやり取りする約束事です。WebページのHTMLや画像、動画の指示を送受信し、Webの基本を成します。アプリケーション層に位置し、下位ではTCPやTLS(HTTPS)を使って送信されます。
リクエストとレスポンスの流れ
クライアント(例:ブラウザ)がURLに対してリクエストを送ります。サーバーはリクエストを受け取り、レスポンス(本文+ステータス)を返します。各やり取りは独立して扱われます。
代表的なメソッド
- GET:ページや画像を取得します(再読み込みに向く)。
- POST:フォーム送信やデータ登録で使います(送信内容を含む)。
ステータスコード
- 200:成功
- 404:見つからない
- 500:サーバー内部エラー
これらで処理結果を簡潔に伝えます。
ヘッダーとクッキー
ヘッダーは通信の付帯情報(形式やキャッシュ指示など)です。クッキーは状態を管理するための仕組みで、ログイン情報などを保持します。
接続とセキュリティ
HTTPは通常TCPを使い、暗号化したい場合はTLSで保護してHTTPSとします。HTTPSは送信内容を第三者から守ります。
特徴と工夫
HTTPは基本的にステートレスです。そのためログイン状態はクッキーやセッションで補います。パフォーマンス改善にはキャッシュや圧縮、HTTP/2の多重化が使われます。
実例
ブラウザでURLを開く→GETでHTML取得→HTMLが画像のURLを要求→さらにリクエストして表示。フォーム送信はPOSTでサーバーにデータを渡します。
セキュアな通信プロトコル
概要
HTTPSはHTTPに暗号化を加えた仕組みです。日常の例で言えば、手紙を封筒に入れて送るようにデータを守ります。これにより盗み見や改ざんを防げます。
TLSの仕組み(簡単に)
通信の初めに双方で「鍵」を安全に決める手順(ハンドシェイク)を行います。公開鍵で相手を確認し、速い共通鍵で実際の通信を暗号化します。公開鍵は誰でも確認でき、共通鍵は会話ごとに作ります。
証明書と検証
証明書はウェブサイトの身分証明書です。認証局(CA)が発行します。ブラウザは証明書の有効性を確認して安全な接続か判断します。
HTTP/2とHTTP/3の違い
HTTP/2は一つの接続で複数のデータを並列に送るので速くなります。HTTP/3はさらに遅延に強い新しい仕組みを使い、特にモバイルや不安定な回線で効果を発揮します。
実務上の注意点
- 常に最新のTLSバージョンを使う。古いものは避ける。
- 証明書を期限切れにしない。
- サイト内でHTTPと混在するコンテンツを避ける(混在コンテンツ)。
- 自動更新できる無料の証明書(例:Let’s Encrypt)を活用すると管理が楽になります。
TCP/IPの階層構造とプロトコル
概要
TCP/IPは複数の層で通信を分けて考える仕組みです。各層が役割を分担することで、異なる機器やソフトが互いにやり取りできます。ここでは各層の役割と代表的なプロトコルをやさしく説明します。
アプリケーション層
ユーザーに近い層で、具体的な通信のルールを定めます。例えば、ウェブを見るときはHTTPやHTTPS、メールの受信にはPOPやIMAP、送信にはSMTPを使います。ブラウザやメールソフトがこの層で動きます。
トランスポート層
データの届け方を決める層です。TCPはデータを順番どおり確実に届ける仕組みで、HTTPは通常TCPを使います。UDPは高速で順序や再送を保証しないため、動画配信やオンラインゲームで使います。
インターネット層
パケットを宛先まで運ぶ役割です。IPが住所のように振る舞い、経路を選んでパケットを送ります。IPv4とIPv6があり、機器識別や分割の仕組みを持ちます。
ネットワークインターフェース層
実際の物理的な送受信を担当します。EthernetやWi‑Fiが代表例で、MACアドレスを使って同じネットワーク内でやり取りします。
データの流れ(例)
ブラウザがURLを入力すると、HTTPの要求はTCPで分割され、IPで宛先を指定し、EthernetやWi‑Fiで送られます。受け側は逆順で復元して表示します。
ファイル転送関連プロトコル
FTPの基本
FTP(File Transfer Protocol)はファイルの送受信に広く使われます。サーバーへアップロードしたり、サーバーからダウンロードしたりする用途に向いています。制御用とデータ用の接続を別に使う点が特徴で、ネットワーク設定によっては“アクティブ/パッシブ”の切り替えが必要になります。
FTPの課題
FTPは通信を暗号化しません。ユーザー名やパスワード、ファイルの中身が平文で流れるため安全性に欠けます。ファイアウォールやNAT環境では接続が難しくなる場合があります。
安全な代替手段
- SFTP:SSHを利用して一つの暗号化された接続で通信します。ファイアウォール越しでも扱いやすく、鍵認証を使えます。例: sftp user@example.com
- FTPS:FTPにSSL/TLSを組み合わせた方式です。既存のFTPサーバーを利用しつつ暗号化できますが、複数ポートの扱いが複雑になります。
- SCP:シンプルにファイルをコピーするためのSSHベースの方法です。短い転送に便利です。
実践ポイント
重要なファイルは暗号化されたプロトコルで転送してください。公開鍵認証や強いパスワードを使い、転送後はハッシュ(チェックサム)で整合性を確認すると安全性が高まります。ログを確認して不審な転送を監視する習慣もおすすめします。
メール関連プロトコル
概要
メールは送信と受信で別の仕組みを使います。代表的なのはSMTP(送信用)とPOP(受信用)です。送信は送信サーバーに届き、受信は受信サーバーから端末へ取り出します。ここでは仕組みと実例、注意点をやさしく説明します。
SMTP(送信用)
SMTPはメールを他のサーバーへ渡すためのルールです。例えると郵便局の配達員です。メールクライアント(例: メールアプリ)はSMTPサーバーへ接続し、相手先のサーバーまでメールを届けます。一般的な送信ポートは587番で、認証(ユーザー名とパスワード)を使います。
POPとIMAP(受信用)
POPはサーバーにあるメールを端末へダウンロードします。設定次第でサーバー上のメールを削除できます。出先で端末を一つだけ使う人に向きます。IMAPはサーバー上でメールを管理し、複数端末で同じ状態を保てます。スマホとPCで同じ受信箱を共有したい場合に便利です。
セキュリティと実用例
通信は暗号化(SSL/TLSやSTARTTLS)で保護します。設定例: 送信SMTPは587番+STARTTLS、受信はPOPなら995番(SSL)、IMAPなら993番(SSL)を使います。必ず認証を有効にし、迷惑メール対策やパスワード管理にも注意してください。
日常での使い方のヒント
- 新しい端末を追加するならIMAPを検討する
- 古いプロバイダや設定で受信できないときはポートや暗号化設定を確認する
- メールが送れない場合はSMTPの認証情報を見直してください
リモート操作とリアルタイム通信
SSH(Secure Shell)
SSHは遠隔のコンピュータに安全に接続するためのプロトコルです。公開鍵暗号方式を使って認証します。代表的な流れは、ローカルで鍵ペア(公開鍵・秘密鍵)を作成し、公開鍵を接続先のサーバーに置きます。接続は「ssh ユーザー名@ホスト名」で行い、秘密鍵で本人確認します。例:ssh-keygenで鍵を作り、ssh-copy-idで公開鍵を送ります。
運用のコツとして、パスワード認証を無効にし公開鍵のみ許可する、秘密鍵にパスフレーズを付ける、定期的に鍵を更新することをおすすめします。
WebSocket(双方向リアルタイム通信)
WebSocketはブラウザとサーバーの間で常時接続を保ち、双方が自由にデータを送受信できます。チャットや株価更新、ゲームの状態同期などに向きます。HTTPと違い、サーバー側からも能動的にデータを送れます。
簡単な例:
– クライアント(ブラウザ): new WebSocket(‘wss://example.com/socket’)で接続し、onmessageで受信を処理します。
– サーバー: 接続が確立したら接続を保持し、必要時にsendでメッセージを送ります。
WebSocketは低遅延で効率的に双方向通信を実現します。一方、単純な定期取得(ポーリング)では多くの無駄なリクエストが発生します。用途に応じて使い分けると良いです。
DNS(Domain Name System)
DNSとは
DNSはドメイン名をIPアドレスに変換する仕組みです。人は「example.com」のような名前を覚え、機械は数字のIPアドレスで通信します。DNSはその橋渡しをして、正しいサーバーへつなぎます。
仕組み — 名前解決の流れ
ブラウザがURLを受け取ると、まずローカルのリゾルバ(問い合わせ役)に尋ねます。リゾルバはキャッシュを調べ、なければ上位のネームサーバーへ順に問い合わせて最終的なIPアドレスを取得します。例として、ルート → TLD(例:.com)→ 権威あるネームサーバーという流れです。
主なレコード種類
- A / AAAA: ドメインをIPv4/IPv6に対応させます。
- CNAME: 別名を使って実際の名前に転送します。
- MX: メール配送先を示します。
- TXT: 認証情報など自由な文字列を保存します。
キャッシュとTTL
応答にはTTL(有効期間)が付き、リゾルバはその間キャッシュします。短いTTLは即時変更に便利で、長いTTLは負荷軽減に役立ちます。
セキュリティと運用のポイント
DNSはネットワークの要です。DNSキャッシュポイズニングやなりすまし対策としてDNSSECを導入できます。運用では冗長なネームサーバー配置とログ監視を行い、障害や不正を早く検知します。
企業間通信プロトコル
企業間通信は、受発注や請求、決済などを企業同士で安全にやり取りする仕組みです。本章では代表的なプロトコルと導入時のポイントをやさしく説明します。
代表的なプロトコル
- AS2(EDIINT AS2): インターネット経由でファイルを暗号化・署名して送受信します。小売や流通で受発注や請求書交換によく使われます。HTTPを使うため導入が比較的簡単です。
- OFTP2: 自動車業界で広く使われ、大きなファイルや中断後の再開に強いプロトコルです。圧縮や再送制御があり大量データに向きます。
- ebXML MS: メッセージ交換のための枠組みで、メッセージ定義や配送のルールを統一します。複数業種や国際取引で採用例があります。
- JX手順: 日本独自の規格で、国内業務の細かい運用に合わせた互換性を持ちます。
- 全銀協標準通信プロトコル: 企業と銀行間の送金・決済データで使われます。専用の暗号化や接続管理が特徴です。
セキュリティと運用面
暗号化(TLSやPKI)、電子署名、受領確認(ACK)や再送の仕組みが重要です。通信ログや履歴を残し、問題発生時に速やかに突合できる運用を整えます。
導入時のポイント
- 取引先の対応プロトコルを最優先で確認する。
- 鍵管理や証明書更新の運用体制を確立する。
- テスト環境で実運用前に送受信確認を行う。
- ログやSLA(稼働保証)を明確にする。
取引先や業界の要件を整理すると、適切なプロトコル選定と安定運用につながります。












