Sobes.tech
Junior

Da quali componenti è composta una richiesta HTTP?

sobes.tech AI

Risposta dell'AI

La richiesta HTTP è composta dai seguenti componenti:

  1. Linea di richiesta (Request Line): Definisce il tipo di richiesta e la risorsa. Consiste di:

    • Metodo HTTP (HTTP Method): L'azione da eseguire sulla risorsa (ad esempio, GET, POST, PUT, DELETE).
    • Percorso della risorsa (Path): L'URL della risorsa richiesta sul server.
    • Versione HTTP (HTTP Version): La versione del protocollo HTTP usata per la richiesta (ad esempio, HTTP/1.1, HTTP/2.0).
    // Esempio di linea di richiesta
    GET /index.html HTTP/1.1
    
  2. Intestazioni della richiesta (Request Headers): Forniscono informazioni aggiuntive sul client, sulla richiesta o sulla risorsa. I parametri dell'intestazione sono presentati in formato "Nome: Valore". Intestazioni principali:

    • Host: Il nome di dominio del server.
    • User-Agent: Informazioni sul client (browser, OS).
    • Accept: Tipi di media che il client è disposto ad accettare.
    • Content-Type: Tipo di media del contenuto del corpo della richiesta (per metodi PUT, POST).
    • Content-Length: La lunghezza del corpo della richiesta in byte.
    • Authorization: Credenziali per l'autenticazione.
    // Esempi di intestazioni della richiesta
    Host: www.esempio.com
    User-Agent: Mozilla/5.0
    Accept: text/html
    
  3. Linea vuota (Empty Line): Separa le intestazioni della richiesta dal corpo della richiesta. È obbligatoria, anche se il corpo è assente.

  4. Corpo della richiesta (Request Body): Contiene i dati inviati al server, come dati di modulo, JSON per richieste POST/PUT. Non è presente in tutti i metodi (ad esempio, assente per GET).

    // Esempio di corpo della richiesta (per POST/PUT)
    {
      "name": "John Doe",
      "age": 30
    }
    

Schematicamente, la struttura di una richiesta HTTP può essere rappresentata così:

Componente Descrizione Obbligatorietà
Linea di richiesta Metodo, percorso risorsa, versione HTTP Sempre
Intestazioni della richiesta Informazioni aggiuntive sulla richiesta/cliente Opzionale
Linea vuota Separatore Sempre
Corpo della richiesta Dati inviati al server Opzionale