Posizione HTTP - HTTP location

Il campo di intestazione Posizione HTTP viene restituito nelle risposte da un server HTTP in due circostanze:

  1. Per chiedere a un browser Web di caricare una pagina Web diversa ( reindirizzamento URL ). In questa circostanza, l'intestazione della posizione deve essere inviata con un codice di stato HTTP di 3xx. Viene passato come parte della risposta da un server Web quando l' URI richiesto ha:
    • Trasferito temporaneamente;
    • Trasferito; o
    • Ha elaborato una richiesta, ad esempio un modulo POST, e fornisce il risultato di tale richiesta a un URI diverso
  2. Per fornire informazioni sulla posizione di una risorsa appena creata. In questa circostanza, l'intestazione Location deve essere inviata con un codice di stato HTTP di 201 o 202 .

Una versione obsoleta delle specifiche HTTP 1.1 (IETF RFC 2616) richiedeva un URI assoluto completo per il reindirizzamento. Il gruppo di lavoro HTTP IETF ha scoperto che i browser Web più popolari tollerano il passaggio di un URL relativo e, di conseguenza, le specifiche HTTP 1.1 aggiornate (IETF RFC 7231) hanno allentato il vincolo originale, consentendo l'uso di URL relativi nelle intestazioni di posizione.

Esempi

Esempio di URL assoluto

Gli URL assoluti sono URL che iniziano con uno schema (ad es. http:, https:, telnet:, mailto:) e sono conformi alla sintassi e alla semantica specifiche dello schema. Ad esempio, la sintassi e la semantica specifiche dello schema HTTP per gli URL HTTP richiedono un "host" (indirizzo del server Web) e un "percorso assoluto", con componenti opzionali di "porta" e "query".

Un client che richiede
https://www.example.com/index.html
utilizzando

GET /index.html HTTP/1.1
Host: www.example.com

potrebbe ricevere la risposta del server

HTTP/1.1 302 Found
Location: https://www.example.org/index.php

Esempio di percorso assoluto di URL relativo

Gli URL relativi sono URL che non includono uno schema o un host. Per essere compresi devono essere combinati con l'URL della richiesta originale.

Una richiesta client per
https://www.example.com/blog/all :
può ottenere una risposta del server con un percorso assoluto perché inizia con una barra:

HTTP/1.1 302 Found
Location: /articles/

L'URL della posizione viene espanso dal client in
https://www.example.com/articles/ .

Esempio di percorso relativo dell'URL relativo

Una richiesta client per
https://www.example.com/blog/latest
può ottenere una risposta del server con un percorso relativo perché non inizia con una barra:

HTTP/1.1 302 Found
Location: 2020/zoo

Il client rimuove il segmento di percorso dopo l'ultima barra dell'URL originale e aggiunge il percorso relativo risultante in
https://www.example.com/blog/2020/zoo .

Guarda anche

Riferimenti