têtes de boucle

têtes de boucle
Curl est l'un des outils les plus utiles lorsque vous travaillez avec le transfert de données URL. Il s'agit d'un utilitaire de ligne de commande simpliste mais puissant qui facilite le transfert de données des données sur un réseau.

Ce tutoriel discutera de la façon dont vous pouvez travailler avec les en-têtes HTTP à l'aide de Curl.

Qu'est-ce qu'un en-tête HTTP?

Un en-tête HTTP fait référence à un champ de la demande ou de la réponse HTTP pour permettre l'adoption d'informations supplémentaires, telles que les métadonnées sur la demande ou la réponse.

Les en-têtes HTTP permettent à un client et à un serveur d'échanger des informations supplémentaires dans une demande ou une réponse spécifique. L'en-tête est composé d'un nom sensible au cas, d'un côlon et de la valeur.

Sa syntaxe est comme indiqué:

Nom de tête: valeur
"accepter": "*/*",
"hôte": "Echo.hoppotch.io ",
"utilisateur-agent": "-o",
"X-country": "nous",
"X-Forwarded-For": "41.90.68.25, 100.64.0.127 ",
"X-Forwarded-proto": "https",
"X-NF-Client-Connection-IP": "172.122.12.122 ",
"x-nf-request-id": "01g48depns1qzf8bz7ys27hz93"

Laissez-nous savoir comment nous pouvons travailler avec les en-têtes HTTP en utilisant Curl.

Installation de boucles

Vous trouverez souvent des boucles installées sur la plupart des systèmes. Cependant, sinon, vous pouvez l'installer via le gestionnaire de packages de votre système.

Debian

$ sudo apt-get updat
$ sudo apt-get install curl

Réhabitude

$ sudo yum Mise à jour
$ sudo yum install curl

Manjaro / arc

$ sudo pacman -sy
$ sudo pacman -s curl

Message brut affichée en boucle

Pour afficher un message brut dans une demande de boucle, nous utilisons l'indicateur -v ou -verbose. L'option nous permet d'afficher des informations détaillées sur la demande, y compris le processus de poignée de main.

$ curl -v https: // echo.hoppotch.Io
Essayant 18.192.76.182: 443…
* Connecté à l'écho.hoppotch.Io (18.192.76.182) Port 443 (# 0)
* Alpn, offrant H2
* Alpn, offrant http / 1.1
* Cafile: / etc / ssl / certificats / ca-certificats.CRT
* Capath: / etc / ssl / certifications
* Connexion SSL en utilisant TLSV1.3 / tls_aes_128_gcm_sha256
* Alpn, serveur accepté pour utiliser H2
* Certificat de serveur:
* Sujet: cn = *.hoppotch.Io
* Date de début: 26 mai 06:07:56 2022 GMT
* Date d'expiration: 24 août 06:07:55 2022 GMT
* Subjectaltname: hôte "Echo.hoppotch.IO "Matted CERT'S" *.hoppotch.io "
* émetteur: c = nous; O = Cryptons; CN = R3
* Certificat SSL Vérifiez OK.
* En utilisant HTTP2, le serveur prend en charge le multiplexage
* L'état de connexion modifié (HTTP / 2 confirmé)
* Copie de données HTTP / 2 dans le tampon de flux dans le tampon de connexion après la mise à niveau: Len = 0
* Utilisation de l'ID de flux: 1 (Proporce facile 0x55b037e12100)
> Get / http / 2
> Hôte: Echo.hoppotch.Io
> Agent utilisateur: Curl / 7.81.0
> accepter: * / *
>
* L'état de connexion modifié (max_concurrent_streams == 250)!
< HTTP/2 200
< access-control-allow-credentials: true
< access-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept
< access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD
< access-control-allow-origin: *
< age: 0
< cache-control: no-cache
< content-type: application/json
< date: Mon, 30 May 2022 20:52:52 GMT
< server: Netlify
< x-nf-request-id: 01G4BBWCR3VP8TV4HEJD0QG375
< content-length: 409
<
* Tlsv1.2 (in), en-tête TLS, données supplémentaires (23):

