Passa al contenuto principale

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. Conformance (Conformità)

    • 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. Fields (Campi)

    • 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. Methods (Metodi)

    • 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. References (Riferimenti)

    • 19.1. Normative References (Riferimenti normativi)
    • 19.2. Informative References (Riferimenti informativi)

Appendici (Appendices)


Risorse correlate


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.