4.1 Elenco dei metodi HTTP

La prima parola in una richiesta HTTP è il nome del metodo . C'è anche qualche analogia con i metodi di chiamata in Java. Il metodo nella richiesta HTTP definisce l'operazione di base da eseguire sulla risorsa.

Che tipo di risorsa? Il fatto è che agli albori del World Wide Web, i server memorizzavano semplicemente file HTML, rispettivamente, la richiesta era per tale file e descriveva alcune azioni che devono essere eseguite con la risorsa / file.

Lo standard HTTP specifica i seguenti metodi:

# Metodo Descrizione
1 OTTENERE Utilizzato per interrogare il contenuto della risorsa specificata.
2 INVIARE Utilizzato per trasferire i dati dal client al server. Modifica lo stato di una risorsa sul server.
3 METTERE Utilizzato per trasferire i dati dal client al server. Crea una nuova risorsa sul server.
4 ELIMINARE Elimina la risorsa specificata sul server.
5 TESTA Simile a GET, ma non esiste un corpo della risposta. Necessario per ottenere le intestazioni di risposta
6 OPZIONI Richiede al server un elenco di metodi supportati per la risorsa specificata.
7 TRACCIA metodo di servizio. Consente di scoprire se la richiesta viene modificata dai server attraverso i quali passa.
8 COLLEGARE metodo di servizio. Utilizzato per stabilire una connessione sicura.

4.2 Metodo GET

Il metodo GET è il metodo HTTP più popolare. Questo è ciò che il browser chiama quando invia una richiesta al server per la pagina successiva.

Ad esempio, se hai seguito il collegamento http://codegym.cc/path/resource?param1=value1¶m2=value2 nel browser, il browser invierà una richiesta HTTP al server CodeGym che inizierà con questa riga iniziale :

GET /path/resource?param1=value1&param2=value2 HTTP/1.1

Di conseguenza, il server dovrà inviare una risposta HTTP al browser, in cui scrivere lo stato della richiesta e inviare anche la risorsa richiesta.

Si presuppone che chiamare il metodo GET più volte non modifichi lo stato del server e che il server debba restituire ogni volta la stessa risposta . Pertanto, il protocollo ha un controllo complicato sulla memorizzazione nella cache degli oggetti.

In primo luogo, le risorse ricevute utilizzando la richiesta GET, il browser può memorizzarle nella cache a sua discrezione (ci sono sfumature).

In secondo luogo, quando si invia una richiesta al server, è possibile specificare un'intestazione speciale If-Modified-Sincee date. Se la risorsa/documento richiesto è cambiato dalla data specificata, il server lo invierà. Se non viene modificato, il corpo della risorsa non viene passato. Si presuppone che sia memorizzato nella cache sul client.

La memorizzazione nella cache delle pagine (richieste GET) viene utilizzata sempre, quindi ti consiglio di esaminare questo problema.

4.3 Metodi POST e PUT

Il metodo POST viene utilizzato per aggiornare una risorsa sul server. Ad esempio, quando carichi un'immagine sul server, il tuo browser invia una richiesta POST.

Considera una richiesta HTTP che inizierà con questa riga iniziale:

POST /path/resource?param1=value1&param2=value2 HTTP/1.1
headers…

<request body>

Di conseguenza, il server dovrà inviare una risposta HTTP al browser, in cui scriverà lo stato della richiesta e invierà anche la risorsa modificata. Chiamare il metodo POST più volte cambia lo stato del server e il server può restituire ogni volta una risposta diversa .

GET e POST sono le due richieste più comuni sul web. Per aiutarti a ricordare più facilmente come funzionano i metodi, considera la seguente tabella:

OTTENERE INVIARE METTERE
Richiesta Solo URL URL e corpo della richiesta URL e corpo della richiesta
Risposta Codice e corpo della risposta Codice e corpo della risposta Codice di risposta

Puoi leggere di più sulla richiesta POST al link .

4.4 Metodo DELETE

E infine, informazioni sul metodo DELETE . Tutto è semplice qui.

Ad esempio, vogliamo eliminare una determinata risorsa sul server. Gli inviamo una richiesta del tipo:

DELETE  /path/resource?param1=value1&param2=value2 HTTP/1.1

Dopo aver ricevuto questa richiesta, il server eliminerà la risorsa specificata. A meno che, ovviamente, tu non abbia i diritti per eliminarlo.