¿Alguna vez te has preguntado cómo se comportan tus APIs entre bastidores? ¿Cómo sabes si están enviando y recibiendo los datos correctos, o si están siendo modificadas por intermediarios en el camino? Ahí es donde el método HTTP TRACE resulta útil. El método HTTP TRACE es un tipo especial de solicitud HTTP que realiza una prueba de bucle de retorno de mensajes a lo largo de la ruta al recurso de destino. Te permite ver el mensaje exacto que recibió el destinatario final, excluyendo cualquier dato confidencial, como cookies o credenciales.
En esta publicación de blog, te mostraré cómo usar el método HTTP TRACE para depurar tus APIs como un profesional. Explicaré qué es el método HTTP TRACE, cómo funciona y qué beneficios ofrece. También te mostraré cómo usar Apidog.
¿Qué es el método HTTP TRACE?
El método HTTP TRACE es uno de los métodos HTTP estándar, definidos en la especificación RFC 2616. Se utiliza para realizar una prueba de bucle de retorno de mensajes a lo largo de la ruta al recurso de destino, proporcionando un mecanismo de depuración útil. El destinatario final de la solicitud debe reflejar el mensaje recibido, excluyendo cualquier campo que pueda incluir datos confidenciales, de vuelta al cliente como el cuerpo del mensaje de una respuesta 200 (OK) con un Content-Type de message/http. El destinatario final es el servidor de origen o el primer servidor en recibir un valor Max-Forwards de 0 en la solicitud.
La sintaxis del método HTTP TRACE es la siguiente:
TRACE /path HTTP/1.1
Host: example.com
La solicitud no tiene cuerpo y la ruta es el URI del recurso de destino. La solicitud puede incluir un encabezado Max-Forwards, que indica el número máximo de intermediarios que pueden reenviar la solicitud. Si el valor Max-Forwards es 0, la solicitud no debe reenviarse y la respuesta debe ser generada por el primer servidor que la reciba. Si no se especifica el valor Max-Forwards, la solicitud puede reenviarse indefinidamente, hasta que llegue al servidor de origen o a un intermediario que no admita el método HTTP TRACE.
La respuesta a la solicitud HTTP TRACE debe tener un código de estado de 200 (OK) y un Content-Type de message/HTTP. El cuerpo de la respuesta debe contener el mensaje exacto que recibió el destinatario final, excluyendo cualquier dato confidencial. La respuesta también puede incluir un encabezado Via, que indica los intermediarios que procesaron la solicitud. El encabezado Via debe tener una o más entradas, cada una de las cuales consta del nombre del protocolo, la versión del protocolo y el identificador del intermediario. Por ejemplo:
HTTP/1.1 200 OK
Content-Type: message/http
Via: 1.1 proxy1.example.com, 1.1 proxy2.example.com
TRACE /path HTTP/1.1
Host: example.com
La respuesta muestra que la solicitud fue reenviada por dos proxies, proxy1.example.com y proxy2.example.com, antes de llegar al destinatario final. El cuerpo de la respuesta refleja la solicitud original, incluida la ruta y el encabezado del host.
¿Cómo funciona el método HTTP TRACE?
El método HTTP TRACE funciona enviando una solicitud al recurso de destino y esperando una respuesta que contenga el mismo mensaje de solicitud. Esto permite al cliente ver el mensaje exacto que recibió el servidor y verificar si hubo alguna modificación o error en el camino.
El método HTTP TRACE se puede utilizar para depurar varios aspectos del comportamiento de la API, tales como:
- La presencia e identidad de intermediarios, como proxies, gateways o firewalls, que pueden afectar la solicitud API y la respuesta. El encabezado Via puede revelar los intermediarios que procesaron la solicitud y sus versiones de protocolo.
- La integridad y validez de los encabezados y el cuerpo de la solicitud y respuesta de la API. El cuerpo de la respuesta puede mostrar el mensaje exacto que recibió el servidor, y el cliente puede compararlo con la solicitud original para ver si hubo algún cambio o discrepancia.
- El rendimiento y la latencia de la solicitud y respuesta de la API. El cliente puede medir el tiempo que tarda en enviar la solicitud y recibir la respuesta e identificar cualquier cuello de botella o retraso en la ruta de la API.
El método HTTP TRACE también se puede utilizar para probar la seguridad y el cumplimiento de la API, tales como:
- La protección de datos confidenciales, como cookies, credenciales o tokens, que pueden incluirse en la solicitud y respuesta de la API. El servidor no debe reflejar ningún campo que pueda contener datos confidenciales, y el cliente no debe enviar ningún contenido en la solicitud, ni generar ningún campo que pueda incluir datos confidenciales.
- El soporte y la aplicación del método HTTP TRACE por parte del servidor y los intermediarios. El servidor y los intermediarios deben cumplir con la especificación RFC 2616 y responder con un código de estado 200 (OK) y un tipo de contenido message/http. Si el servidor o un intermediario no admite el método HTTP TRACE, debe responder con un código de estado 405 (Method Not Allowed) y un encabezado Allow que enumere los métodos admitidos. Si el servidor o un intermediario no permite el método HTTP TRACE, debe responder con un código de estado 403 (Forbidden).

