Feuille de rappel cURL
Commandes utiles de cUrl avec paramètres
Voici un récapitulatif des meilleures commandes cURL avec leurs paramètres :
L’image ci-dessus a été générée par Flux - modèle d’IA texte à image.
Utilisation de base de cURL
- Télécharger un fichier :
curl http://example.com/file.zip -o file.zip
- Télécharger plusieurs fichiers :
curl -O URL1 -O URL2
- Suivre les redirections :
curl -L http://example.com/file
- Afficher uniquement les en-têtes :
curl -I http://example.com
Authentification
- Authentification basique :
curl -u username:password http://example.com
- Utiliser le fichier .netrc :
curl --netrc-file .netrc http://example.com
Méthodes HTTP
- Demande POST :
curl -X POST -d 'name=value' http://example.com
- Demande PUT :
curl -X PUT -d @file http://example.com
- Méthode personnalisée :
curl -X METHODE http://example.com
En-têtes et données
- Ajouter un en-tête personnalisé :
curl -H "X-En-tête: Valeur" http://example.com
- Envoyer des données JSON :
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
- Envoyer des données de formulaire :
curl -F "key=value" -F "file=@localfile" http://example.com
Options SSL/TLS
- Ignorer la vérification du certificat SSL :
curl -k https://example.com
- Utiliser un certificat client :
curl --cert cert.pem --key key.pem https://example.com
Proxy et réseau
- Utiliser un proxy :
curl -x proxysever.server.com:PORT http://example.com
- Limiter le taux de téléchargement :
curl --limit-rate 1000B -O http://example.com/file
Contrôle de la sortie
- Mode silencieux :
curl -s http://example.com
- Mode verbeux :
curl -v http://example.com
- Écrire la sortie dans un fichier :
curl -o file.html http://example.com
- Enregistrer avec le nom de fichier distant :
curl -O http://example.com/file.zip
Divers
- Reprendre un téléchargement échoué :
curl -C - -o partial_file.zip http://example.com/file.zip
- Définir un délai d’attente :
curl --connect-timeout 10 http://example.com
- Utiliser un fichier de configuration :
curl -K config_file http://example.com
Ce récapitulatif couvre les commandes cURL les plus couramment utilisées et leurs paramètres, offrant un référentiel rapide pour diverses opérations HTTP et transferts de données.
Commandes avancées de curl
Voici quelques commandes avancées de curl pour le débogage :
-
Sortie verbeuse :
curl -v https://example.com
Cette commande fournit des informations détaillées sur la requête et la réponse, y compris les en-têtes et les détails de la connexion. -
Déchargement complet de trace :
curl --trace - https://example.com
Cela affiche un hexdump de toutes les données entrantes et sortantes, offrant une vue complète de toute la communication. -
Trace avec horodatage :
curl --trace - --trace-time https://example.com
Cela ajoute des horodatages à la sortie de trace, aidant à analyser les problèmes liés au timing. -
Afficher uniquement les en-têtes de réponse :
curl -s -o /dev/null -D - https://example.com
Cette commande affiche uniquement les en-têtes de réponse, utile pour une analyse rapide des en-têtes. -
Afficher uniquement les en-têtes de requête :
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'
Cette commande complexe filtre uniquement les en-têtes de requête, utile pour inspecter ce qui est envoyé. -
Utiliser le débogueur Pantheon :
curl -I -H "Pantheon-Debug:1" https://example.com
Cette commande utilise l’en-tête de débogage de Pantheon pour obtenir des informations supplémentaires sur une requête, utile pour les sites hébergés sur Pantheon. -
Forcer le protocole HTTP/2 :
curl --http2 https://example.com
Cela garantit l’utilisation du protocole HTTP/2, qui peut être combiné avec -I pour vérifier le support HTTP/2. -
Débogage avec netcat : Dans un terminal :
nc -l 1234
Dans un autre :curl http://127.0.0.1:1234
Cela permet de voir exactement ce que curl envoie, utile pour le débogage des payloads.
Ces commandes avancées offrent des capacités de débogage puissantes, permettant aux développeurs d’inspecter divers aspects des communications HTTP et de résoudre des problèmes complexes.
Cas d’utilisation courants de curl
curl est un outil de ligne de commande polyvalent avec de nombreuses applications. Voici quelques-uns des cas d’utilisation les plus courants de curl :
Interactions Web
- Téléchargement de fichiers : curl peut télécharger des fichiers à partir d’URL.
- Web scraping : curl peut récupérer le contenu des pages web pour des besoins de scraping.
- Test de sites web : curl est utile pour vérifier si un site web est accessible et pour récupérer son contenu.
Interactions API
- Envoi de requêtes API : curl prend en charge diverses méthodes HTTP (GET, POST, PUT, DELETE) pour interagir avec les API.
- Test des points de terminaison API : curl fournit un moyen rapide de tester et de déboguer les points de terminaison API sans avoir besoin d’un client API dédié.
Dépannage réseau
- Vérification de la connectivité : curl peut être utilisé pour vérifier les connexions réseau et dépanner les problèmes.
- Test du DNS : curl permet de forcer l’utilisation de serveurs DNS spécifiques pour dépanner les problèmes liés au DNS.
- Inspection des en-têtes : curl peut afficher les en-têtes HTTP, ce qui est utile pour le débogage.
Transfert de données
- Opérations FTP : curl prend en charge les transferts de fichiers via le protocole de transfert de fichiers (FTP).
- Interactions SMTP : curl peut être utilisé pour envoyer des e-mails via le protocole de transfert de courrier simple (SMTP).
Sécurité et authentification
- Connexions SSL : curl prend en charge les connexions sécurisées via SSL/TLS.
- Authentification : curl peut gérer diverses méthodes d’authentification, y compris l’authentification basique et les certificats clients.
Développement et débogage
- Simulation de différentes méthodes HTTP : curl permet aux développeurs de tester facilement diverses méthodes HTTP.
- Journalisation verbeuse : le mode verbeux de curl fournit des informations détaillées sur le cycle de requête-réponse, aidant au débogage.
Ces cas d’utilisation démontrent la flexibilité de curl en tant qu’outil pour les interactions web, le test d’API, le dépannage réseau et les tâches de développement.
Test de performance d’un site web avec cURL
curl est un outil puissant pour tester la performance d’un site web. Voici comment vous pouvez l’utiliser pour mesurer divers aspects de la vitesse de chargement d’un site web :
Test de performance de base
Pour obtenir une mesure simple du temps de chargement d’un site web, utilisez cette commande :
curl -o /dev/null -s -w "Temps total: %{time_total}s\n" "https://example.com"
Cette commande affichera le temps total nécessaire pour charger le site web[2].
Métriques de performance détaillées
Pour une analyse plus approfondie, vous pouvez utiliser curl pour mesurer plusieurs métriques de performance :
curl -s -w 'Test du temps de réponse du site web pour :%{url_effective}\n\nTemps de recherche DNS:\t\t%{time_namelookup}\nTemps de connexion:\t\t%{time_connect}\nTemps avant transfert:\t%{time_pretransfer}\nTemps de début de transfert:\t%{time_starttransfer}\n\nTemps total:\t\t%{time_total}\n' -o /dev/null https://example.com
Cette commande fournit une analyse détaillée des différentes étapes du processus de chargement, y compris le temps de recherche DNS, le temps de connexion et le temps total[1].
Métriques avancées
Pour une analyse encore plus détaillée, vous pouvez inclure des métriques supplémentaires :
curl -o /dev/null -w "Version HTTP: %{http_version}\nTaille de la page: %{size_download} octets\nCode de réponse: %{response_code}\nRecherche DNS: %{time_namelookup} sec\nTemps de connexion: %{time_connect} sec\nTemps jusqu'au premier octet: %{time_starttransfer} sec\nTemps total: %{time_total} sec\n" -s https://example.com
Cette commande inclut des informations sur la version HTTP, la taille de la page et le code de réponse[3].
Benchmarking de plusieurs requêtes
Pour tester la cohérence ou surveiller la performance au fil du temps, vous pouvez utiliser une boucle pour effectuer plusieurs requêtes :
for i in {1..5}; do curl -o /dev/null -s -w "Requête $i Temps total: %{time_total}\n" https://example.com; done
Cela exécutera le test cinq fois et affichera le temps total pour chaque requête[3].
Création d’un script de test de performance
Vous pouvez créer un simple script bash pour automatiser ces tests et enregistrer les résultats :
#!/bin/bash
curl -s -w 'Test du temps de réponse du site web pour :%{url_effective}\n\nTemps de recherche DNS:\t\t%{time_namelookup}\nTemps de connexion:\t\t%{time_connect}\nTemps avant transfert:\t%{time_pretransfer}\nTemps de début de transfert:\t%{time_starttransfer}\n\nTemps total:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Remplacez “URL” par le site web que vous souhaitez tester. Ce script enregistrera les résultats dans un fichier avec une date[5].
En utilisant ces commandes curl et scripts, vous pouvez efficacement mesurer et surveiller la performance d’un site web, vous aidant à identifier les goulots d’étranglement potentiels et à optimiser les temps de chargement.