Coloque cabeçalhos

Coloque cabeçalhos
O CURL é uma das ferramentas mais úteis ao trabalhar com a transferência de dados da URL. É um utilitário simplista, mas poderoso, que facilita a transferência de dados de dados em uma rede.

Este tutorial discutirá como você pode trabalhar com cabeçalhos HTTP usando CURL.

O que é um cabeçalho HTTP?

Um cabeçalho HTTP refere -se a um campo na solicitação ou resposta HTTP para permitir a aprovação de informações adicionais, como metadados sobre a solicitação ou resposta.

Cabeçalhos HTTP permitem que um cliente e servidor trocem informações adicionais em uma solicitação ou resposta específica. O cabeçalho é composto por um nome sensível ao caso, um cólon e o valor.

Sua sintaxe é como mostrado:

Nome do cabeçalho: Valor
"aceitar": "*/*",
"Host": "Echo.HoppScotch.io ",
"Usuário-agente": "-o",
"X-Country": "nós",
"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"

Vamos aprender como podemos trabalhar com cabeçalhos HTTP usando CURL.

Instalando o CURL

Você frequentemente encontrará o CLL instalado na maioria dos sistemas. No entanto, se não, você pode instalá -lo através do gerenciador de pacotes do seu sistema.

Debian

Atualização $ sudo apt-get
$ sudo apt-get install curl

Rehl

Atualização $ sudo yum
$ sudo yum install surl

Manjaro/Arch

$ sudo pacman -y
$ sudo pacman -s curl

Curl Exibir mensagem bruta

Para exibir uma mensagem bruta em uma solicitação de curl, usamos a bandeira -v ou -verbose. A opção nos permite mostrar informações detalhadas sobre a solicitação, incluindo o processo de handshake.

$ curl -v https: // eco.HoppScotch.io
Tentando 18.192.76.182: 443…
* Conectado ao eco.HoppScotch.io (18.192.76.182) Porta 443 (#0)
* Alpn, oferecendo H2
* Alpn, oferecendo http/1.1
* CAFILE:/etc/ssl/certs/Certificates.Crt
* Capath:/etc/ssl/certs
* Conexão SSL usando TLSV1.3 / TLS_AES_128_GCM_SHA256
* ALPN, servidor aceito para usar H2
* Certificado de servidor:
* Assunto: CN =*.HoppScotch.io
* Data de início: 26 de maio 06:07:56 2022 GMT
* Data de expiração: 24 de agosto 06:07:55 2022 GMT
* SubstetaltName: Host "Echo.HoppScotch.io "Matched Cert's"*.HoppScotch.io "
* emissor: c = nós; O = vamos criptografar; Cn = r3
* Certificado SSL Verifique ok.
* Usando HTTP2, o servidor suporta multiplexação
* O estado de conexão alterado (http/2 confirmado)
* Copiando dados http/2 no buffer de fluxo para buffer de conexão após a atualização: len = 0
* Usando ID do fluxo: 1 (alça fácil 0x55b037e12100)
> Get / http / 2
> Host: Echo.HoppScotch.io
> User-Agent: Curl/7.81.0
> Aceitar: */ *
>
* Estado de conexão alterado (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), cabeçalho TLS, dados suplementares (23):

"Método": "Get",
"Args": ,
"dados": "",
"cabeçalhos":
"aceitar": "*/*",
"Host": "Echo.HoppScotch.io ",
"Usuário-agente": "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"
,
"caminho": "/",
"ISBASE64ENCODED": FALSO
* Conexão #0 ao host Echo.HoppScotch.io deixou intacto

Na saída acima, podemos ver como a solicitação é processada pelo servidor, começando com o handshake do servidor.

O modo verboso é vantajoso ao depurar ou encontrar qualquer configuração incorreta no servidor.

Curl mostra apenas cabeçalhos

Para suprimir toda a saída e mostrar apenas os cabeçalhos, podemos usar a bandeira da cabeça como mostrado:

$ curl -cabeça https: // eco.HoppScotch.io
Http/2 200
Access-Control-Alow-Credenciais: True
Access-Control-Arn-the-headers: Origem, X-Requestado com o tipo de conteúdo, aceita
Access-Control-Arl-Methods: Get, Post, Put, Patch, Excluir, Opções, Cabeça
Access-Control-Alow-Origin: *
Idade: 0
Controle de cache: sem cache
Tipo de conteúdo: Application/JSON
Data: Seg, 30 de maio de 2022 20:56:26 GMT
Servidor: netlify
X-NF-REQUEST-ID: 01G4BC2XH5PBYM2CW57PJV2R1X
comprimento de conteúdo: 408

O comando deve retornar apenas os cabeçalhos de resposta, conforme mostrado na saída acima.

Você também pode adicionar o -o seguido pelo caminho alvo para despejar a saída. Por exemplo, se o seu link retornar um monte de html, você poderá redirecionar a saída para dev/nulo como mostrado:

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

O comando deve redirecionar a saída para /dev /null.

Curl Pass Cabeçalhos personalizados

Se você fizer uma solicitação HTTP, pode ser necessário passar por cabeçalhos personalizados usando o CURL. Você pode usar a bandeira -h seguida pelo cabeçalho e pelo valor.

Considere a sintaxe mostrada abaixo:

CURL -H 'Cabeçalho: Valor' http: // Exemplo.com

Por exemplo:

$ curl -h 'Languagem aceita: en-us' https: // echo.HoppScotch.io

"Método": "Get",
"Args": ,
"dados": "",
"cabeçalhos":
"aceitar": "*/*",
"Languagem aceita": "en-us",
"Host": "Echo.HoppScotch.io ",
"Usuário-agente": "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"
,
"caminho": "/",
"ISBASE64ENCODED": FALSO

Passamos o cabeçalho de linguagem aceita com o valor EN-US para o URL de destino na solicitação acima.

Curl Adicione vários cabeçalhos

Para passar por vários cabeçalhos, você pode dar a bandeira -h várias vezes, conforme mostrado na sintaxe abaixo:

$ curl -h 'cabeçalho: value' -h 'cabeçalho: value' http: // exemplo.com

Por exemplo:

$ curl -h 'Languagem aceita: en-us' -h 'x-country: nós' https: // echo.HoppScotch.io

Você pode verificar o valor definido nos cabeçalhos resultantes, como mostrado:

CURL PASSAR CABELHO VAZ

Você pode passar um cabeçalho vazio usando a sintaxe abaixo:

$ curl -h 'cabeçalho;' http: // Exemplo.com

Por exemplo:

Curl -h 'Languagem aceita;' https: // eco.HoppScotch.io

A saída resultante é como mostrado:

Observe o valor para o cabeçalho especificado está vazio.

Conclusão

Este artigo discutiu vários métodos e técnicas de uso de cabeçalhos em Curl. Usando este tutorial, você entende como visualizar cabeçalhos em uma solicitação, enviar cabeçalhos únicos ou múltiplos e, finalmente, enviar cabeçalhos vazios.