Passa al contenuto principale

4.5.1. GET

4.5.1. GET

GET è il metodo più comune utilizzato in HTTP. È definito come sia sicuro che idempotente, il che significa che una richiesta GET non dovrebbe avere effetti collaterali sullo stato del server e che più richieste GET identiche dovrebbero avere lo stesso effetto di una singola richiesta.

In particolare, le applicazioni devono essere consapevoli dei vari modi in cui le richieste GET possono essere generate oltre a una richiesta esplicita da parte di un utente:

  • Prefetching: Gli agenti utente possono recuperare un URL prima che l'utente lo richieda esplicitamente, per migliorare le prestazioni percepite.

  • Crawling: I motori di ricerca e strumenti simili esploreranno gli URL per indicizzarli.

  • Monitoraggio: Vari strumenti potrebbero recuperare periodicamente gli URL per verificare modifiche o disponibilità.

Di conseguenza, le applicazioni che utilizzano GET NON DEVONO utilizzarlo per attivare modifiche allo stato del server. Se un'applicazione deve modificare lo stato, DOVREBBE utilizzare un metodo diverso, come POST.

Detto questo, è consentito che GET abbia effetti collaterali che non influenzano lo stato della risorsa, come la registrazione nei log.

Infine, si noti che il componente query di un URL è spesso utilizzato per trasportare informazioni identificative. Sebbene questa sia una pratica comune e utile, ha diversi svantaggi:

  • Le richieste GET con stringhe di query sono meno probabili di essere memorizzate nella cache rispetto a quelle senza.

  • Le stringhe di query sono visibili nella cronologia del browser e nei log.

  • Alcuni proxy e server potrebbero limitare la lunghezza degli URL.

Le applicazioni che utilizzano GET con stringhe di query devono essere consapevoli di questi problemi.