Verificador de Cabeceras HTTP

Un verificador de cabeceras HTTP consulta una URL y muestra las cabeceras de respuesta que devuelve el servidor: el código de estado, los campos de caché y de cookies, y las cabeceras de seguridad que aplica el navegador. Este añade una puntuación de 0 a 100 calculada con siete de ellas: HSTS, CSP, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy y Permissions-Policy. Con github.com devuelve 200 OK en unos 60 ms, 17 cabeceras y 90/100, nota A+.

🌐
Probar:

¿Qué muestra este verificador de cabeceras HTTP?

Escribe un dominio: la herramienta envía desde nuestro servidor una petición HEAD a esa dirección y después muestra el código de estado, el tiempo de ida y vuelta en milisegundos, la lista completa de cabeceras de respuesta y una puntuación de seguridad de 0 a 100 basada en HSTS, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy y Permissions-Policy. Informa de lo que envió el servidor: no sigue redirecciones ni lee el cuerpo de la página.

Incrustar esta herramienta en tu sitio web

× px

                        

💡 Consejo de integración

Copie el código de incrustación y péguelo en el HTML de su sitio web. La versión responsive se adapta automáticamente a todos los tamaños de pantalla.

0 valoraciones
✓

Herramientas populares

No hay más herramientas
Explorar todas las herramientas

Si el estado es un 3xx, la página redirige: sigue cada salto con el Verificador de redirecciones para descubrir dónde termina finalmente la URL.

Acerca de Verificador de Cabeceras HTTP

Este verificador de cabeceras HTTP toma una URL, envía hacia ella una petición HEAD desde nuestro servidor y muestra lo que vuelve: el código de estado con su frase de estado, el tiempo de ida y vuelta en milisegundos y todas las cabeceras de respuesta que envió el servidor. Con github.com son 200 OK en unos 60 ms y 17 campos de cabecera, desde content-type y etag hasta el valor completo de content-security-policy.

La tarjeta Puntuación de Seguridad califica siete cabeceras sobre 100. Strict-Transport-Security y Content-Security-Policy valen 20 puntos cada una, X-Content-Type-Options y X-Frame-Options 15 cada una, y X-XSS-Protection, Referrer-Policy y Permissions-Policy 10 cada una. A partir de 90 puntos la nota es A+, 80 da A, 70 B, 60 C, 40 D y por debajo F. github.com obtiene 90/100 porque falta Permissions-Policy; example.com no envía ninguna de las siete y se queda en 0.

La puntuación mide la presencia, no la calidad. El valor x-xss-protection: 0 desactiva ese filtro y aun así suma sus diez puntos, mientras que una cabecera content-security-policy-report-only no suma ninguno: lee los valores que aparecen bajo cada fila marcada como Present en lugar de fiarte solo de la nota. Las redirecciones no se siguen: google.com responde 301 con location: https://www.google.com/, y hay que pegar esa dirección para calificar el destino. La petición es de tipo HEAD, así que no se analiza ningún HTML, etiqueta meta ni texto de la página; se abandona a los diez segundos y se aceptan veinte comprobaciones por minuto desde una misma dirección.

La URL que escribes se envía al servidor de este sitio, que hace la petición por ti con el agente de usuario FreeWebTools Header Checker/1.0 y sin tus cookies ni tu sesión, así ves lo que recibe un visitante anónimo. Los rangos de IP privados y reservados, localhost, los puntos de metadatos de la nube y los puertos de administración como 22, 3306 y 6379 se rechazan.

Casos de uso

Una desarrolladora que despliega una Content-Security-Policy revisa el dominio de preproducción tras cada publicación para confirmar que aparece content-security-policy de verdad, y no solo content-security-policy-report-only, que la puntuación ignora a propósito.
Un especialista SEO que audita una migración de dominio pega una URL antigua, lee el 301 y el valor location que devuelve, y vuelve a pegar ese destino en el campo para recorrer la cadena salto a salto, porque la herramienta nunca sigue una redirección por ti.
Un administrador de sistemas que acaba de activar HSTS comprueba que strict-transport-security lleva un max-age largo junto a includeSubDomains y preload antes de enviar el dominio a la lista de precarga; github.com devuelve max-age=31536000; includeSubdomains; preload.
Un técnico de soporte que persigue contenido caducado lee cache-control, etag, age y cf-cache-status en la tabla Todas las Cabeceras de Respuesta para distinguir una caché de borde de la del navegador: example.com responde con cf-cache-status: HIT y un age de varios miles de segundos.
Un estudiante que aprende HTTP pulsa por turnos los ejemplos google.com, github.com, cloudflare.com y stackoverflow.com y compara conjuntos reales de cabeceras y notas que van de F a A+, sin instalar curl ni abrir las herramientas de desarrollo del navegador.

Cómo comprobar las cabeceras de respuesta HTTP de un sitio

