Domanda

Come posso convincere Firefox (3.0.1, se è importante) a inviare un'intestazione If-Modified-Since in una richiesta HTTPS?Invia l'intestazione se la richiesta utilizza HTTP semplice e il mio server la onora doverosamente.Ma quando richiedo la stessa risorsa dallo stesso server utilizzando invece HTTPS (ovvero, semplicemente modificando http:// nell'URL in https://), Firefox non invia affatto un'intestazione If-Modified-Since.Questo comportamento è imposto dalle specifiche SSL o qualcosa del genere?

Ecco alcuni esempi di coppie di richieste/risposte HTTP e HTTPS, ottenute utilizzando l'estensione Live HTTP Headers di Firefox, con alcune differenze in grassetto:

Richiesta/risposta HTTP:

http://myserver.com:30000/scripts/site.js

GET /scripts/site.js HTTP/1.1
Host: myserver.com:30000
User-Agent: Mozilla/5.0 (...) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Se-modificato-dal:Mar, 19 agosto 2008 15:57:30 GMT IF-None-Match:"A0501D1-300A-454D22526AE80" -GZIP Cache-Control:età massima=0

HTTP/1.x 304 Not Modified
Date: Tue, 19 Aug 2008 15:59:23 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8
Connection: Keep-Alive
Keep-Alive: timeout=5, max=99
Etag: "a0501d1-300a-454d22526ae80"-gzip

Richiesta/risposta HTTPS:

https://myserver.com:30001/scripts/site.js

GET /scripts/site.js HTTP/1.1
Host: myserver.com:30001
User-Agent: Mozilla/5.0 (...) Gecko/2008070206 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Tue, 19 Aug 2008 16:00:14 GMT
Server: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.8
Last-Modified: Tue, 19 Aug 2008 15:57:30 GMT
Etag: "a0501d1-300a-454d22526ae80"-gzip
Accept-Ranges: bytes
Content-Encoding: gzip
Content-Length: 3766
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/javascript

AGGIORNAMENTO:Collocamento browser.cache.disk_cache_ssl to true ha funzionato (il che è strano perché, come sottolinea Nickolay, c'è ancora la cache di memoria).Aggiunta di un "controllo cache:Anche l'intestazione public" della risposta ha funzionato.Grazie!

È stato utile?

Soluzione

Le richieste HTTPS non vengono memorizzate nella cache, quindi l'invio di un If-Modified-Since non ha alcun senso.La mancata memorizzazione nella cache è una precauzione di sicurezza.

La mancata memorizzazione nella cache su disco è una precauzione di sicurezza, ma sembra che influisca effettivamente su Se-modificato-dal comportamento (dando uno sguardo al codice).

Prova a impostare le preferenze di Firefox (in about:config) browser.cache.disk_cache_ssl A VERO.Se questo aiuta, prova a inviare Controllo cache:pubblico intestazione nella tua risposta.


AGGIORNAMENTO: Comportamento di Firefox era cambiato per Gecko 2.0 (Firefox 4): il contenuto HTTPS è ora memorizzato nella cache.

Altri suggerimenti

Le richieste HTTPS non vengono memorizzate nella cache, quindi l'invio di un file Se-modificato-dal non ha alcun senso.La mancata memorizzazione nella cache è una precauzione di sicurezza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top