- cURL / curl
- Strumento da riga di comando open source e libreria libcurl, per inviare richieste di protocolli come HTTP/HTTPS/FTP da riga di comando tramite URL, è lo strumento più utilizzato dagli sviluppatori per eseguire il debug delle API.
- Metodo HTTP
- Azione di richiesta HTTP, i più comuni sono GET (leggere), POST (creare), PUT (aggiornamento completo), PATCH (aggiornamento parziale), DELETE (eliminare), HEAD (ottenere header), OPTIONS (consultare le capacità del server).
- Header
- Coppie chiave-valore di metadati nella richiesta HTTP, come Content-Type, Authorization, User-Agent, Cookie, Accept, ecc., specificati in curl tramite -H/--header.
- Body
- Parte dati della richiesta HTTP, comune in POST/PUT/PATCH, specificata in curl tramite -d/--data/--data-binary/-F, i formati comuni sono JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Header di richiesta/risposta che indica il tipo di media del body. application/json indica JSON, application/x-www-form-urlencoded indica form codificato URL, multipart/form-data indica form di upload file.
- Autenticazione Basic
- Autenticazione HTTP di base, trasmette nome utente e password tramite l'header Authorization: Basic base64(user:pass), specificata in curl con -u user:pass.
- Bearer Token
- Metodo di autenticazione basato su token, trasmesso tramite l'header Authorization: Bearer <token>, comune in JWT/OAuth2.
- User-Agent
- Header di richiesta che identifica il tipo di client (browser/crawler/script), curl invia per impostazione predefinita "curl/numero versione", molti siti web bloccano UA non browser, comunemente specificato con -A.
- Cookie
- Coppie chiave-valore inviate dal server tramite Set-Cookie e restituite dal browser nelle richieste successive tramite l'header Cookie, per mantenere le sessioni. curl -b invia Cookie, -c salva Cookie.
- Referer
- Header di richiesta che indica l'URL della pagina di origine della richiesta corrente, alcuni controlli anti-hotlink/CSRF lo verificano. Impostato in curl con -e.
- Reindirizzamento (3xx)
- Quando il server restituisce codici di stato 301/302/303/307/308, indica al browser di saltare a un nuovo URL. curl per impostazione predefinita non segue, aggiungi -L/--location per seguire.
- --compressed
- Opzione di curl, aggiunge automaticamente l'header Accept-Encoding: deflate, gzip e decomprime automaticamente la risposta. Senza impostarlo, la risposta potrebbe essere dati compressi illeggibili.
- -k/--insecure
- Opzione di curl, ignora la verifica del certificato HTTPS, solo per ambienti di test con certificati autofirmati, proibita in produzione.
- fetch API
- API di richieste HTTP JavaScript nativa del browser, restituisce Promise, compatibile con i browser moderni.
- Axios
- Libreria client HTTP popolare basata su Promise, compatibile con browser e Node.js, serializzazione JSON automatica, intercettori, annullamento per timeout.
- OkHttp
- Libreria client HTTP Java/Android di Square, alte prestazioni, supporto HTTP/2, pool di connessioni, GZIP trasparente.
- HttpClient (.NET)
- Client HTTP consigliato per C#/.NET, namespace System.Net.Http, API standard di .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet di richiesta HTTP integrato in PowerShell 3.0+, analizza automaticamente le risposte JSON/XML come oggetti PowerShell.