Antes de que formule la pregunta, esta es una pregunta difícil de enmarcar, así que doy la bienvenida a las ediciones para mejorar la claridad.
¿Cómo deciden los principales navegadores cómo almacenar en caché las respuestas, especialmente si dichas respuestas se recuperan a través de AJAX, y no tienen un control de caché explícito u otros encabezados relacionados con el caché?
Las aplicaciones que estoy probando son bastante similares, ya que usan un MVC de JavaScript para representar la página, responder a las acciones de los usuarios y realizar solicitudes XHR. Todas las respuestas están en JSON, excepto la página principal. Ambas aplicaciones están sobre HTTPS. La aplicación 1 tiene el conjunto de encabezados HSTS, La aplicación 2 no la tiene.
Ninguna de estas aplicaciones establece los encabezados de Cache-Control explícitamente. Sin embargo, Aplicación 1 no no almacena información, mientras que Aplicación 2 hace información de caché. La única distinción importante entre los dos es que las URL de Aplicación 1 están en el formato <URL>/#/some/action/performed
, mientras que las URL de Aplicación 2 son más simples, es decir, <URL>/someaction
. Mi argumento principal fue que el navegador no almacena en caché las respuestas que se devuelven a ninguna URL que contenga #
en ellas, porque en lo que respecta al navegador, es la misma página. Sin embargo, no estoy convencido con este argumento, simplemente porque al final del día, son todas las solicitudes de XHR que se están realizando, así que ¿por qué el comportamiento diferente entre aplicaciones?