"Méthode": "Get",
"args": ,
"données": "",
"en-têtes":
"accepter": "*/*",
"hôte": "Echo.hoppotch.io ",
"User-Agent": "Curl / 7.81.0 ",
"X-Country": "Ke",
"X-Forwarded-For": "41.90.68.25, 100.64.0.210 ",
"X-Forwarded-proto": "https",
"X-NF-Client-Connection-IP": "41.90.68.25 ",
"x-nf-request-id": "01g4bbwcr3vp8tv4hejd0qg375"
,
"chemin": "/",
"ISBase64Encoded": faux
* Connexion # 0 pour héberger l'écho.hoppotch.Io laissé intact

À partir de la sortie ci-dessus, nous pouvons voir comment la demande est traitée par le serveur, en commençant par la poignée de main du serveur.

Le mode verbeux est avantageux lors du débogage ou de la recherche de erreurs de configuration dans le serveur.

Curl Show En-têtes uniquement

Pour supprimer toute la sortie et afficher uniquement les en-têtes, nous pouvons utiliser l'indicateur - la tête comme indiqué:

$ curl - head https: // echo.hoppotch.Io
HTTP / 2 200
Access-Control-Allow-Credentials: True
Access-Control-Allow-Headers: Origin, X-Dejeseted-with, Content-Type, Accepter
Access-Control-Allow-Methods: Get, Publier, Post, Patch, Supprimer, Options, Head
Access-Control-Allow-Origin: *
Âge: 0
contrôle du cache: sans cache
Type de contenu: Application / JSON
Date: lun, 30 mai 2022 20:56:26 GMT
serveur: netlify
X-NF-Request-ID: 01G4BC2XH5PBYM2CW57PJV2R1X
Longueur du contenu: 408

La commande ne doit renvoyer que les en-têtes de réponse, comme indiqué dans la sortie ci-dessus.

Vous pouvez également ajouter le -O suivi du chemin cible pour vider la sortie. Par exemple, si votre lien renvoie un tas de HTML, vous pouvez rediriger la sortie vers Dev / NULL comme indiqué:

$ curl -vs -o / dev / null https: // linuxhint.com

La commande doit rediriger la sortie vers / dev / null.

Curl Pass Custom Headers

Si vous faites une demande HTTP, vous devrez peut-être passer des en-têtes personnalisés en utilisant Curl. Vous pouvez utiliser le drapeau -H suivi de l'en-tête et de la valeur.

Considérez la syntaxe ci-dessous:

curl -h 'en-tête: valeur' ​​http: // exemple.com

Par exemple:

$ curl -h 'accepté-langage: en-us' https: // echo.hoppotch.Io

"Méthode": "Get",
"args": ,
"données": "",
"en-têtes":
"accepter": "*/*",
"Language accepté": "en-us",
"hôte": "Echo.hoppotch.io ",
"User-Agent": "Curl / 7.81.0 ",
"X-Country": "Ke",
"X-Forwarded-For": "41.90.68.25, 100.64.0.210 ",
"X-Forwarded-proto": "https",
"X-NF-Client-Connection-IP": "41.90.68.25 ",
"x-nf-request-id": "01g4bcgjyj46yt05mve7wtayzt"
,
"chemin": "/",
"ISBase64Encoded": faux

Nous passons l'en-tête de langue acceptée avec la valeur en-us à l'URL cible dans la demande ci-dessus.

Curl Ajouter plusieurs en-têtes

Pour passer plusieurs en-têtes, vous pouvez donner le drapeau -H à plusieurs reprises, comme indiqué dans la syntaxe ci-dessous:

$ curl -h 'en-tête: valeur' ​​-h 'en-tête: valeur' ​​http: // exemple.com

Par exemple:

$ curl -h 'accepté en langage: en-us' -h 'x-country: us' https: // echo.hoppotch.Io

Vous pouvez vérifier la valeur définie dans les en-têtes résultants comme indiqué:

en tête vide de pass

Vous pouvez passer un en-tête vide en utilisant la syntaxe ci-dessous:

$ curl -h 'en-tête;' http: // Exemple.com

Par exemple:

curl -h 'accepté-langage; https: // echo.hoppotch.Io

La sortie résultante est comme indiqué:

Remarque La valeur de l'en-tête spécifié est vide.

Conclusion

Cet article a discuté de diverses méthodes et techniques d'utilisation des en-têtes dans Curl. À l'aide de ce tutoriel, vous comprenez comment afficher les en-têtes dans une demande, envoyer des en-têtes simples ou multiples et enfin, envoyer des en-têtes vides.