¿Cuáles son los beneficios del método HTTP TRACE?
El método HTTP TRACE ofrece varios beneficios para los desarrolladores, probadores y consumidores de API, tales como:
- Es una forma sencilla y estándar de depurar APIs, sin necesidad de herramientas o bibliotecas adicionales. Es compatible con la mayoría de los servidores y clientes HTTP, y sigue la especificación RFC 2616.
- Es un método seguro e idempotente, lo que significa que no modifica el estado del servidor o el recurso, y se puede repetir sin ningún efecto secundario. Tampoco es almacenable en caché, lo que significa que siempre refleja el estado actual de la API.
- Es un método potente y versátil, lo que significa que se puede utilizar para depurar varios aspectos del comportamiento de la API, como intermediarios, encabezados, cuerpo, rendimiento, latencia, seguridad y cumplimiento. También se puede utilizar para probar diferentes escenarios y casos de uso, variando la ruta, el host, el Max-Forwards y otros encabezados.
¿Cómo usar Apidog para enviar y analizar solicitudes HTTP TRACE?
Apidog es una plataforma integrada para el diseño, la depuración, el desarrollo, la simulación y las pruebas de API, que combina Postman + Swagger + Mock + JMeter para abordar el problema de la sincronización de datos entre diferentes sistemas utilizando un conjunto de sistemas y un conjunto de datos. Apidog es un conjunto completo de herramientas que conecta todo el ciclo de vida de la API, ayudando a los equipos de I+D a implementar las mejores prácticas para el desarrollo API Design-first.
Apidog ofrece una forma cómoda y sencilla de enviar y analizar solicitudes HTTP TRACE, así como otros métodos HTTP. Para usar Apidog para enviar y analizar solicitudes HTTP TRACE, debes seguir estos pasos:
- Crea una nueva solicitud o abre una existente donde desees enviar y analizar tus solicitudes HTTP TRACE.

- En el editor de API, selecciona el método TRACE en el menú desplegable e introduce la ruta del recurso de destino. También puedes introducir el host y los encabezados Max-Forwards, si es necesario.

- Haz clic en el botón Enviar para enviar la solicitud HTTP TRACE al recurso de destino y espera la respuesta.

En el panel de respuesta, puedes ver el estado
¿Cómo habilitar o deshabilitar el método HTTP TRACE en el servidor?
Dependiendo de la configuración de tu servidor y la política de seguridad, es posible que desees habilitar o deshabilitar el método HTTP TRACE en tu servidor. Habilitar el método HTTP TRACE te permite depurar tus APIs más fácilmente, pero también puede exponer información que podría ser explotada por actores maliciosos. Deshabilitar el método HTTP TRACE previene tales ataques, pero también limita tus capacidades de depuración.
El proceso de habilitar o deshabilitar el método HTTP TRACE varía según el tipo y la versión de tu servidor. Aquí hay algunos ejemplos de cómo hacerlo para algunos servidores comunes:
- Apache: Puedes usar la directiva TraceEnable en el archivo httpd.conf para deshabilitar o limitar el método TRACE. Por ejemplo, para deshabilitar el método TRACE por completo, puedes agregar la siguiente línea:
TraceEnable off
Para limitar el método TRACE solo al servidor local, puedes agregar la siguiente línea:
TraceEnable extended
- Nginx: Puedes usar la directiva limit_except en el archivo nginx.conf para deshabilitar o limitar el método TRACE. Por ejemplo, para deshabilitar el método TRACE por completo, puedes agregar el siguiente bloque:
location / {
limit_except GET POST HEAD {
deny all;
}
}
Para limitar el método TRACE solo al servidor local, puedes agregar el siguiente bloque:
location / {
limit_except GET POST HEAD TRACE {
deny all;
}
if ($request_method = TRACE) {
return 200;
}
}
Conclusión
El método HTTP TRACE es una herramienta de depuración útil para las APIs, que te permite realizar una prueba de bucle de retorno de mensajes a lo largo de la ruta al recurso de destino. Puede ayudarte a verificar la presencia e identidad de los intermediarios, la integridad y validez de los encabezados y cuerpos, el rendimiento y la latencia de las solicitudes y respuestas, y la seguridad y el cumplimiento de tus APIs.
Para usar el método HTTP TRACE, debes enviar una solicitud al recurso de destino y esperar una respuesta que refleje el mismo mensaje de solicitud, excluyendo cualquier dato confidencial. Puedes usar varias herramientas y frameworks para enviar y analizar solicitudes HTTP TRACE, como Apidog. Apidog ofrece una forma cómoda y sencilla de enviar y analizar solicitudes HTTP TRACE.