curl (cURL) jest poręcznym klientem HTTP, działającym z wiersza poleceń, dostępnym dla większości platform3. Tutaj będziemy korzystać z curl do wymiany HTTP. Poniżej znajduje się wywołanie curl, zawierające żądanie przesłania strony głównej witryny admin.com za pomocą protokołu TCP na porcie 80., który jest domyślnym portem dla żądań nieszyfrowanych (innych niż HTTPS). Ładunek odpowiedzi (np. strona główna witryny admin.com) oraz niektóre komunikaty informacyjne samego curl zostały ukryte poprzez użycie znaczników -o /dev/null i -s. Dołączyliśmy również znacznik -v, aby curl wyświetlił na wyjściu szczegółowe informacje zawierające nagłówki.

$ curl -s -v -o /dev/null http://admin.com
* Rebuilt URL to: http://admin.com/
* Hostname was NOT found in DNS cache
* Trying 54.239.192.53...
* Connected to admin.com (54.239.192.53) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.37.1
> Host: admin.com
> Accept: */*

< HTTP/1.1 200 OK
< Date: Mon, 27 Apr 2015 18:17:08 GMT
* Server Apache/2.4.7 (Ubuntu) is not blacklisted
< Server: Apache/2.4.7 (Ubuntu)
< Last-Modified: Sat, 02 Feb 2013 03:08:20 GMT
< ETag: "66d3-4d4b52c0c1100"
< Accept-Ranges: bytes
< Content-Length: 26323
< Vary: Accept-Encoding
< Content-Type: text/html
<
{ [2642 bytes data]
* Connection #0 to host admin.com left intact

Wiersze rozpoczynające się od > i < oznaczają, odpowiednio, żądanie i odpowiedź. W zapytaniu klient informuje serwer, że aplikacja kliencka to curl, że szuka hosta admin.com i że zaakceptuje dowolny typ zawartości jako odpowiedź. Serwer identyfikuje się jako Apache 2.4.7 i odpowiada treścią typu HTML wraz z wieloma innymi metadanymi. W curl możemy też wprost ustawiać nagłówki za pomocą argumentu -H. Jest to szczególnie przydatne do bezpośredniego wysyłania żądań do adresów IP z pominięciem serwerów DNS. Możemy np. sprawdzić, czy serwer odpowiada na żądania kierowane do domeny www.admin.com w taki sam sposób jak na żądania adresowane do admin.com. W tym celu
ustawiamy nagłówek Host, informujący zdalny serwer o domenie, z którą próbuje się skontaktować aplikacja kliencka:

$ curl -H "Host: www.admin.com" -s -v -o /dev/null 54.239.192.53
<takie samo wyjście jak w poprzednim przykładzie, ale z innym nagłówkiem Host>

Do pobrania pliku używamy argumentu -O. Poniższy przykład przedstawia pobranie do bieżącego katalogu skompresowanego archiwum .tar z kodem źródłowym curl:

To tylko drobny wycinek możliwości programu curl. Potrafi on obsługiwać inne metody, takie jak POST i DELETE, przechowywać i wysyłać pliki cookie, pobierać pliki i pomagać w wielu różnych scenariuszach wykrywania błędów. Przeglądarka Google Chrome oferuje funkcję o nazwie Copy as URL (kopiuj jako cURL), która tworzy polecenie dla curl symulujące własne zachowanie przeglądarki, w tym nagłówki, pliki cookie i inne szczegóły. Możesz z łatwością ponawiać zapytania z różnymi ustawieniami i zobaczyć wyniki dokładnie tak, jak to robi przeglądarka [aby użyć tej funkcji, kliknij prawym przyciskiem myszy nazwę zasobu w zakładce Network (Sieć) w panelu narzędzi programistycznych.

Źródło: Unix i linux przewodnik administratora – V Evi Nemeth Snyder Trent R Hein Ben Whal

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here