Skrót do curl
Przydatne polecenia cURL z parametrami
Oto ściągawka z najbardziej przydatnymi poleceniami cURL wraz z ich parametrami:

Powyższe obrazek został wygenerowany za pomocą Flux - model AI do konwersji tekstu na obraz.
cURL to niezbędne narzędzie wiersza poleceń do wysyłania zapytań HTTP i transferu danych. Po kompleksowy przewodnik po narzędziach dla developerów, w tym Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions oraz zarządzaniu pakietami w Linuksie, zobacz Narzędzia dla Developerów: Kompletny przewodnik po nowoczesnych przepływach pracy w rozwoju.
Podstawowe użycie cURL
- Pobieranie pliku:
curl http://example.com/file.zip -o file.zip - Pobieranie wielu plików:
curl -O URL1 -O URL2 - Podążanie za przekierowaniami:
curl -L http://example.com/file - Wyświetlanie tylko nagłówków:
curl -I http://example.com
Uwierzytelnianie
- Uwierzytelnianie podstawowe:
curl -u username:password http://example.com. cURL ustawiaAuthorization: Basicna podstawie tego użytkownika i hasła. Ten sam nagłówek, zbudowany za pomocąprintfibase64, znajduje się w Ściągawce kodowania i dekodowania Base64. - Użycie pliku .netrc:
curl --netrc-file .netrc http://example.com
Metody HTTP
- Żądanie POST:
curl -X POST -d 'name=value' http://example.com - Żądanie PUT:
curl -X PUT -d @file http://example.com - Niekonwencjonalna metoda:
curl -X METHOD http://example.com
Nagłówki i dane
- Dodawanie niestandardowego nagłówka:
curl -H "X-Header: Value" http://example.com - Wysyłanie danych JSON:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com - Wysyłanie danych formularza:
curl -F "key=value" -F "file=@localfile" http://example.com
Opcje SSL/TLS
- Pomijanie weryfikacji certyfikatu SSL:
curl -k https://example.com - Użycie certyfikatu klienta:
curl --cert cert.pem --key key.pem https://example.com
Prokser i sieć
- Użycie serwera proxy:
curl -x proxysever.server.com:PORT http://example.com - Ograniczenie szybkości pobierania:
curl --limit-rate 1000B -O http://example.com/file
Kontrola wyjścia
- Tryb cichy:
curl -s http://example.com - Tryb szczegółowy:
curl -v http://example.com - Zapisywanie wyjścia do pliku:
curl -o file.html http://example.com - Zapisywanie z zdalną nazwą pliku:
curl -O http://example.com/file.zip
Różne
- Wznawianie przerwanych pobierań:
curl -C - -o partial_file.zip http://example.com/file.zip - Ustawianie limitu czasu:
curl --connect-timeout 10 http://example.com - Użycie pliku konfiguracyjnego:
curl -K config_file http://example.com
Ta ściągawka obejmuje najczęściej używane polecenia cURL i ich parametry, dostarczając szybkiego źródła informacji o różnych operacjach HTTP i transferach danych.
Zaawansowane polecenia cURL
Oto kilka zaawansowanych poleceń curl do debugowania:
-
Szczegółowe wyjście:
curl -v https://example.comTo polecenie dostarcza szczegółowych informacji o żądaniu i odpowiedzi, w tym nagłówkach i szczegółach połączenia. -
Pełny zrzut śledzenia:
curl --trace - https://example.comWypisuje zrzut w formacie szesnastkowym (hexdump) wszystkich przychodzących i wychodzących danych, oferując kompleksowy widok całej komunikacji. -
Śledzenie ze znacznikami czasu:
curl --trace - --trace-time https://example.comDodaje znaczniki czasu do wyjścia śledzenia, co pomaga w analizie problemów związanych z czasem. -
Wyświetlanie tylko nagłówków odpowiedzi:
curl -s -o /dev/null -D - https://example.comTo polecenie pokazuje wyłącznie nagłówki odpowiedzi, co jest przydatne do szybkiej analizy nagłówków. -
Wyświetlanie tylko nagłówków żądania:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'To złożone polecenie filtruje wyłącznie nagłówki żądania, co pomaga w inspekcji wysyłanych danych. -
Użycie Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.comTo polecenie wykorzystuje nagłówek debugowania Pantheon, aby uzyskać dodatkowe informacje o żądaniu, co jest przydatne dla stron hostowanych na Pantheon. -
Wymuszanie protokołu HTTP/2:
curl --http2 https://example.comZapewnia użycie protokołu HTTP/2, co można połączyć z -I, aby zweryfikować obsługę HTTP/2. -
Debugowanie za pomocą netcat: W jednym terminalu:
nc -l 1234W innym:curl http://127.0.0.1:1234Pozwala to zobaczyć dokładnie, co curl wysyła, co jest przydatne do debugowania ładunku (payload).
Te zaawansowane polecenia zapewniają silne możliwości debugowania, pozwalając developerom na inspekcję różnych aspektów komunikacji HTTP i rozwiązywanie złożonych problemów.
Częste przypadki użycia cURL
curl to wszechstronne narzędzie wiersza poleceń o wielu zastosowaniach. Oto niektóre z najczęstszych przypadków użycia curl:
Interakcje z WWW
- Pobieranie plików: curl może pobierać pliki z adresów URL.
- Scraping stron www: curl może pobierać treść stron internetowych w celach scrapingu.
- Testowanie stron www: curl jest przydatny do sprawdzania, czy strona internetowa jest dostępna, oraz pobierania jej treści.
Interakcje z API
- Wysyłanie zapytań do API: curl obsługuje różne metody HTTP (GET, POST, PUT, DELETE) do interakcji z API.
- Testowanie punktów końcowych API: curl oferuje szybki sposób testowania i debugowania punktów końcowych API bez konieczności używania dedykowanego klienta API.
Diagnostyka sieci
- Sprawdzanie łączności: curl można użyć do weryfikacji połączeń sieciowych i rozwiązywania problemów.
- Testowanie DNS: curl pozwala wymusić konkretne serwery DNS w celu rozwiązywania problemów związanych z DNS.
- Inspekcja nagłówków: curl może wyświetlać nagłówki HTTP, co jest przydatne do debugowania.
Transfer danych
- Operacje FTP: curl obsługuje transfer plików przy użyciu protokołu FTP (File Transfer Protocol).
- Interakcje SMTP: curl może być używany do wysyłania e-maili za pomocą protokołu SMTP (Simple Mail Transfer Protocol).
Bezpieczeństwo i uwierzytelnianie
- Połączenia SSL: curl obsługuje bezpieczne połączenia za pomocą SSL/TLS.
- Uwierzytelnianie: curl może obsługiwać różne metody uwierzytelniania, w tym uwierzytelnianie podstawowe i certyfikaty klientów.
Rozwój i debugowanie
- Symulowanie różnych metod HTTP: curl pozwala developerom łatwo testować różne metody HTTP.
- Szczegółowe logowanie: tryb szczegółowy curla dostarcza szczegółowych informacji o cyklu żądania-odpowiedzi, co pomaga w debugowaniu.
Te przypadki użycia pokazują elastyczność curl jako narzędzia do interakcji z WWW, testowania API, diagnostyki sieci oraz zadań developerskich.
Testowanie wydajności stron www za pomocą cURL
curl to potężne narzędzie do testowania wydajności stron internetowych. Oto jak możesz go użyć do pomiaru różnych aspektów czasu ładowania strony:
Podstawowy test wydajności
Aby uzyskać prosty pomiar czasu ładowania strony internetowej, użyj tego polecenia:
curl -o /dev/null -s -w "Czas całkowity: %{time_total}s\n" "https://example.com"
To polecenie wypisze całkowity czas potrzebny na pobranie strony[2].
Szczegółowe metryki wydajności
Aby przeprowadzić bardziej kompleksową analizę, możesz użyć curl do pomiaru wielu metryk wydajności:
curl -s -w 'Testowanie czasu odpowiedzi strony dla :%{url_effective}\n\nCzas wyszukiwania nazwy:\t\t%{time_namelookup}\nCzas połączenia:\t\t%{time_connect}\nCzas przed transferem:\t%{time_pretransfer}\nCzas rozpoczęcia transferu:\t%{time_starttransfer}\n\nCzas całkowity:\t\t%{time_total}\n' -o /dev/null https://example.com
To polecenie dostarcza rozpiski różnych etapów procesu ładowania, w tym czasu wyszukiwania DNS, czasu połączenia i czasu całkowitego[1].
Zaawansowane metryki
Aby przeprowadzić jeszcze bardziej szczegółową analizę, możesz dołączyć dodatkowe metryki:
curl -o /dev/null -w "Wersja HTTP: %{http_version}\nRozmiar strony: %{size_download} bajtów\nKod odpowiedzi: %{response_code}\nWyszukiwanie DNS: %{time_namelookup} s\nCzas połączenia: %{time_connect} s\nCzas do pierwszego bajtu: %{time_starttransfer} s\nCzas całkowity: %{time_total} s\n" -s https://example.com
To polecenie zawiera informacje o wersji HTTP, rozmiarze strony i kodzie odpowiedzi[3].
Benchmarkowanie wielu zapytań
Aby przetestować spójność lub monitorować wydajność w czasie, można użyć pętli do wykonania wielu zapytań:
for i in {1..5}; do curl -o /dev/null -s -w "Żądanie $i Czas całkowity: %{time_total}\n" https://example.com; done
Spowoduje to wykonanie testu pięć razy i wyświetlenie czasu całkowitego dla każdego żądania[3].
Tworzenie skryptu testu wydajności
Możesz utworzyć prosty skrypt bash, aby zautomatyzować te testy i zapisać wyniki:
#!/bin/bash
curl -s -w 'Testowanie czasu odpowiedzi strony dla :%{url_effective}\n\nCzas wyszukiwania nazwy:\t\t%{time_namelookup}\nCzas połączenia:\t\t%{time_connect}\nCzas przed transferem:\t%{time_pretransfer}\nCzas rozpoczęcia transferu:\t%{time_starttransfer}\n\nCzas całkowity:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Zamień “URL” na stronę internetową, którą chcesz przetestować. Ten skrypt zapisze wyniki w pliku z datą[5].
Korzystając z tych poleceń i skryptów curl, możesz skutecznie mierzyć i monitorować wydajność stron internetowych, co pomoże Ci zidentyfikować potencjalne wąskie gardła i zoptymalizować czasy ładowania.
Przydatne linki
- Ściągawka Pythona
- Ściągawka Condy
- Ściągawka Basha
- Ściągawka Ollama
- Ściągawka Dockera
- Ściągawka Kubernetes
- Ściągawka Markdown
- [Dekodowanie i wyświetlanie tokenu JWT](https://www.glukhov.org/pl/developer-tools/cheatsheets/decode-and-print-jwt-token/ “Jak dekodować i wyświetlać payload tokenu JWT w linux bash”})