personalizadas headers example ejemplo cabeceras cabecera firefox https

headers - Convenza a Firefox para que envíe un encabezado If-Modified-Since sobre HTTPS



http header example (2)

Las solicitudes HTTPS no se almacenan en caché, por lo que enviar un If-Modified-Since no tiene ningún sentido. El no almacenamiento en caché es una medida de seguridad.

¿Cómo puedo convencer a Firefox (3.0.1, si es que importa) para que envíe un encabezado If-Modified-Since en una solicitud HTTPS? Envía el encabezado si la solicitud usa HTTP simple y mi servidor lo respeta diligentemente. Pero cuando solicito el mismo recurso del mismo servidor usando HTTPS (es decir, simplemente cambiando el http: // en la URL a https: //), Firefox no envía un encabezado If-Modified-Since en absoluto. ¿Este comportamiento es obligatorio por la especificación SSL o algo así?

Estos son algunos ejemplos de pares de solicitud / respuesta HTTP y HTTPS, extraídos usando la extensión de Live HTTP Headers Firefox, con algunas diferencias en negrita:

Solicitud / respuesta 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 If-Modified-Since: Tue, 19 Aug 2008 15:57:30 GMT If-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

Solicitud / respuesta 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

ACTUALIZACIÓN: Establecer el browser.cache.disk_cache_ssl en true hizo el truco (que es extraño porque, como señala Nickolay, todavía hay memoria caché). Agregar un encabezado "Cache-control: public" a la respuesta también funcionó. ¡Gracias!


Las solicitudes HTTPS no se almacenan en caché, por lo que enviar un If-Modified-Since no tiene ningún sentido. El no almacenamiento en caché es una medida de seguridad.

El almacenamiento en caché no en el disco es una precaución de seguridad, pero parece que sí afecta el comportamiento If-Modified-Since (echando un vistazo al código).

Intenta configurar la preferencia de Firefox (en about: config) browser.cache.disk_cache_ssl en true . Si eso ayuda, intente enviar Cache-Control: encabezado público en su respuesta.

ACTUALIZACIÓN: el comportamiento de Firefox se modificó para Gecko 2.0 (Firefox 4): el contenido de HTTPS ahora está en la memoria caché.