RFC 9110 - HTTP Semantics (Semantica HTTP)
- Stato: Internet Standard
- Pubblicato: June 2022
- Stream: IETF
- Aggiorna: RFC3864
- Sostituisce: RFC2818, RFC7230, RFC7231, RFC7232, RFC7233, RFC7235, RFC7538, RFC7615, RFC7694
- Errata: Nessun errata
Abstract (Sommario)
L'Hypertext Transfer Protocol (HTTP) è un protocollo a livello applicazione senza stato per sistemi di informazione ipertestuale distribuiti e collaborativi. Questo documento definisce la semantica di HTTP: architettura, terminologia, metodi di richiesta, codici di stato di risposta, campi header e concetti fondamentali correlati.
Importanza: Questa è la più recente specifica HTTP di base (2022), applicabile a tutte le versioni inclusi HTTP/1.1, HTTP/2 e HTTP/3.
Contents (Contenuti)
Sezioni principali
-
1. Introduction (Introduzione)
- 1.1. Purpose (Scopo)
- 1.2. History and Evolution (Storia ed evoluzione)
- 1.3. Core Semantics (Semantica di base)
- 1.4. Specifications Obsoleted by This Document (Specifiche rese obsolete da questo documento)
-
- 2.1. Syntax Notation (Notazione sintattica)
- 2.2. Requirements Notation (Notazione dei requisiti)
- 2.3. Length Requirements (Requisiti di lunghezza)
- 2.4. Error Handling (Gestione degli errori)
- 2.5. Protocol Version (Versione del protocollo)
-
3. Terminology and Core Concepts (Terminologia e concetti fondamentali)
- 3.1. Resources (Risorse)
- 3.2. Representations (Rappresentazioni)
- 3.3. Connections, Clients, and Servers (Connessioni, client e server)
- 3.4. Messages (Messaggi)
- 3.5. User Agents (User agent)
- 3.6. Origin Server (Server di origine)
- 3.7. Intermediaries (Intermediari)
- 3.8. Caches
- 3.9. Example Message Exchange (Esempio di scambio di messaggi)
-
4. Identifiers in HTTP (Identificatori in HTTP)
- 4.1. URI References (Riferimenti URI)
- 4.2. HTTP-Related URI Schemes (Schemi URI relativi a HTTP)
- 4.3. Authoritative Access (Accesso autorevole)
-
- 5.1. Field Names (Nomi dei campi)
- 5.2. Field Lines and Combined Field Value (Righe di campo e valore di campo combinato)
- 5.3. Field Order (Ordine dei campi)
- 5.4. Field Limits (Limiti dei campi)
- 5.5. Field Values (Valori dei campi)
- 5.6. Common Rules for Defining Field Values (Regole comuni per definire i valori dei campi)
-
6. Message Abstraction (Astrazione del messaggio)
- 6.1. Framing and Completeness (Frammentazione e completezza)
- 6.2. Control Data (Dati di controllo)
- 6.3. Header Fields (Campi header)
- 6.4. Content (Contenuto)
- 6.5. Trailer Fields (Campi trailer)
- 6.6. Message Metadata (Metadati del messaggio)
-
7. Routing HTTP Messages (Routing dei messaggi HTTP)
- 7.1. Determining the Target Resource (Determinazione della risorsa di destinazione)
- 7.2. Host and :authority
- 7.3. Routing Inbound Requests (Routing delle richieste in entrata)
- 7.4. Rejecting Misdirected Requests (Rifiuto delle richieste mal indirizzate)
- 7.5. Response Correlation (Correlazione delle risposte)
- 7.6. Message Forwarding (Inoltro dei messaggi)
- 7.7. Message Transformations (Trasformazioni dei messaggi)
- 7.8. Upgrade (Aggiornamento)
-
8. Representation Data and Metadata (Dati e metadati di rappresentazione)
- 8.1. Representation Data (Dati di rappresentazione)
- 8.2. Representation Metadata (Metadati di rappresentazione)
- 8.3. Content-Type
- 8.4. Content-Encoding
- 8.5. Content-Language
- 8.6. Content-Length
- 8.7. Content-Location
- 8.8. Validator Fields (Campi validatori)
-
- 9.1. Overview (Panoramica)
- 9.2. Common Method Properties (Proprietà comuni dei metodi)
- 9.3. Method Definitions (Definizioni dei metodi)
-
10. Message Context (Contesto del messaggio)
- 10.1. Request Context Fields (Campi di contesto della richiesta)
- 10.2. Response Context Fields (Campi di contesto della risposta)
-
11. HTTP Authentication (Autenticazione HTTP)
- 11.1. Authentication Scheme (Schema di autenticazione)
- 11.2. Authentication Parameters (Parametri di autenticazione)
- 11.3. Challenge and Response (Sfida e risposta)
- 11.4. Credentials (Credenziali)
- 11.5. Establishing a Protection Space (Realm) (Stabilire uno spazio di protezione)
- 11.6. Authenticating Users to Origin Servers (Autenticazione degli utenti ai server di origine)
- 11.7. Authenticating Clients to Proxies (Autenticazione dei client ai proxy)
-
12. Content Negotiation (Negoziazione del contenuto)
- 12.1. Proactive Negotiation (Negoziazione proattiva)
- 12.2. Reactive Negotiation (Negoziazione reattiva)
- 12.3. Request Content Negotiation (Negoziazione del contenuto della richiesta)
- 12.4. Content Negotiation Field Features (Caratteristiche dei campi di negoziazione del contenuto)
- 12.5. Content Negotiation Fields (Campi di negoziazione del contenuto)
-
13. Conditional Requests (Richieste condizionali)
- 13.1. Preconditions (Precondizioni)
- 13.2. Evaluation of Preconditions (Valutazione delle precondizioni)
-
14. Range Requests (Richieste di intervallo)
- 14.1. Range Units (Unità di intervallo)
- 14.2. Range
- 14.3. Accept-Ranges
- 14.4. Content-Range
- 14.5. Partial PUT
- 14.6. Media Type multipart/byteranges
-
15. Status Codes (Codici di stato)
- 15.1. Overview of Status Codes (Panoramica dei codici di stato)
- 15.2. Informational 1xx (Informativo)
- 15.3. Successful 2xx (Successo)
- 15.4. Redirection 3xx (Reindirizzamento)
- 15.5. Client Error 4xx (Errore client)
- 15.6. Server Error 5xx (Errore server)
-
16. Extending HTTP (Estendere HTTP)
- 16.1. Method Extensibility (Estensibilità dei metodi)
- 16.2. Status Code Extensibility (Estensibilità dei codici di stato)
- 16.3. Field Extensibility (Estensibilità dei campi)
- 16.4. Authentication Scheme Extensibility (Estensibilità degli schemi di autenticazione)
- 16.5. Range Unit Extensibility (Estensibilità delle unità di intervallo)
- 16.6. Content Coding Extensibility (Estensibilità della codifica del contenuto)
- 16.7. Upgrade Token Registry (Registro dei token di aggiornamento)
-
17. Security Considerations (Considerazioni sulla sicurezza)
- 17.1. Establishing Authority (Stabilire l'autorità)
- 17.2. Risks of Intermediaries (Rischi degli intermediari)
- 17.3-17.16. [Vari argomenti di sicurezza]
-
18. IANA Considerations (Considerazioni IANA)
- 18.1. URI Scheme Registration (Registrazione dello schema URI)
- 18.2. Method Registration (Registrazione del metodo)
- 18.3-18.10. [Altri registri]
-
- 19.1. Normative References (Riferimenti normativi)
- 19.2. Informative References (Riferimenti informativi)
Appendici (Appendices)
- Appendix A. Collected ABNF (ABNF raccolti)
- Appendix B. Changes from Previous RFCs (Modifiche rispetto ai RFC precedenti)
Risorse correlate
- Testo ufficiale: RFC 9110
- Pagina ufficiale: RFC 9110 DataTracker
- Errata: RFC Editor Errata
Comprendere RFC 9110
Riorganizzazione importante della specifica HTTP
RFC 9110 è l'ultima specifica HTTP di base pubblicata nel 2022, che consolida e sostituisce la precedente serie RFC 7230-7235:
Vecchie specifiche (2014):
- RFC 7230 - Message Syntax and Routing (Sintassi e routing dei messaggi)
- RFC 7231 - Semantics and Content (Semantica e contenuto)
- RFC 7232 - Conditional Requests (Richieste condizionali)
- RFC 7233 - Range Requests (Richieste di intervallo)
- RFC 7234 - Caching (Memorizzazione nella cache)
- RFC 7235 - Authentication (Autenticazione)
Nuove specifiche (2022):
- RFC 9110 - Semantics (questo RFC) ← Specifica di base unificata
- RFC 9111 - Caching (Memorizzazione nella cache)
- RFC 9112 - HTTP/1.1
- RFC 9113 - HTTP/2
- RFC 9114 - HTTP/3
Importanza
RFC 9110 definisce la semantica condivisa tra tutte le versioni HTTP, indipendentemente dal fatto che venga utilizzato HTTP/1.1, HTTP/2 o HTTP/3. Questo rende il protocollo HTTP più unificato e più facile da comprendere.
Nota: Questo documento è in corso di traduzione e il contenuto dei capitoli verrà completato progressivamente.