Capisco perfettamente perché sia utile memorizzare i reindirizzamenti nella cache nel 99% delle situazioni, ma esiste comunque un modo per disabilitare tale comportamento?
Bene, se lo stai facendo dal punto di vista dello sviluppo di un web server, aspettarti che il comportamento di “cache a tutti i costi” del browser venga modificato per le tue esigenze di “infinite modifiche allo sviluppo” è il modo sbagliato di attaccare questa bestia. Quando si esegue il debug dei reindirizzamenti del server Web, è necessario concentrarsi sul controllo dell'output dell'intestazione e non sull'output del rendering a pagina intera fornito dai browser.
Quindi, invece, consiglierei di imparare come usare curl
e l' -I
opzione dalla riga di comando per restituire solo le intestazioni che è molto utile per il debug dei reindirizzamenti 301 e 302. Dalla riga di comando. Come spiegato nella curl
pagina man ufficiale , l' -I
opzione è:
-Mi dirigo
(HTTP / FTP / FILE) Scarica solo l'intestazione HTTP! I server HTTP dispongono del comando HEAD che utilizza per ottenere solo l'intestazione di un documento. Se utilizzato su un file FTP o FILE, curl visualizza solo le dimensioni del file e l'ora dell'ultima modifica.
Ad esempio, fare un curl -I google.com
e l'output sarà qualcosa del genere:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
E se vuoi seguire l'intera catena di reindirizzamento tramite le intestazioni, quindi aggiungi l' -L
opzione (aka:) --location
al comando in questo modo:
curl -I -L google.com
E l'output di quel comando che segue la catena di reindirizzamento della posizione sarebbe qualcosa del genere:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding
Notare la risposta dell'intestazione di HTTP/1.1 301 Moved Permanently
e Location: http://www.google.com/
. Se il tuo obiettivo di sviluppo web è testare cose come Apache riscrivere regole e reindirizzamenti, curl -I
è lo strumento migliore per aiutarti a vedere cosa stanno facendo le tue modifiche.
E dopo che queste modifiche sono state finalizzate e perfezionate, fai una corsa finale in un vero browser per vedere tutto prendere vita.