Fiddler un proxy para depurar aplicaciones

En Desarrollo, Software por

Hoy vamos a hablar de una herramienta que se ha convertido en fundamental cuando desarrollo aplicaciones para escritorio que necesitan hacer peticiones HTTP o HTTPS. Se trata del programa Fiddler un proxy para depurar aplicaciones. La funcionalidad de Fiddler es muy amplia y la veremos con más detalle a continuación.

Fiddler un proxy para depurar aplicaciones

Este programa lo descubrí cuando trataba de crear una aplicación de escritorio para crear nuevos posts en un foro XenForo (más adelante quizás comparta esta aplicación en Vozidea). Para programar esta aplicación tenía dos posibilidades:

  • Leer el código fuente de XenForo para reconocer que peticiones HTTP se incluían en todo el proceso de creación de un post, pero esta vía podría llevar meses y no era una buena opción.
  • La segunda opción fue emplear Fiddler para capturar las peticiones HTTP que se realizaban mientras enviaba un nuevo post en XenForo. En pocos minutos ya tenía todo lo necesario para ponerme a programar.

Análisis del proxy Fiddler para depurar aplicaciones

Fiddler nos permite capturar el tráfico de forma sencilla para analizar las peticiones HTTP/s que se realizan en nuestro PC. Es una herramienta totalmente gratuita y muy completa por lo que sino tienes conocimientos básicos sobre el protocolo HTTP quizás te resulte confuso su uso.

Configurar Fiddler en los diferentes navegadores.

Fiddler es compatible con la mayoría de navegadores y tan fácil de usar como ejecutar Fiddler antes de abrir nuestro navegador y tener la opción Fiddler → Capture Traffic (F12) activada. Lo anterior es válido para los navegadores Chrome, Opera e Internet Explorer pero en FireFox necesita de una configuración extra ya que no usa la API WinInet.

Hay dos formas de configurar Fiddler en FireFox:

  • La primera forma, al instalar Fiddler se instala automáticamente una extensión llamada FiddlerHook para FireFox. A través del menú herramientas (ALT + T) podemos configurar Monitor with Fiddler → Use Fiddler Automatically y FireFox enviará automáticamente el tráfico a Fiddler si este está activo. Más detalles sobre FiddlerHook aquí.
  • La seguda forma consiste en configurar Opciones → Avanzado → Red y en la configuración de la conexión editamos para que use un proxy de Ip 127.0.0.1 y puerto 8888. Más información a cerca de esta configuración aquí.

Desencriptar tráfico HTTPS con Fiddler.

Fiddler también captura y desencripta el tráfico HTTPS. En los navegadores Chrome y Opera lo hace de forma automática sin ninguna configuración extra, pero en FireFox necesita realizar unos ajustes para poder desencriptar el tráfico HTTPS. Como realizar los ajustes extra para desencriptar tráfico HTTPS en FireFox lo puedes encontrar aquí.

De todo lo anterior se deduce que la forma más fácil de usar Fiddler es con Chrome porque para los usuarios de FireFox es un poco más compleja la configuración.

Fiddler para depurar aplicaciones.

Otra de las grandes ventajas de Fiddler es que podemos usarlo en aplicaciones que realizan peticiones HTTP para capturarlas y así ver en tiempo real que peticiones se realizan y cómo. Normalmente las librerías HTTP de los diferentes lenguajes de programación nos permiten establecer un proxy y esto es lo que tenemos que hacer usando los datos de Fiddler, que recordemos eran:

  • Ip: 127.0.0.1
  • Puerto: 8888

Funcionalidad de Fiddler.

Las diferentes funciones y opciones de Fiddler son muy extensas y explicarlas todas nos llevaría a un artículo interminable pero si mostraré las opciones más interesantes y útiles:

  • Estadísticas: nos muestra tiempos de respuesta, tamaño de la respuesta y estadísticas de rendimiento.
  • Inspeccionado: permite explorar los diferentes elementos de una respuesta HTTP como las cabeceras, el cuerpo, las cookies, etc.
  • AutoResponder: nos permite enviar una respuesta previamente guardada en disco en lugar de recibirla de un servidor de internet.
  • Componer: nos permite crear peticiones HTTP manualmente editando las cabeceras de la petición.
  • Filtros: permite establecer una serie de filtros para ignorar peticiones de ciertos hosts, de ciertas procesos o incluso crear reglas avanzadas de filtros.
  • Log: almacena toda la actividad y mensajes de notificación durante la ejecución Fiddler.

Fiddler no es una herramienta para usuarios nóveles sin conocimientos del protocolo HTTP pero puedes hacerte con las nociones básicas en los artículos Protocolo HTTP para desarrolladores (parte I) y Protocolo HTTP para desarrolladores (parte II).