メインコンテンツへ移動
SEMentor
ネットワーク 約12分 ネットワーク curriculum

HTTP と HTTPS の仕組み

Web の基盤プロトコルである HTTP/HTTPS の動作原理とセキュリティを学ぶ

HTTP とは

HTTP(HyperText Transfer Protocol)は、Web サーバとクライアント(ブラウザ)が通信するためのプロトコルです。テキストベースでシンプルな構造を持ちます。

HTTP リクエスト・レスポンスの構造

リクエスト

GET /articles HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0
  • メソッド:GET, POST, PUT, DELETE, PATCH など
  • パス:リクエストするリソースの URI
  • ヘッダ:付加情報(Content-Type, Authorization など)
  • ボディ:POST/PUT 時のデータ(JSON など)

レスポンス

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 1234

<html>...</html>

HTTP ステータスコード

コード意味
2xx成功200 OK, 201 Created
3xxリダイレクト301 Moved Permanently, 302 Found
4xxクライアントエラー400 Bad Request, 401 Unauthorized, 404 Not Found
5xxサーバエラー500 Internal Server Error, 503 Service Unavailable

HTTPS とは

HTTPS(HTTP Secure)は HTTP を TLS(Transport Layer Security)で暗号化したものです。

TLS の役割

  1. 暗号化:通信内容を第三者が読めないようにする
  2. 認証:接続先サーバが正規のものかを確認(デジタル証明書)
  3. 完全性:データが改ざんされていないことを保証

TLS ハンドシェイクの流れ

クライアント                     サーバ
  |-- ClientHello ------------> |  対応する暗号スイートを提示
  |<-- ServerHello + 証明書 --- |  使用する暗号スイートを決定
  |-- 鍵交換 ----------------> |
  |<---------- 暗号通信開始 --- |

HTTP/2 と HTTP/3

特徴HTTP/1.1HTTP/2HTTP/3
多重化なしありあり
ヘッダ圧縮なしHPACKQPACK
トランスポートTCPTCPQUIC(UDP ベース)
サーバプッシュなしあり廃止予定

初心者向け:リクエストを読む順番

HTTPを読むときは、次の順番で見ると迷いにくくなります。

  1. メソッド: 取得なのか、作成なのか、更新なのか
  2. URLパス: どのリソースに対する操作なのか
  3. ステータスコード: 成功したのか、クライアント側の問題か、サーバ側の問題か
  4. ヘッダ: 認証、Content-Type、キャッシュなどの付加情報
  5. ボディ: 実際に送受信されたデータ

開発者ツールのNetworkタブで1リクエストを開き、この順番で確認するだけでも、Webアプリの動きはかなり読みやすくなります。

中級者向け:API設計と運用で見るHTTP

HTTPは通信形式であると同時に、API設計の共通言語でもあります。

観点実務での判断
メソッドGETで更新しない、POSTPUT/PATCHの役割を分ける
ステータスコード400, 401, 403, 404, 409 を使い分ける
キャッシュ更新頻度とユーザー影響を考えて Cache-Control を設定する
認証CookieやAuthorizationヘッダの扱いを決める
セキュリティHTTPS前提、HSTS、SameSite Cookieなどを検討する

中級者は「通信できたか」だけでなく、クライアントが失敗時にどう回復できるか、ログで原因を追えるかまで含めてHTTPを設計します。

まとめ

  • HTTP はリクエスト・レスポンスの構造を持つシンプルなプロトコル
  • HTTPS は TLS による暗号化・認証・完全性保証を追加したもの
  • HTTP/2 では多重化によりパフォーマンスが向上した
  • 実務では、メソッド・ステータスコード・ヘッダ設計がAPIの使いやすさを左右する

Beginner to Intermediate

HTTP と HTTPS の仕組みを実務につなげる学び方

ネットワークは、言葉を知るだけでなく「どこで使う知識か」まで結びつけると定着します。初学者は全体像をつかみ、中級者は切り分けや設計判断に使える形へ伸ばしていきましょう。

初心者の到達点

  • ブラウザからサーバまで、DNS解決・TCP接続・TLS・HTTPリクエストの順番を追う。
  • IPアドレス、ポート、プロトコルの役割を混同せずに分けて説明する。

中級者の観点

  • 通信エラーを、名前解決・接続・証明書・アプリケーション応答のどの層で起きたかに分解する。
  • タイムアウト、リトライ、キャッシュ、CORSなど、Webアプリで起きやすい症状と関連づける。

手を動かす練習

  • 開発者ツールのNetworkタブで、1つの画面表示に必要なリクエストを確認する。
  • `curl -I` や `dig` の結果から、次に調べるべき層を考える。

このレッスンは未完了です。

次のレッスンへ