⑨ネットワーク基礎

HTTP/HTTPSの仕組みを徹底解説【リクエスト・レスポンス・TLS暗号化の基礎】

⑨ネットワーク基礎
記事内に広告が含まれています。

HTTP/HTTPSはWebの根幹をなすプロトコルです。ブラウザとサーバーがどのようにデータをやり取りするか、そしてHTTPSでの暗号化(TLS)の仕組みを理解することはWeb開発・サーバー管理の必須知識です。

HTTPとは

HTTP(HyperText Transfer Protocol)はWebブラウザとWebサーバーがデータを送受信するためのプロトコルです。クライアント(ブラウザ)がリクエストを送り、サーバーがレスポンスを返すという「リクエスト・レスポンスモデル」で動作します。

HTTPリクエストの構造

GET /index.html HTTP/1.1
Host: hobbyshift.com
User-Agent: Mozilla/5.0
Accept: text/html
Accept-Language: ja
Connection: keep-alive
要素説明
メソッド操作の種類GET, POST, PUT, DELETE
パスリソースの場所/index.html, /api/users
HTTPバージョンプロトコルのバージョンHTTP/1.1, HTTP/2
ヘッダーメタ情報Host, Content-Type, Authorization
ボディ送信データ(POSTなど)JSONデータ, フォームデータ

HTTPレスポンスとステータスコード

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

HTTPSとTLSの仕組み

HTTPS(HTTP over TLS/SSL)はHTTP通信をTLS(Transport Layer Security)で暗号化したものです。URLがhttps://で始まり、ブラウザに鍵アイコンが表示されます。

TLSハンドシェイクの流れ:

  1. クライアントが対応する暗号化方式の一覧をサーバーに送る
  2. サーバーが暗号化方式を選択してSSL証明書を送る
  3. クライアントが証明書を検証(認証局が発行した正規のものか確認)
  4. 共通鍵を安全に交換(公開鍵暗号方式を使用)
  5. 以降の通信を共通鍵で暗号化

HTTP/1.1・HTTP/2・HTTP/3の違い

バージョン特徴
HTTP/1.11リクエストずつ順番に処理。Keep-Aliveで接続を再利用
HTTP/21つのTCP接続で複数リクエストを並列処理(多重化)。ヘッダー圧縮
HTTP/3TCP→QUICプロトコルに変更。より高速・低遅延

curlでHTTPを体験する

# レスポンスヘッダーを表示
curl -I https://hobbyshift.com

# レスポンスボディを表示
curl https://hobbyshift.com

# POSTリクエスト
curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Taro"}'

# HTTPバージョンを確認
curl -I --http2 https://hobbyshift.com | grep HTTP

まとめ

  • HTTPはリクエスト・レスポンスモデルで動作するWebの基本プロトコル
  • ステータスコードで処理結果を表す(2xx=成功、4xx=クライアントエラー、5xx=サーバーエラー)
  • HTTPSはTLSで通信を暗号化したもの。証明書で相手の正当性を確認する
  • HTTP/2では1接続で複数リクエストを並列処理できて高速化されている

コメント

タイトルとURLをコピーしました