この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
更新日時:2026-06-10 17:35:41
タイトル: HTTP
HTTPの記事です。HyperText Transfer Protocolの略で、Webブラウザとサーバーの間でHTMLやリソースをやり取りするための基本プロトコルです。WebサイトのURLが http:// または https:// で始まるのはこのため。
HTTPの基本
| 項目 | 内容 |
| 役割 | Webリソース(HTML / 画像 / JSON 等)の送受信 |
| 標準 | RFC 9110(HTTP semantics)、9112(HTTP/1.1)、9113(HTTP/2)、9114(HTTP/3) |
| プロトコル層 | アプリケーション層 |
| 標準ポート | 80(HTTP)、443(HTTPS) |
| テキスト/バイナリ | HTTP/1.x はテキスト、HTTP/2/3 はバイナリフレーム |
HTTP バージョン
| バージョン | 特徴 |
| HTTP/0.9 | 1991年。GETのみ。HTMLのみ返す |
| HTTP/1.0 | 1996年。ステータスコード・ヘッダ導入 |
| HTTP/1.1 | 1997年。Keep-Alive、Host必須。長く主流 |
| HTTP/2 | 2015年。バイナリ・多重化・ヘッダ圧縮(HPACK) |
| HTTP/3 | 2022年。UDPベース(QUIC)。低レイテンシ |
主要なHTTPメソッド
| メソッド | 用途 | ボディ | べき等性 |
| GET | リソース取得 | なし | ○ |
| POST | 新規作成・処理実行 | あり | × |
| PUT | 更新(全置換) | あり | ○ |
| PATCH | 更新(部分) | あり | × |
| DELETE | 削除 | 任意 | ○ |
| HEAD | ヘッダのみ取得 | なし | ○ |
| OPTIONS | サポートメソッド確認(CORSプリフライト) | なし | ○ |
HTTPリクエストの構造
|
GET /users/1 HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer xxx
User-Agent: curl/7.84
(ボディ:GETでは通常なし)
|
HTTPレスポンスの構造
|
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 27
Date: Mon, 01 Jan 2024 00:00:00 GMT
{"id":1,"name":"Taro"}
|
主要なステータスコード
| カテゴリ | 例 | 意味 |
| 1xx 情報 | 100 Continue | 処理続行可 |
| 2xx 成功 | 200 OK, 201 Created, 204 No Content | 成功 |
| 3xx リダイレクト | 301 / 302 / 304 | 転送・キャッシュ有効 |
| 4xx クライアントエラー | 400 / 401 / 403 / 404 / 429 | 不正リクエスト・権限・存在しない・レート制限 |
| 5xx サーバーエラー | 500 / 502 / 503 / 504 | 内部エラー、上流エラー、メンテ、タイムアウト |
HTTPSとの違い
- HTTPS = HTTP over TLS。通信が暗号化され、改ざん検知・サーバー認証が行われる
- ブラウザは平文HTTPサイトに「保護されていない通信」警告を表示
- SEO上もHTTPSが優遇される
- Let's Encrypt で無料証明書を発行できるため、本番は基本HTTPS
主要ヘッダ
| ヘッダ | 方向 | 用途 |
Host | リクエスト | 対象ホスト名(HTTP/1.1必須) |
User-Agent | リクエスト | クライアント識別 |
Authorization | リクエスト | 認証情報 |
Cookie | リクエスト | Cookie送信 |
Content-Type | 両方 | ボディの種別 |
Accept | リクエスト | 望む応答形式 |
Set-Cookie | レスポンス | Cookie発行 |
Cache-Control | レスポンス | キャッシュ制御 |
Location | レスポンス | リダイレクト先 |
Strict-Transport-Security | レスポンス | HTTPS強制 |
関連