Esiste un modo per forzare Firefox a NON memorizzare nella cache i reindirizzamenti (301 e 302)?


11

Sono uno sviluppatore web e ci sono molte volte in cui devo creare o modificare un reindirizzamento 301 o 302. È ingombrante testare le modifiche immediate in Firefox perché memorizza i reindirizzamenti nella cache, quindi se cambio il reindirizzamento sul lato server e quindi aggiorno duro, il vecchio reindirizzamento viene memorizzato nella cache, quindi l'unico modo per testare quello nuovo è eliminare la cache o avviare una sessione del browser privata.

Detto questo, non è particolarmente difficile aggirare, ma è fastidioso, soprattutto quando mi dimentico di farlo, e sembra che il mio nuovo reindirizzamento non funzioni, fino a quando non ricordo di eliminare la cache o avviare una nuova sessione privata .

Capisco perché è utile memorizzare nella cache i reindirizzamenti per un uso normale, ma vorrei disabilitare il comportamento a scopi di debug.

Risposte:


8

È possibile impostare un'opzione per disattivare la consultazione della cache se il pannello degli strumenti per gli sviluppatori è aperto (come accade con F12).

Per impostare questa opzione:

  1. Su qualsiasi pagina, premi F12per aprire il pannello della casella degli strumenti dello sviluppatore.
  2. Fai clic sull'icona a forma di ingranaggio in alto a destra nel riquadro.
  3. Qui, seleziona "Impostazioni avanzate → Disabilita cache (quando la casella degli strumenti è aperta)".

I reindirizzamenti della cache verranno comunque memorizzati nella cache dalle visite senza il pannello della casella degli strumenti dello sviluppatore aperto, ma tale cache non viene consultata e non aggiornata finché la casella degli strumenti dello sviluppatore è aperta. Quindi imponi temporaneamente a Firefox di non reindirizzare nella cache o servire reindirizzamenti dalla cache, ma potrebbe essere sufficiente per il tuo caso d'uso.

Verificato in Firefox 41. Adattato dalla risposta di Ryan Bemrose a un'altra domanda.


2

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 curle l' -Iopzione 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 curlpagina man ufficiale , l' -Iopzione è:

-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.come 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' -Lopzione (aka:) --locational 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 Permanentlye 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.


2

In Firefox Firebug, sotto la Netscheda, c'è un'opzione chiamata "Disabilita cache". Lo attivo quando eseguo i test di reindirizzamento e in caso contrario lo ho disattivato.

inserisci qui la descrizione dell'immagine


1

Vai a about:confige imposta entrambi browser.cache.disk.enablee browser.cache.memory.enablesu falso. Ciò equivale a selezionare "Disabilita cache del browser".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.