http response and status code

This commit is contained in:
dado
2025-06-04 22:13:32 +02:00
parent c9ac815dff
commit 0874306884
3 changed files with 28 additions and 5 deletions

View File

@ -15,10 +15,10 @@ In quanto protocollo dell'application layer, HTTP si appoggia al TCP del transpo
Una richiesta HTTP è strutturata in quattro macrosezioni:
1. **Riga di richiesta**: contiene il metodo HTTP (ad esempio, GET, POST, PUT, DELETE, ecc.) e la versione di HTTP utilizzata, solitamente la versione 2
2. **Intestazione** o **Header**: ena serie di coppie chiave-valore che forniscono al server ulteriori informazioni, come ad esempio il tipo di contenuto, le informazioni sul client, le preferenze sulla codifica, e altro ancora
3. **Riga vuota**: Separa le intestazioni dal corpo della richiesta
4. **Corpo della richiesta** o **Body** (Opzionale): contiene i dati da inviare al server
1. `Riga di richiesta`: contiene il metodo HTTP (ad esempio, GET, POST, PUT, DELETE, ecc.) e la versione di HTTP utilizzata, solitamente la versione 2
2. `Intestazione` o `Header`: ena serie di coppie chiave-valore che forniscono al server ulteriori informazioni, come ad esempio il tipo di contenuto, le informazioni sul client, le preferenze sulla codifica, e altro ancora
3. `Riga vuota`: Separa le intestazioni dal corpo della richiesta
4. `Corpo della richiesta` o `Body` (Opzionale): contiene i dati da inviare al server
![http-request](asset/img/http-request.png)
@ -38,7 +38,30 @@ Gli header di una richiesta HTTP vengono utilizzati dal client per fornire al se
![header-http](asset/img/header-http.png)
### Metodi HTTP
## HTTP Response
Una risposta HTTP è il messaggio che un server invia a un client (come un browser o un'applicazione) dopo aver ricevuto e processato una richiesta HTTP. La struttura di una risposta HTTP è composta da quattro elementi principali:
- `Riga di stat`o, la prima riga della risposta che include la *versione del protocollo HTTP*, il *codice di stato* e la frase di stato descrittiva (ad esempio, *OK*)
- `Headers`: le righe successive contengono le intestazioni, organizzate come coppie chiave-valore. Queste intestazioni forniscono informazioni supplementari sulla risposta, quali il tipo di contenuto, la lunghezza del contenuto e altri metadati
- `Riga vuota` che separa le intestazioni dal corpo della risposta.
- `Body`: il corpo del messaggio, che contiene i dati effettivi della risposta
![http-response](asset/img/http-response.png)
### Codici di stato
I codici di stato HTTP sono numeri a tre cifre che il server invia al client per indicare l'esito di una richiesta. Si suddividono in cinque categorie principali, identificate dalla prima cifra:
- `1XX` - *Informativi*: indicano che la richiesta del client è stata ricevuta e il server sta proseguendo con l'elaborazione (es. *100 Continue*)
- `2XX` - *Successo*: la richiesta è stata compresa e accettata correttamente dal server (es. *200 OK*)
- `3XX` - *Redirect*: la richiesta richiede ulteriori azioni per essere completata, solitamente tramite un reindirizzamento a un nuovo URL. (es. *301 Permanently Redirect*)
- `4XX` - *Errori del client*: indicano che la richiesta contiene errori, ad esempio di sintassi o perché la risorsa richiesta non è stata trovata (es. *400 Bad Request*, *404 Not Found*)
- `5XX` - *Errori del server*: il server ha incontrato un errore o una condizione impossibile da gestire che ha impedito la soddisfazione della richiesta (es. *500 Internal Server Error*, *503 Service Unavailable*)
![http-status-code](asset/img/http-status-code.png)
## Metodi HTTP
I metodi HTTP indicano al server l'azione da eseguire su una risorsa. I principali metodi: