- cURL / curl
- Herramienta de línea de comandos de código abierto y biblioteca libcurl, para enviar peticiones de protocolos como HTTP/HTTPS/FTP por línea de comandos mediante URL, es la herramienta más utilizada por desarrolladores para depurar APIs.
- Método HTTP
- Acción de petición HTTP, comunes son GET (leer), POST (crear), PUT (actualización completa), PATCH (actualización parcial), DELETE (eliminar), HEAD (obtener cabeceras), OPTIONS (consultar capacidades del servidor).
- Cabecera (Header)
- Pares clave-valor de metadatos en la petición HTTP, como Content-Type, Authorization, User-Agent, Cookie, Accept, etc., especificados en curl mediante -H/--header.
- Cuerpo (Body)
- Parte de datos de la petición HTTP, común en POST/PUT/PATCH, especificada en curl mediante -d/--data/--data-binary/-F, formatos comunes son JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Cabecera de petición/respuesta que indica el tipo de medio del body. application/json indica JSON, application/x-www-form-urlencoded indica formulario codificado en URL, multipart/form-data indica formulario de subida de archivos.
- Autenticación Basic
- Autenticación básica HTTP, transmite usuario y contraseña mediante la cabecera Authorization: Basic base64(user:pass), especificada en curl con -u user:pass.
- Bearer Token
- Método de autenticación basado en tokens, transmitido mediante la cabecera Authorization: Bearer <token>, común en JWT/OAuth2.
- User-Agent
- Cabecera de petición que identifica el tipo de cliente (navegador/rastreador/script), curl envía por defecto "curl/número de versión", muchos sitios web bloquean UAs no de navegador, comúnmente especificado con -A.
- Cookie
- Pares clave-valor enviados por el servidor mediante Set-Cookie y devueltos por el navegador en peticiones posteriores mediante la cabecera Cookie, para mantener sesiones. curl -b envía Cookie, -c guarda Cookie.
- Referer
- Cabecera de petición que indica la URL de la página de origen de la petición actual, algunas comprobaciones de anti-hotlink/CSRF la verifican. Establecida en curl con -e.
- Redirección (3xx)
- Cuando el servidor devuelve códigos de estado 301/302/303/307/308, indica al navegador que salte a una nueva URL. curl por defecto no sigue, añade -L/--location para seguir.
- --compressed
- Opción de curl, añade automáticamente la cabecera Accept-Encoding: deflate, gzip y descomprime automáticamente la respuesta. Sin establecer, la respuesta puede ser datos comprimidos ilegibles.
- -k/--insecure
- Opción de curl, omite la verificación de certificado HTTPS, solo para entornos de prueba con certificados autofirmados, prohibido en producción.
- fetch API
- API de peticiones HTTP JavaScript nativa del navegador, devuelve Promise, compatible con navegadores modernos.
- Axios
- Popular biblioteca cliente HTTP basada en Promise, compatible con navegador y Node.js, serialización JSON automática, interceptores, cancelación por tiempo de espera.
- OkHttp
- Biblioteca cliente HTTP Java/Android de Square, alto rendimiento, compatible con HTTP/2, pool de conexiones, GZIP transparente.
- HttpClient (.NET)
- Cliente HTTP recomendado para C#/.NET, espacio de nombres System.Net.Http, API estándar de .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet de petición HTTP integrado en PowerShell 3.0+, analiza automáticamente respuestas JSON/XML como objetos de PowerShell.