Nagłówki zwijane

Nagłówki zwijane
Curl jest jednym z najbardziej pomocnych narzędzi podczas pracy z przesyłaniem danych URL. Jest to uproszczone, ale potężne narzędzie wiersza poleceń, które ułatwia transfer danych danych przez sieć.

W tym samouczku omówi się, w jaki sposób możesz pracować z nagłówkami HTTP za pomocą Curl.

Co to jest nagłówek HTTP?

Nagłówek HTTP odnosi się do pola w żądaniu HTTP lub odpowiedzi w celu włączenia dodatkowych informacji, takich jak metadane dotyczące żądania lub odpowiedzi.

Nagłówki HTTP pozwalają klientowi i serwerowi wymienić dodatkowe informacje w ramach konkretnego żądania lub odpowiedzi. Nagłówek składa się z wrażliwej na przypadek nazwy, okrężnicy i wartości.

Jego składnia jest jak pokazana:

Nazwa nagłówka: wartość
"zaakceptować": "*/*",
„gospodarz”: "echo.Sscotch.IO ",
„użytkownik-agent”: „-o”,
„X-Country”: „Us”,
„X-forward-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”

Dowiedzmy się, jak możemy pracować z nagłówkami HTTP za pomocą Curl.

Instalowanie loków

Często znajdziesz curl zainstalowany w większości systemów. Jeśli jednak nie, możesz go zainstalować za pośrednictwem menedżera pakietów systemu.

Debian

Aktualizacja $ sudo apt-get
$ sudo apt-get instal instal curl

Rehl

Aktualizacja $ sudo yum
$ sudo yum instaluj curl

Manjaro/Arch

$ sudo pacman -sy
$ sudo pacman -s curl

Curl wyświetla surowy komunikat

Aby wyświetlić surową wiadomość w żądaniu Curl, używamy flagi -v lub -czasownik. Opcja pozwala nam wyświetlać szczegółowe informacje o żądaniu, w tym proces uścisku dłoni.

