Comprende la entrega temprana de la caché
La entrega temprana es la alternativa en PHP entre Apache y el renderizado normal de WordPress. Es rápida porque POM Cache puede devolver un index.html existente antes de que WordPress cargue los plugins activos, resuelva la consulta principal o seleccione una plantilla.
Cuándo comienza la fase uno
El núcleo de WordPress carga wp-content/advanced-cache.php solo cuando WP_CACHE es true. El drop-in de POM Cache carga entonces:
POM_CACHE_HOME . 'pom-cache-phase1.php'
La fase uno lee los ajustes de almacenamiento y de tiempo de ejecución efectivos para el sitio actual y prepara el mismo mapeado de host y ruta que se utiliza durante la generación.
Comprobaciones realizadas antes de la búsqueda
El tiempo de ejecución temprano devuelve el control a WordPress cuando la solicitud es:
- una ruta interna de WordPress de administración, de acceso, de cron, de XML-RPC, de CLI o relacionada;
- asociada a una cookie de acceso de WordPress, de contraseña de entrada o de autor de comentario;
- asociada a una cookie de sesión o de carrito de WooCommerce;
POST,PUToDELETE;- una solicitud de conjunto de cambios del Personalizador;
- protegida por
DONOTCACHEPAGE.
Si la ruta de caché configurada está vacía o se resuelve en /, POM Cache marca la solicitud como no cacheable en lugar de operar sobre un directorio no seguro.
Elegibilidad de las solicitudes estáticas
Para HTML, el método debe ser GET o HEAD. La URL no debe tener ninguna cadena de consulta significativa restante, no debe apuntar a rutas PHP/de administración de WordPress rechazadas y no debe solicitar JSON, JSON de ActivityPub o JSON de datos enlazados mediante la cabecera Accept.
Los parámetros de seguimiento reconocidos pueden ser eliminados por el tiempo de ejecución en PHP. Si al eliminarlos no queda ningún estado de consulta, se puede utilizar el archivo HTML canónico. Los parámetros que cambian el contenido siguen siendo una omisión.
Resolución del archivo
POM Cache construye la ruta candidata a partir de:
- Cache Location;
- el subdirectorio
pom-cache; - el host de la solicitud actual sin su puerto;
- la ruta de URL normalizada;
- el nombre de archivo fijo
index.html.
Resuelve la ruta real, verifica que el archivo existe y es legible, y confirma que permanece por debajo de la raíz de caché configurada. Una ruta que no supere la contención nunca se sirve.
La respuesta temprana
En un acierto válido, la fase uno:
- define
DONOTCACHEPAGEpara que ningún componente posterior intente cachear la respuesta de nuevo; - establece el estado HTTP
200; - envía
Content-Type: text/htmlcon el conjunto de caracteres del sitio de WordPress; - envía
Content-Lengthcuando está disponible; - añade la cabecera de diagnóstico de POM Cache;
- lee el archivo para
GET, u omite el cuerpo paraHEAD; - finaliza el procesamiento de la solicitud.
El valor de diagnóstico es:
X-POM-Cache: Served static cache from PHP; phase=early
Ningún hook de tema, shortcode, inyección de analítica realizada en PHP o callback normal de solicitud de plugin se ejecuta después de ese punto. Todo lo que se necesite en una página cacheada debe estar ya presente en el HTML almacenado o ser añadido por el navegador, el servidor web o la CDN.
Qué ocurre en un fallo temprano
Un fallo temprano no es un error. El drop-in devuelve el control a WordPress. La carga normal del plugin puede entonces registrar la fase dos, renderizar la página y decidir si la respuesta completada debe convertirse en un archivo nuevo.
La búsqueda tardía registrada por la fase dos está deshabilitada para el servido de forma predeterminada. Esto evita que un contexto de usuario o ruta recién conocido reutilice de forma casual HTML compartido. Los desarrolladores pueden implementar una política tardía explícita cuando puedan demostrar que la respuesta sigue siendo pública.
Verifica esta fase de forma aislada
- Asegúrate de que el informe de configuración de WordPress muestra tres estados OK.
- Mantén deshabilitada la entrega directa de Apache para la prueba.
- Genera un archivo de caché público con una solicitud sin sesión iniciada.
- Vuelve a cargar la URL exacta sin cookies ni cadena de consulta significativa.
- confirma la cabecera de respuesta
phase=early; - repite con
HEADy confirma que las cabeceras están presentes sin un cuerpo de respuesta; - inicia sesión y confirma que la cabecera temprana desaparece.
Continúa con Comprende la generación de la caché después del renderizado de WordPress para ver cómo se produce el archivo utilizado por la fase uno.