Question

Comment puis-je convaincre Firefox (3.0.1, si c'est important) pour envoyer un if-Modified-since-tête dans une requête HTTPS?Il envoie l'en-tête si la requête utilise la plaine HTTP et mon serveur scrupuleusement les honneurs qu'il.Mais quand je demande la même ressource à partir du même serveur à l'aide de HTTPS à la place (c'est à dire, simplement en changeant l'adresse http:// dans l'URL: https://) alors, Firefox ne prend pas en envoyer un Si-Modified-since-tête à tous.Est ce comportement mandaté par la SSL du spec ou quelque chose?

Voici quelques exemples de HTTP et de HTTPS paires de demande/réponse, tiré à l'aide de la Live HTTP Headers extension de Firefox, avec quelques différences en gras:

Requête HTTP/réponse:

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
Si-Modified-Since:Mardi 19 Août 2008 à 15:57:30 GMT
Si-None-Match:"a0501d1-300a-454d22526ae80"-gzip
Cache-Control:max-age=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

HTTPS demande/réponse:

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

Mise à JOUR:Réglage browser.cache.disk_cache_ssl à vrai a fait le tour (ce qui est étrange parce que, comme Nickolay le souligne, il y a encore de la mémoire cache).L'ajout d'un "Cache-control:public" en-tête de la réponse aussi travaillé.Merci!

Était-ce utile?

La solution

Les requêtes HTTPS ne sont pas mises en cache afin d'envoi d'un Si-Modified-since n'a pas de sens.Le pas de mise en cache est une précaution de sécurité.

Le en cache pas sur le disque est une sécurité mise en garde, mais il semble que cela affecte en effet la Si-Modified-Since comportement (jetant un coup d'oeil sur le code).

Essayez de définir le Firefox de préférence (dans about:config) le navigateur.le cache.disk_cache_ssl pour vrai.Si cela peut vous aider, essayez d'envoi Cache-Control:public l'en-tête dans votre réponse.


Mise à JOUR: Firefox comportement a été changé pour Gecko 2.0 (Firefox 4) -- le contenu HTTPS est maintenant mis en cache.

Autres conseils

Les requêtes HTTPS ne sont pas mises en cache afin d'envoi d'un Si-Modified-Since n'a pas de sens.Le pas de mise en cache est une précaution de sécurité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top