Cómo afectan las cookies, las cadenas de consulta y los métodos de solicitud al almacenamiento en caché

La ruta de la URL es solo una parte de una solicitud HTTP. Las cookies, los parámetros de consulta y el método pueden cambiar quién es el visitante, qué contenido se solicitó o si los datos deberían modificarse. POM Cache evalúa los tres antes de reutilizar el HTML compartido.

Cookies: omitir en lugar de variar

POM Cache no añade los valores de las cookies a los nombres de archivo de las páginas. Reconoce familias específicas que contienen estado y omite el archivo compartido:

Estado de la cookie Motivo de la omisión
Autenticación de WordPress El usuario, el rol, la capacidad, el contenido privado y la interfaz de administración pueden diferir
Contraseña de la entrada Es posible que el contenido protegido se haya desbloqueado
Autor del comentario El formulario de comentarios y el estado del visitante pueden diferir
Sesión de WooCommerce El estado de la tienda puede pertenecer a un comprador concreto
Hash/artículos del carrito de WooCommerce El marcado dependiente del carrito puede cambiar

El index.html anónimo sigue estando disponible para las solicitudes sin esas cookies.

Una aplicación independiente puede introducir cookies de personalización adicionales. POM Cache no puede deducir su semántica; la integración y cada capa de caché previa deben excluirlas deliberadamente.

Cadenas de consulta: normalizar solo el seguimiento conocido

El estado de consulta significativo omite el HTML estático de forma predeterminada. Algunos ejemplos habituales son:

?s=coffee
?color=blue
?currency=EUR
?preview=true

POM Cache mantiene una lista de parámetros de atribución reconocidos, como los identificadores UTM, de clic publicitario y de referencia social. En PHP, elimina esos nombres de la URI de solicitud interna. Si no queda nada significativo, la solicitud puede compartir la ruta canónica:

/menu/?utm_campaign=spring
→ canonical candidate: /menu/

El parámetro enlazador _gl de Google también se reconoce. Transporta información de atribución y de sesión para las etiquetas del lado del navegador de Google sin seleccionar un contenido de página distinto. POM Cache lo normaliza internamente y deja intacta la URL del navegador para que esas etiquetas aún puedan leerla:

/shop/?_gl=google-linker-value
→ canonical candidate: /shop/

Los parámetros mixtos siguen siendo dinámicos:

/menu/?utm_campaign=spring&allergen=nuts
→ bypass because allergen changes the request

/shop/?_gl=google-linker-value&orderby=price
→ bypass because orderby changes the request

La regla directa de Apache usa sus propias condiciones más estrictas y normalmente no espera ninguna cadena de consulta. Por tanto, una URL de seguimiento puede caer en PHP mientras que Apache sirve la URL canónica.

Un plugin puede registrar explícitamente un pequeño conjunto de variantes de consulta que cambian el contenido mediante pom_cache_query_variant. Cada combinación aprobada recibe su propia respuesta almacenada en caché, independiente de la página canónica. Estas variantes usan la entrega de PHP después de que se carguen los plugins, con una expiración elegida por la integración propietaria. Los demás parámetros y valores siguen omitiendo el almacenamiento en caché. No añadas parámetros que cambian el contenido a la lista de seguimiento para conseguirlo; consulta la guía de integración para desarrolladores.

Métodos: lecturas frente a cambios de estado

El contrato estático de PHP acepta:

  • GET para un cuerpo de respuesta normal;
  • HEAD para los mismos metadatos de respuesta sin cuerpo.

Rechaza cualquier otro método, incluidos POST, PUT, PATCH, DELETE y OPTIONS, antes de la entrega temprana y de nuevo antes de la generación. Los datos de formulario enviados tampoco son aptos para caché.

Cualquier regla nativa del servidor web o de la CDN debe aplicar el mismo resultado de seguridad: solo los métodos de lectura pueden llegar a un archivo de página estática, y las solicitudes que cambian el estado deben continuar hacia la aplicación. Comprueba la regla efectiva desplegada, no solo el ajuste de WordPress.

Una matriz de pruebas compacta

Usa una URL pública ya almacenada en caché:

Variación de la solicitud Comportamiento de origen esperado
GET anónimo limpio Puede servir index.html
HEAD anónimo Puede servir cabeceras estáticas, sin cuerpo
Cookie de inicio de sesión de WordPress Omitir
Cookie de contraseña de entrada Omitir
Cookie de sesión/carrito de WooCommerce Omitir
Consulta solo de seguimiento en la ruta de PHP Puede usar la entrada canónica
Consulta que cambia el contenido sin una integración explícita Omitir
Variante de consulta finita aprobada Entrada independiente servida por PHP hasta la expiración
Cualquier método distinto de GET o HEAD Omitir
Cabecera JSON Accept No debe recibir archivo HTML

Ejecuta la matriz primero contra PHP, después contra Apache y por último contra la CDN. Un resultado correcto de PHP no puede compensar una respuesta insegura ya devuelta por una capa anterior.

No hagas pruebas con valores secretos en los registros

Registra los nombres de las cookies, no los valores de las cookies. Los valores de sesión y de autenticación son credenciales. Elimina los parámetros de consulta que contengan datos personales, tokens de acceso, direcciones de correo electrónico o referencias de pedido antes de compartir un diagnóstico.

Si una variación se comporta de forma inesperada, inspecciona Qué solicitudes están excluidas y Almacenamiento en caché y cabeceras de respuesta para identificar la capa que responde.