Una de las habilidades esenciales para un desarrollador y administrador de sistemas es depurar la aplicación, la API o los servicios, y conocer las herramientas adecuadas es un salvavidas.
¿Qué es la depuración?
Si ve dramas policíacos, entonces la idea que hay detrás de la depuración no le resultará extraña. La depuración es un proceso e implica muchas tácticas. Es la búsqueda sistemática y la resolución de problemas y errores dentro de un programa.
Además, la depuración resuelve todos los problemas que pueden impedir el correcto funcionamiento del software o, en este caso, de la aplicación web. El proceso de depuración de su API o aplicación web implica principalmente un intento de reproducir el problema.
En consecuencia, surge la necesidad de enviar una solicitud de API. Aquí es donde radica el problema. La mayoría de los navegadores le impedirán cambiar el encabezado de origen, e incluso los límites de tamaño de la URL.
En otras palabras, para reproducir el problema, es posible que tenga que realizar algunas manipulaciones HTTP. Y esto requerirá algunas potentes herramientas de depuración.
Todos los componentes o tácticas del proceso de depuración incluyen;
- Depuración interactiva
- Análisis del flujo de control
- Pruebas unitarias
- Pruebas de integración
- Análisis de archivos de registro
- Supervisión
- Volcados de memoria
- Creación de perfiles
Es interesante saber que algunos clientes HTTP, es decir, los navegadores web, llevan incorporadas herramientas para desarrolladores web. Estas herramientas pueden utilizarse para depurar API. Teniendo esto en cuenta, no es necesario escribir su herramienta de depuración.
¿Qué es un cliente HTTP?
Supongamos que piensa en construir un sistema que aproveche el protocolo HTTP para la comunicación distribuida o HTTP-aware, como una aplicación web. Entonces es posible que desee echar un vistazo al componente cliente HTTP.
El HTTP, o Protocolo de Transferencia de Hipertexto, es la razón por la que usted puede comunicarse o transferir datos en la web, cada vez que teclea una URL. Es un protocolo de aplicación que hace posible la navegación por Internet.
Ahora bien, el Cliente HTTP es un sistema que envía peticiones a un servidor en formato de texto HTTP y, a su vez, recibe una respuesta del mismo servidor.
Es esencial conocer las diferencias entre un cliente HTTP y el servidor HTTP.
Diferencias entre cliente y servidor HTTP
Mientras que el cliente HTTP suele ser un navegador web o una utilidad, los servidores HTTP actúan como proxies de los servidores de aplicaciones.
En palabras más sencillas, sus smartphones, televisores, PlayStation, en realidad cualquier dispositivo que pueda conectarse a Internet, probablemente esté utilizando un cliente HTTP.
Del mismo modo, el servidor HTTP es el ordenador de la red al que se conecta el cliente HTTP. La relación que comparten es más bien conversacional. En la que el cliente HTTP envía una solicitud y el servidor HTTP responde.
Ejemplos de peticiones HTTP
Solicitudes | Resultados |
GET | Solicita el recurso completo |
HEAD | Solicita el recurso sin el cuerpo |
POST | Añade contenido a un recurso web existente |
PUT | Modifica un recurso web existente |
DELETE | Elimina un recurso especificado |
TRACE | Muestra los cambios realizados en un recurso web |
OPCIONES | Muestra los métodos HTTP disponibles para la URL |
CONECTAR | Convierte la conexión solicitada en un túnel TCP/IP transparente |
PATCH | Modifica parcialmente un recurso web |
Depurar la web nunca ha sido tan fácil. Con estas herramientas, por fin podrá relajarse mientras hace lo que le gusta.
HTTPie
El objetivo último de HTTPie es hacer que la interacción CLI con la interfaz de usuario de los servicios web sea amigable. Esta herramienta proporciona un comando HTTP para enviar peticiones, todo ello con el uso de una sintaxis natural.
HTTPie puede utilizarse para depurar, probar y conectarse con servidores HTTP. Soporta HTTP, HTTPS y proxies.
Aspectos destacados
- Sistema de soporte JSON incorporado
- Puede instalarse en Windows, macOS y Linux
- Cabeceras y método HTTP personalizados
- Envío de formularios
- Modo sin conexión
- Autenticación básica y digest
- Sintaxis intuitiva
¿No quiere instalar HTTPie localmente?
No se preocupe, ahora puede ejecutarlo en línea.
Fiddler
Fiddler es un proxy de depuración web multiplataforma. Puede ayudar a manipular sesiones web, inspeccionar el tráfico HTTPS y monitorizar el tráfico entre su ordenador e Internet.
Puede instalar Fiddler en Windows, macOS y Linux. Es probablemente la herramienta más popular para depurar el tráfico.
RESTer
RESTer está disponible como extensión para Google Chrome y Firefox.
Destaca
- Cabeceras de autorización con autenticación Basic o Auth2
- Ver el historial de peticiones
- Realizar solicitudes con cualquier método, URL, cuerpo y cabeceras personalizadas
- Pruebas y depuración de API
Paw
Paw es un cliente HTTP con todas las funciones, que le permite enviar todo tipo de peticiones HTTP. Con Paw, puede probar sus API y también explorar otras nuevas.
Paw está construido exclusivamente para macOS, y tiene características que son fáciles de usar. Puede importar y generar swagger, RAML, etc. y es compatible con el esquema JSON.
Aspectos destacados
- Soporta múltiples autenticaciones como basic, OAuth, hawk, digest
- Valores dinámicos
- Entornos
- Extensión mediante extensiones basadas en java-script
- Cookies y manipulación de sesiones
Requester
Requester es un cliente robusto que combina las características de HTTPie, Postman y Paw. Sólo funciona con el editor Sublime Text.
Aspectos destacados
- Soporta JSON Schemer
- Colecciones de solicitudes e historial
- Salida coloreada con resaltado de sintaxis
- UX moderna
- Las cookies, las cabeceras personalizadas, el cuerpo de la solicitud y los parámetros de consulta son fáciles de configurar.
- Soporte GraphQL
Postman
¿Siempre trabajando en APIs?
Se enamorará de Postman.
Postman es indiscutiblemente uno de los clientes HTTP más populares utilizados para depurar aplicaciones web. Permite un desarrollo de API más rápido y sencillo.
Aspectos destacados
- Incluye una potente GUI, con una interfaz fácil de usar
- Historial de peticiones
- Pruebas automatizadas con collection runner
- Monitorización flexible de API
- Soporta REST, GraphQL, SOAP
- Soporte de múltiples cargas útiles, incluyendo JSON y HTML
cURL
cURL es una herramienta de línea de comandos que se utiliza para enviar datos utilizando la sintaxis URL.
Lo bueno es que cURL está instalado por defecto en la mayoría de los sistemas operativos con sabor a UNIX. Es compatible con muchos protocolos, como FTP, LDAP, POP3, SMTP, GOPHER, IMAP, HTTP, HTTPS y SCP.
Proxy Charles
Como su nombre indica, Charles proxy es un proxy HTTP e inverso. Funciona enrutando el tráfico local a través de él.
Puede utilizar Charles para proxy SSL, estrangulamiento de ancho de banda, depuración AJAX, puntos de interrupción y mucho más.
Whistle
Whistle es una herramienta de depuración multiplataforma basada en NodeJS para capturar y manipular tráfico HTTP, HTTPS, WebSocket y TCP.
Primero, necesita instalar NodeJS y luego Whistle usando npm.
npm install -g whistle
Siempre puede ampliar las funciones con el complemento si las funciones predeterminadas no se adaptan a sus necesidades.
mitmproxy
mitmproxy es un proxy HTTPS de código abierto muy popular entre los investigadores de seguridad. Utilícelo como CLI, web o API Python.
La interfaz web le ofrece el aspecto de las herramientas para desarrolladores de Chrome. También es compatible con HTTP/2.
Proxyman
Similar al Paw mencionado anteriormente, Proxyman es una aplicación proxy de depuración web nativa de macOS de primera calidad.
Actúa como un hombre en el medio para el tráfico web y ofrece muchas funciones, entre las que se incluyen las siguientes.
- Proxy SSL
- Repetición de peticiones
- Protobuf
- ReWrite scripting
- Mapa local y remoto
- Filtrado de contenidos
- Resaltado de sintaxis
La interfaz de usuario de Proxyman es muy amigable.
Kit de herramientas HTTP
HTTP Toolkit es un depurador HTTP de código abierto. Es una aplicación de escritorio disponible para Windows, Mac y Linux.
A diferencia de otros depuradores HTTP, HTTP Toolkit proporciona una interceptación dirigida automáticamente para clientes específicos, incluyendo la configuración HTTPS, en lugar de interceptar todo desde todo su ordenador, y así evita capturar tráfico irrelevante o interrumpir otras aplicaciones.
Con un solo clic puede interceptar ventanas de navegadores (incluidos Chrome, Firefox y otros), lenguajes backend/scripting como Node.js, Python y PHP, cualquier herramienta de línea de comandos, aplicaciones Electron o dispositivos y emuladores Android (incluida la interceptación HTTPS a nivel de sistema).
HTTP Toolkit es compatible con las funciones estándar del depurador HTTP, incluidos los puntos de interrupción y la reescritura del tráfico HTTP(S), el filtrado y la búsqueda del tráfico recopilado, y el resaltado y el autoformateo para muchos formatos populares de cuerpo de solicitud y respuesta. Las funciones básicas para interceptar, inspeccionar y reescribir HTTP(S) están disponibles de forma gratuita, mientras que algunas funciones premium avanzadas como la importación/exportación y las reglas de imitación automatizadas requieren una cuenta de pago.
Conclusión
Los anteriores clientes HTTP y proxy de depuración web pueden ayudarle de muchas maneras. La mayoría de ellos son gratuitos u ofrecen una versión de prueba, así que pruebe algunos de ellos para ver lo que funciona para usted.
¡Feliz resolución de problemas!