1

Escribe un dominio o una dirección completa en el cuadro de búsqueda, por ejemplo example.com; el prefijo https:// se añade solo. También puedes pulsar uno de los ejemplos junto a Probar: google.com, github.com, cloudflare.com o stackoverflow.com.

2

Pulsa Intro o el botón Comprobar. La petición sale de nuestro servidor como petición HEAD, así que solo vuelven las cabeceras, nunca el cuerpo de la página.

3

Lee las tres tarjetas de resumen: Código de Estado con su frase de estado, Puntuación de Seguridad sobre 100 con su nota en letra y Tiempo de Respuesta en milisegundos.

4

Repasa Cabeceras de Seguridad para ver cuáles de HSTS, CSP, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy y Permissions-Policy están marcadas como Present o Missing, y lee el valor que aparece bajo cada una de las presentes.

5

Abre Todas las Cabeceras de Respuesta para leer el nombre y el valor de cada cabecera devuelta por el servidor, incluidos los campos de caché, cookie y CDN que la puntuación no cubre.

6

Pulsa Copiar para llevarte al portapapeles el informe completo — URL, estado, puntuación con su nota y la lista de cabeceras — como texto plano.

Consejos Pro

  • Escribe solo el dominio: el campo añade https:// por ti, así que github.com se comprueba como https://github.com. Escribe http:// de forma explícita para ver la respuesta en HTTP simple, donde strict-transport-security suele faltar porque el RFC 6797 pide a los navegadores que lo ignoren en una conexión no segura.
  • La puntuación premia la presencia, no el valor. github.com envía x-xss-protection: 0, que desactiva el filtro, y aun así se lleva los diez puntos completos: lee la línea gris con el valor bajo cada fila marcada como Present antes de fiarte de la nota.
  • Una política en modo report-only no puntúa. google.com envía content-security-policy-report-only sin política aplicada, así que pierde los 20 puntos de CSP; la etiqueta Present solo aparece con el nombre de cabecera exacto content-security-policy.
  • Cuando la tarjeta Código de Estado muestra 301 o 302, copia el valor location de la tabla de cabeceras y lanza una segunda comprobación sobre él. La propia respuesta de redirección casi no lleva cabeceras de seguridad, y por eso google.com se queda en 25/100.
  • El botón Copiar deja todo el informe en el portapapeles como texto plano — URL, estado, puntuación con su nota y todas las cabeceras —, que es lo que pegas en un ticket. Reparte el trabajo en serie a veinte comprobaciones por minuto; por encima, la API responde 429 y la página muestra un mensaje de fallo genérico.

Solución de problemas

Problema:

La página muestra «Failed to check headers. Please verify the URL is accessible.» aunque el sitio se abre con normalidad en tu navegador.

Solución:

Ese mensaje genérico aparece cuando la respuesta llega inservible. La causa más habitual es el límite de peticiones: por encima de veinte comprobaciones por minuto desde la misma dirección, la API responde 429 Too Many Requests. Espera un minuto y vuelve a intentarlo. El mismo mensaje aparece cuando el servidor tarda más de los diez segundos de tiempo límite en responder a la petición HEAD.

Problema:

La línea de error dice «Connection failed: SSL certificate problem: certificate has expired».

Solución:

El certificado se verifica en lugar de aceptarse a ciegas, así que un certificado caducado, autofirmado o emitido para otro nombre de host detiene la comprobación en vez de producir un informe engañoso. Renueva o corrige el certificado, o comprueba la dirección con http:// para leer las cabeceras que el servidor envía antes de que intervenga TLS.

Problema:

La línea de error dice «Internal URLs not allowed», «Private IPs not allowed» o «This port is not allowed».

Solución:

La herramienta rechaza localhost, los rangos de IP privados y reservados, los puntos de metadatos de la nube y los puertos 22, 23, 25, 3306, 5432, 6379, 11211, 27017, 8080 y 8443, para que no pueda convertirse en un escáner de red interna. Usa un nombre de host resoluble públicamente en el puerto 80 o 443; para un servidor local, ejecuta curl -I desde la propia máquina.

Problema:

La tarjeta Código de Estado muestra 301 o 302, solo un puñado de cabeceras y una puntuación de seguridad baja.

Solución:

Las redirecciones no se siguen a propósito, así que lo que estás calificando es la respuesta de redirección, no el destino. google.com responde 301 con location: https://www.google.com/ y por eso se queda en 25/100. Copia el valor location de la tabla de cabeceras y lanza una segunda comprobación sobre él para calificar la página en la que aterrizan los visitantes.

Problema:

La línea de error dice «Connection failed: Could not resolve host».

Solución:

