RFC 9110 - HTTP Semantics (HTTPセマンティクス)
- ステータス: Internet Standard
- 発行日: June 2022
- ストリーム: IETF
- 更新: RFC3864
- 廃止: RFC2818, RFC7230, RFC7231, RFC7232, RFC7233, RFC7235, RFC7538, RFC7615, RFC7694
- エラッタ: エラッタなし
概要 (Abstract)
Hypertext Transfer Protocol (HTTP) は、分散型、協調型、ハイパーテキスト情報システムのためのステートレスなアプリケーションレベルプロトコルです。このドキュメントは、HTTPのセマンティクスを定義します:アーキテクチャ、用語、リクエストメソッド、レスポンスステータスコード、ヘッダーフィールド、および関連するコアコンセプト。
重要性: これはHTTP/1.1、HTTP/2、HTTP/3を含むすべてのバージョンに適用される最新のコアHTTP仕様(2022年)です。
目次 (Contents)
主要セクション
-
- 1.1. Purpose (目的)
- 1.2. History and Evolution (歴史と進化)
- 1.3. Core Semantics (コアセマンティクス)
- 1.4. Specifications Obsoleted by This Document (このドキュメントによって廃止された仕様)
-
- 2.1. Syntax Notation (構文記法)
- 2.2. Requirements Notation (要件記法)
- 2.3. Length Requirements (長さ要件)
- 2.4. Error Handling (エラー処理)
- 2.5. Protocol Version (プロトコルバージョン)
-
3. Terminology and Core Concepts (用語とコアコンセプト)
- 3.1. Resources (リソース)
- 3.2. Representations (表現)
- 3.3. Connections, Clients, and Servers (接続、クライアント、サーバー)
- 3.4. Messages (メッセージ)
- 3.5. User Agents (ユーザーエージェント)
- 3.6. Origin Server (オリジンサーバー)
- 3.7. Intermediaries (仲介者)
- 3.8. Caches (キャッシュ)
- 3.9. Example Message Exchange (メッセージ交換の例)
-
4. Identifiers in HTTP (HTTPにおける識別子)
- 4.1. URI References (URI参照)
- 4.2. HTTP-Related URI Schemes (HTTP関連URIスキーム)
- 4.3. Authoritative Access (権威アクセス)
-
- 5.1. Field Names (フィールド名)
- 5.2. Field Lines and Combined Field Value (フィールド行と結合フィールド値)
- 5.3. Field Order (フィールド順序)
- 5.4. Field Limits (フィールド制限)
- 5.5. Field Values (フィールド値)
- 5.6. Common Rules for Defining Field Values (フィールド値定義の共通規則)
-
6. Message Abstraction (メッセージ抽象化)
- 6.1. Framing and Completeness (フレーミングと完全性)
- 6.2. Control Data (制御データ)
- 6.3. Header Fields (ヘッダーフィールド)
- 6.4. Content (コンテンツ)
- 6.5. Trailer Fields (トレーラーフィールド)
- 6.6. Message Metadata (メッセージメタデータ)
-
7. Routing HTTP Messages (HTTPメッセージのルーティング)
- 7.1. Determining the Target Resource (ターゲットリソースの決定)
- 7.2. Host and :authority (HostとAuthority)
- 7.3. Routing Inbound Requests (インバウンドリクエストのルーティング)
- 7.4. Rejecting Misdirected Requests (誤ったリクエストの拒否)
- 7.5. Response Correlation (レスポンスの関連付け)
- 7.6. Message Forwarding (メッセージ転送)
- 7.7. Message Transformations (メッセージ変換)
- 7.8. Upgrade (アップグレード)
-
8. Representation Data and Metadata (表現データとメタデータ)
- 8.1. Representation Data (表現データ)
- 8.2. Representation Metadata (表現メタデータ)
- 8.3. Content-Type
- 8.4. Content-Encoding
- 8.5. Content-Language
- 8.6. Content-Length
- 8.7. Content-Location
- 8.8. Validator Fields (バリデーターフィールド)
-
- 9.1. Overview (概要)
- 9.2. Common Method Properties (共通メソッドプロパティ)
- 9.3. Method Definitions (メソッド定義)
-
10. Message Context (メッセージコンテキスト)
- 10.1. Request Context Fields (リクエストコンテキストフィールド)
- 10.2. Response Context Fields (レスポンスコンテキストフィールド)
-
11. HTTP Authentication (HTTP認証)
- 11.1. Authentication Scheme (認証スキーム)
- 11.2. Authentication Parameters (認証パラメータ)
- 11.3. Challenge and Response (チャレンジとレスポンス)
- 11.4. Credentials (資格情報)
- 11.5. Establishing a Protection Space (Realm) (保護空間の確立)
- 11.6. Authenticating Users to Origin Servers (オリジンサーバーへのユーザー認証)
- 11.7. Authenticating Clients to Proxies (プロキシへのクライアント認証)
-
12. Content Negotiation (コンテンツネゴシエーション)
- 12.1. Proactive Negotiation (プロアクティブネゴシエーション)
- 12.2. Reactive Negotiation (リアクティブネゴシエーション)
- 12.3. Request Content Negotiation (リクエストコンテンツネゴシエーション)
- 12.4. Content Negotiation Field Features (コンテンツネゴシエーションフィールド機能)
- 12.5. Content Negotiation Fields (コンテンツネゴシエーションフィールド)
-
13. Conditional Requests (条件付きリクエスト)
- 13.1. Preconditions (前提条件)
- 13.2. Evaluation of Preconditions (前提条件の評価)
-
- 14.1. Range Units (範囲単位)
- 14.2. Range
- 14.3. Accept-Ranges
- 14.4. Content-Range
- 14.5. Partial PUT
- 14.6. Media Type multipart/byteranges
-
- 15.1. Overview of Status Codes (ステータスコード概要)
- 15.2. Informational 1xx (情報レスポンス)
- 15.3. Successful 2xx (成功)
- 15.4. Redirection 3xx (リダイレクション)
- 15.5. Client Error 4xx (クライアントエラー)
- 15.6. Server Error 5xx (サーバーエラー)
-
- 16.1. Method Extensibility (メソッド拡張性)
- 16.2. Status Code Extensibility (ステータスコード拡張性)
- 16.3. Field Extensibility (フィールド拡張性)
- 16.4. Authentication Scheme Extensibility (認証スキーム拡張性)
- 16.5. Range Unit Extensibility (範囲単位拡張性)
- 16.6. Content Coding Extensibility (コンテンツコーディング拡張性)
- 16.7. Upgrade Token Registry (アップグレードトークンレジストリ)
-
17. Security Considerations (セキュリティに関する考慮事項)
- 17.1. Establishing Authority (権限の確立)
- 17.2. Risks of Intermediaries (仲介者のリスク)
- 17.3-17.16. [各種セキュリティトピック]
-
18. IANA Considerations (IANAに関する考慮事項)
- 18.1. URI Scheme Registration (URIスキーム登録)
- 18.2. Method Registration (メソッド登録)
- 18.3-18.10. [その他のレジストリ]
-
- 19.1. Normative References (規範的参考文献)
- 19.2. Informative References (参考情報)
附録 (Appendices)
関連リソース
- 公式テキスト: RFC 9110
- 公式ページ: RFC 9110 DataTracker
- 正誤表: RFC Editor Errata
RFC 9110を理解する
HTTP仕様の大規模な再編成
RFC 9110は2022年に発行された最新のHTTPコア仕様で、以前のRFC 7230-7235シリーズを統合し、置き換えています:
旧仕様 (2014年):
- RFC 7230 - Message Syntax and Routing (メッセージ構文とルーティング)
- RFC 7231 - Semantics and Content (セマンティクスとコンテンツ)
- RFC 7232 - Conditional Requests (条件付きリクエスト)
- RFC 7233 - Range Requests (範囲リクエスト)
- RFC 7234 - Caching (キャッシング)
- RFC 7235 - Authentication (認証)
新仕様 (2022年):
- RFC 9110 - Semantics (このRFC) ← コア統合仕様
- RFC 9111 - Caching (キャッシング)
- RFC 9112 - HTTP/1.1
- RFC 9113 - HTTP/2
- RFC 9114 - HTTP/3
重要性
RFC 9110は、HTTP/1.1、HTTP/2、HTTP/3のいずれが使用されているかに関係なく、すべてのHTTPバージョンで共有されるセマンティクスを定義しています。これにより、HTTPプロトコルがより統一され、理解しやすくなっています。
注意: このドキュメントは翻訳中であり、章の内容は順次完成されます。