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:
GETpara un cuerpo de respuesta normal;HEADpara 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.