Nuestro servidor no encontró ningún registro DNS público para ese nombre de host. Revisa la ortografía, quita el espacio o la comilla que se hayan colado al pegar la dirección y confirma que el dominio se resuelve desde fuera de tu red. Un host que solo existe en tu archivo hosts, tras una VPN o en un resolutor interno no se puede alcanzar desde aquí.

Preguntas frecuentes

Escribe el dominio en el campo de la parte superior de esta página y pulsa Intro o el botón Comprobar. Nuestro servidor envía una petición HEAD a esa URL y la página rellena tres tarjetas — Código de Estado, Puntuación de Seguridad y Tiempo de Respuesta — seguidas del análisis Cabeceras de Seguridad y de una tabla con todas las cabeceras recibidas. github.com responde 200 OK en unos 60 ms con 17 campos. No hacen falta extensiones, comandos curl ni herramientas de desarrollo.

Una cabecera HTTP es una línea de nombre y valor que acompaña a una petición o a una respuesta para describirla. content-type: text/html; charset=utf-8 indica el tipo de medio, cache-control indica cuánto tiempo puede reutilizarse la respuesta y location nombra el destino de una redirección. El RFC 9110, HTTP Semantics, define la sintaxis de los campos y el registro de sus nombres. Las cabeceras viajan junto al cuerpo, nunca dentro de él; esta página solo lista cabeceras de respuesta.

Las siete que se puntúan aquí son Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy y Permissions-Policy. HSTS y CSP pesan 20 puntos cada una, X-Content-Type-Options y X-Frame-Options 15 cada una y las tres restantes 10 cada una. MDN marca X-XSS-Protection como obsoleta y no estándar y recomienda en su lugar una Content-Security-Policy sólida, así que trata esos diez puntos como una señal heredada, no como un objetivo.

Lanza la comprobación y lee la sección Cabeceras de Seguridad: cada una de las siete lleva una etiqueta Present o Missing, una descripción de una línea y, si está presente, el valor exacto devuelto por el servidor. La tarjeta Puntuación de Seguridad lo traduce a 0-100 con una nota: 90 o más es A+, 80 A, 70 B, 60 C, 40 D y por debajo de 40 F. github.com obtiene 90/100 y solo le falta Permissions-Policy.

Pulsa F12 para abrir las herramientas de desarrollo, ve a la pestaña Red, recarga la página, haz clic en la petición del documento y lee el panel de cabeceras de respuesta. Eso muestra lo que recibió tu propio navegador, cookies y negociación de contenido incluidas. Esta página es la contraparte neutral: la petición sale de nuestro servidor con el agente de usuario FreeWebTools Header Checker/1.0 y sin cookies, así que ves lo que recibe un visitante anónimo.

Las cabeceras llevan todo lo que en un mensaje no es el cuerpo: el resultado de la transferencia, el tipo de medio y la codificación, las reglas de caché y revalidación, las cookies y las políticas de seguridad que el navegador debe aplicar. Sin content-type el navegador tiene que adivinar el formato; sin strict-transport-security puede seguir hablando HTTP simple; sin content-security-policy un script inyectado se ejecuta sin obstáculos. El cuerpo por sí solo no puede expresar nada de eso.

Cada campo ocupa una línea: nombre, dos puntos, un espacio opcional y valor, como en x-frame-options: deny. El RFC 9110, sección 5.1, hace que los nombres de campo no distingan mayúsculas de minúsculas, y HTTP/2 los exige en minúsculas, por lo que la tabla de arriba muestra content-type y no Content-Type. Un campo puede repetirse legítimamente; en ese caso este verificador conserva el último valor que analiza.

Sí. TLS cifra todo el mensaje HTTP, cabeceras incluidas, de modo que quien observe la red ve la dirección IP de destino y el nombre de host del SNI, pero no los nombres de campo, los valores ni las cookies. En HTTP simple no hay nada protegido, y para eso existe Strict-Transport-Security: el RFC 6797 obliga al navegador a usar HTTPS con ese host durante todo el periodo de max-age, y los navegadores ignoran la cabecera si llega por HTTP.

Los nombres de campo no. El RFC 9110, sección 5.1, indica que los nombres de campo no distinguen mayúsculas de minúsculas: Content-Type y content-type son el mismo campo, y HTTP/2 impone la forma en minúsculas. Los valores son otra cosa: un navegador acepta igual x-frame-options: DENY que deny, pero una URL de location, un ETag o un nonce dentro de una Content-Security-Policy se comparan exactamente como están escritos.

No. Esta página informa de cabeceras de respuesta, porque la petición la hace nuestro servidor y no tu navegador. Para leer las cabeceras que envía tu navegador, abre las herramientas de desarrollo, ve a la pestaña Red y despliega las cabeceras de petición, o usa un servicio que devuelva el eco de la petición. Todo lo que se muestra aquí — el estado, la puntuación y la tabla — describe el sitio que escribiste, no tu cliente.

FreeWebTools AI
Powered by free AI models · Full chat →