Este tutorial discutirá cómo puede trabajar con los encabezados HTTP usando curl.
¿Qué es un encabezado HTTP??
Un encabezado HTTP se refiere a un campo en la solicitud o respuesta HTTP para habilitar la aprobación de información adicional, como metadatos sobre la solicitud o respuesta.
Los encabezados HTTP permiten que un cliente y servidor intercambie información adicional dentro de una solicitud o respuesta específica. El encabezado se compone de un nombre sensible a la caja, un colon y el valor.
Su sintaxis es como se muestra:
Nombre del encabezado: valor
"aceptar": "*/*",
"Anfitrión": "Echo.hoppscotch.io ",
"agente de usuario": "-o",
"X-country": "nosotros",
"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"
Aprendamos cómo podemos trabajar con los encabezados HTTP usando curl.
Instalación de curl
A menudo encontrará curl instalado en la mayoría de los sistemas. Sin embargo, si no, puede instalarlo a través del Administrador de paquetes de su sistema.
Debian
$ sudo apt-get actualización
$ sudo apt-get instalación curl
Rehl
$ sudo yum actualización
$ sudo yum instalación curl
Manjaro/arco
$ sudo Pacman -sy
$ sudo pacman -s curl
Mensaje RAW de visualización de curl
Para mostrar un mensaje en bruto en una solicitud de curl, usamos el indicador -v o -verbose. La opción nos permite mostrar información detallada sobre la solicitud, incluido el proceso de apretón de manos.
$ curl -v https: // echo.hoppscotch.IO
Probando 18.192.76.182: 443 ..
* Conectado al eco.hoppscotch.io (18.192.76.182) Puerto 443 (#0)
* ALPN, ofreciendo H2
* ALPN, ofreciendo http/1.1
* Cafile:/etc/ssl/certs/ca-certificates.CRT
* Capath:/etc/ssl/certs
* Conexión SSL usando TLSV1.3 / TLS_AES_128_GCM_SHA256
* ALPN, servidor aceptado para usar H2
* Certificado del servidor:
* Asunto: CN =*.hoppscotch.IO
* Fecha de inicio: 26 de mayo 06:07:56 2022 GMT
* Fecha de vencimiento: 24 de agosto 06:07:55 2022 GMT
* SUSTAULTNAME: Host "Echo.hoppscotch.IO "Certs coincidente"**.hoppscotch.io "
* Emisor: c = us; O = vamos a cifrar; CN = R3
* Certificado SSL Verificar OK.
* Usando http2, el servidor admite la multiplexación
* Estado de conexión cambiado (HTTP/2 confirmado)
* Copiar datos HTTP/2 en el búfer de flujo al búfer de conexión después de la actualización: len = 0
* Uso de la ID de transmisión: 1 (mango fácil 0x55b037e12100)
> Get / http / 2
> Host: Echo.hoppscotch.IO
> agente de usuario: curl/7.81.0
> Aceptar: */ *
>
* Estado de conexión cambiado (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), encabezado TLS, datos suplementarios (23):
"Método": "Get",
"Args": ,
"datos": "",
"Encabezados":
"aceptar": "*/*",
"Anfitrión": "Echo.hoppscotch.io ",
"Agente de usuario": "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"
,
"camino": "/",
"Isbase64Coded": Falso
* Conexión #0 para host Echo.hoppscotch.Io se fue intacto
De la salida anterior, podemos ver cómo el servidor procesa la solicitud, comenzando con el apretón de manos del servidor.
El modo detallado es ventajoso al depurar o encontrar cualquier configuración errónea en el servidor.
solo encabezados de espectáculos de curl
Para suprimir toda la salida y mostrar solo los encabezados, podemos usar el indicador de la cabeza como se muestra:
$ curl -Head https: // echo.hoppscotch.IO
Http/2 200
Access-Control-allow-credenciales: verdadero
Access-Control-allow-Headers: origen, X-requested con tipo de contenido, Aceptar
Access-Control-allow-métodos: obtener, publicar, poner, parche, eliminar, opciones, cabeza
Access-Control-Allow-Origin: *
Edad: 0
Cache-Control: no cache
Tipo de contenido: Aplicación/JSON
Fecha: Lun, 30 de mayo de 2022 20:56:26 GMT
servidor: netlify
x-nf-request-id: 01g4bc2xh5pbym2cw57pjv2r1x
Contenido-longitud: 408
El comando solo debe devolver los encabezados de respuesta, como se muestra en la salida anterior.
También puede agregar el -o seguido de la ruta de destino para descargar la salida. Por ejemplo, si su enlace devuelve un montón de HTML, puede redirigir la salida a Dev/NULL como se muestra:
$ curl -vs -o/dev/null https: // linuxhint.comunicarse
El comando debe redirigir la salida a /dev /null.
encabezados personalizados
Si realiza una solicitud HTTP, es posible que deba pasar encabezados personalizados usando Curl. Puede usar la bandera -h seguida del encabezado y el valor.
Considere la sintaxis que se muestra a continuación:
Curl -h 'Header: Value' http: // Ejemplo.comunicarse
Por ejemplo:
$ Curl -h 'Aceptado Language: en-us' https: // echo.hoppscotch.IO
"Método": "Get",
"Args": ,
"datos": "",
"Encabezados":
"aceptar": "*/*",
"Lenguaje aceptado": "en-us",
"Anfitrión": "Echo.hoppscotch.io ",
"Agente de usuario": "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"
,
"camino": "/",
"Isbase64Coded": Falso
Pasamos el encabezado del idioma aceptado con el valor EN-US a la URL de destino en la solicitud anterior.
CURL Agregue múltiples encabezados
Para pasar múltiples encabezados, puede dar la bandera -h varias veces, como se muestra en la sintaxis a continuación:
$ curl -h 'encabezado: valor' -h 'encabezado: valor' http: // ejemplo.comunicarse
Por ejemplo:
$ curl -h 'en idioma aceptado: en-us' -h 'x-country: us' https: // echo.hoppscotch.IO
Puede verificar el valor establecido en los encabezados resultantes como se muestra:
Curl pase el encabezado vacío
Puede pasar un encabezado vacío usando la sintaxis a continuación:
$ curl -h 'encabezado'; http: // ejemplo.comunicarse
Por ejemplo:
curl -h 'en idioma aceptado'; https: // eco.hoppscotch.IO
La salida resultante es como se muestra:
Tenga en cuenta que el valor para el encabezado especificado está vacío.
Este artículo discutió varios métodos y técnicas del uso de encabezados en curl. Usando este tutorial, comprende cómo ver encabezados en una solicitud, enviar encabezados individuales o múltiples, y finalmente, envíe encabezados vacíos.