$ curl -v https: // echo.Sscotch.io
Próbuję 18.192.76.182: 443…
* Połączony z echo.Sscotch.IO (18.192.76.182) Port 443 (#0)
* Alpn, oferujący H2
* ALPN, oferowanie HTTP/1.1
* Cafile:/etc/ssl/certs/ca-certyfikaty.crt
* Capath:/etc/ssl/certs
* Połączenie SSL za pomocą TLSV1.3 / tls_aes_128_gcm_sha256
* ALPN, serwer zaakceptowany do użycia H2
* Certyfikat serwera:
* Temat: CN =*.Sscotch.io
* Data rozpoczęcia: 26 maja 06:07:56 2022 GMT
* Data wygaśnięcia: 24 sierpnia 06:07:55 2022 GMT
* TematAltName: host "echo.Sscotch.IO „Dopasowane certyfikat”*.Sscotch.IO "
* emitent: c = nas; O = Let's Szyfrowanie; CN = R3
* Certyfikat SSL sprawdź OK.
* Za pomocą HTTP2 serwer obsługuje multipleksowanie
* Zmieniony stan połączenia (potwierdzony HTTP/2)
* Kopiowanie danych HTTP/2 w buforze strumieniowym do bufora połączenia po aktualizacji: len = 0
* Za pomocą identyfikatora strumienia: 1 (łatwy uchwyt 0x55b037e12100)
> Get / http / 2
> Host: Echo.Sscotch.io
> Agent użytkownika: curl/7.81.0
> Zaakceptuj: */ *
>
* Zmieniony stan połączenia (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 (cal), nagłówek TLS, dane uzupełniające (23):

„Metoda”: „Get”,
„Args”: ,
"dane": "",
„Nagłówki”:
"zaakceptować": "*/*",
„gospodarz”: "echo.Sscotch.IO ",
„użytkownik-agent”: „curl/7.81.0 ",
„X-Country”: „Ke”,
„X-forward-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”
,
"ścieżka": "/",
„ISBase64Encoded”: False
* Połączenie #0 do echo hosta.Sscotch.IO pozostało nienaruszone

Z powyższego wyjścia możemy zobaczyć, w jaki sposób żądanie jest przetwarzane przez serwer, zaczynając od uścisku dłoni serwera.

Tryb wetbose jest korzystny podczas debugowania lub znajdowania błędnych konfiguracji na serwerze.

TYLKO CURL TEAL NOPERY

Aby stłumić wszystkie dane wyjściowe i pokazać tylko nagłówki, możemy użyć flagi głowicy, jak pokazano:

$ curl -head https: // echo.Sscotch.io
HTTP/2 200
Access-Control-Allow-Credentials: True
Access-Control-Allow-Headers: Origin, X-Requested-z, typu treści, akceptuj
dostęp do Control-Allow-Methods: Pobierz, publikuj, umieszcza, łatanie, usuwanie, opcje, głowa
Access-Control-Allow-Origin: *
Wiek: 0
Cache-Control: Bez pamięci podręcznej
Typ treści: aplikacja/JSON
Data: pon, 30 maja 2022 20:56:26 GMT
serwer: netLify
X-NF-REQUEST-ID: 01G4BC2XH5PBYM2CW57PJV2R1X
Długość zawartości: 408

Polecenie powinno zwrócić tylko nagłówki odpowiedzi, jak pokazano na powyższym wyjściu.

Możesz także dodać -O, a następnie ścieżkę docelową, aby zrzucić wyjście. Na przykład, jeśli Twój link zwraca kilka HTML, możesz przekierować dane wyjściowe do dev/null, jak pokazano:

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

Polecenie powinno przekierować wyjście do /dev /null.

Curl Pass niestandardowe nagłówki

Jeśli wykonasz żądanie HTTP, może być konieczne przekazanie niestandardowych nagłówków za pomocą Curl. Możesz użyć flagi -H, a następnie nagłówka i wartości.

Rozważ składnię pokazaną poniżej:

curl -h 'nagłówek: wartość' http: // przykład.com

Na przykład:

$ curl -h „akceptowany język: en-us” https: // echo.Sscotch.io

„Metoda”: „Get”,
„Args”: ,
"dane": "",
„Nagłówki”:
"zaakceptować": "*/*",
„Zaakceptowany język”: „en-us”,
„gospodarz”: "echo.Sscotch.IO ",
„użytkownik-agent”: „curl/7.81.0 ",
„X-Country”: „Ke”,
„X-forward-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”
,
"ścieżka": "/",
„ISBase64Encoded”: False

Przekazujemy zaakceptowany nagłówek w języku z wartością en-US do docelowego adresu URL w powyższym żądaniu.

Curl Dodaj wiele nagłówków

Aby przekazać wiele nagłówków, możesz podać flagę -h różne czasy, jak pokazano w składni poniżej:

$ curl -h 'nagłówek: wartość' -H 'nagłówek: wartość' http: // przykład.com

Na przykład:

$ curl -h „akceptowany język: en-us” -h 'x-country: us' https: // echo.Sscotch.io

Możesz zweryfikować wartość ustawioną w wynikowych nagłówkach, jak pokazano:

Pusta nagłówek Curl Pass

Możesz przekazać pusty nagłówek za pomocą składni poniżej:

$ curl -h „nagłówek;” http: // przykład.com

Na przykład:

curl -h „akceptowany język;” https: // echo.Sscotch.io

Powstałe wyjście jest jak pokazano:

Zwróć uwagę, że wartość dla określonego nagłówka jest pusta.

Wniosek

W tym artykule omówiono różne metody i techniki stosowania nagłówków w Curl. Korzystając z tego samouczka, rozumiesz, jak przeglądać nagłówki w żądaniu, wysyłać pojedyncze lub wiele nagłówków, a na koniec wysyłaj puste nagłówki.