Skróty klawiszowe cURL
Przydatne polecenia cURL z parametrami
Oto skrócony przewodnik z najbardziej użytecznymi poleceniami cURL wraz z ich parametrami:

Powyższe zdjęcie zostało wygenerowane przez model AI Flux – tekst do obrazu.
cURL to niezbędne narzędzie wiersza polecenia do wysyłania żądań HTTP i transferu danych. Kompleksowy przewodnik po narzędziach dla deweloperów, obejmujący Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions oraz zarządzanie pakietami w Linuxie, znajdziesz w Narzędzia deweloperskie: Kompletny przewodnik po współczesnych przepływach pracy.
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
Autoryzacja
- Autoryzacja podstawowa:
curl -u nazwa_użytkownika:hasło http://example.com - 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 - Niestandardowa metoda:
curl -X METHOD http://example.com
Nagłówki i dane
- Dodanie 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
- Ignorowanie weryfikacji certyfikatu SSL:
curl -k https://example.com - Użycie certyfikatu klienta:
curl --cert cert.pem --key key.pem https://example.com
Proxy i sieć
- Użycie 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 - Zapisanie wyjścia do pliku:
curl -o file.html http://example.com - Zapisanie z zdalną nazwą pliku:
curl -O http://example.com/file.zip
Różne
- Wznówienie nieudanego pobrania:
curl -C - -o partial_file.zip http://example.com/file.zip - Ustawienie limitu czasu:
curl --connect-timeout 10 http://example.com - Użycie pliku konfiguracyjnego:
curl -K config_file http://example.com
Ten przewodnik obejmuje najczęściej używane polecenia cURL i ich parametry, stanowiąc szybkie odniesienie dla różnych operacji HTTP i transferu 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łna ścieżka śledzenia:
curl --trace - https://example.comWyjście zawiera heksadecymalny dump wszystkich danych przychodzących i wychodzących, oferując kompleksowy widok całej komunikacji. -
Śledzenie z 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 tylko 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 filtrowane pokazuje tylko nagłówki żądania, co jest pomocne przy inspekcji wysyłanych danych. -
Użycie Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.comTo polecenie wykorzystuje nagłówek debugowania Pantheon do uzyskania dodatkowych informacji o żądaniu, przydatne dla stron hostowanych na Pantheon. -
Wymuszenie protokołu HTTP/2:
curl --http2 https://example.comZapewnia użycie protokołu HTTP/2, co można połączyć z -I w celu zweryfikowania wsparcia dla HTTP/2. -
Debugowanie z netcat: W jednym terminalu:
nc -l 1234W drugim: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ą potężne możliwości debugowania, pozwalając deweloperom na inspekcję różnych aspektów komunikacji HTTP i rozwiązywanie skomplikowanych problemów.
Najczęstsze przypadki użycia cURL
cURL to wszechstronne narzędzie wiersza polecenia o licznych zastosowaniach. Oto niektóre z najczęstszych przypadków użycia cURL:
Interakcje z siecią
- Pobieranie plików: cURL może pobierać pliki z adresów URL.
- Web scraping: cURL może pobierać zawartość stron internetowych w celu ich skraplowania.
- Testowanie stron: cURL jest przydatne do sprawdzania, czy strona jest dostępna, i pobierania jej zawartości.
Interakcje z API
- Wysyłanie żądań API: cURL obsługuje różne metody HTTP (GET, POST, PUT, DELETE) do interakcji z API.
- Testowanie punktów końcowych API: cURL zapewnia szybki sposób testowania i debugowania punktów końcowych API bez konieczności posiadania dedykowanego klienta API.
Rozwiązywanie problemów sieciowych
- Sprawdzanie łączności: cURL może być używane do weryfikacji połączeń sieciowych i rozwiązywania problemów.
- Testowanie DNS: cURL pozwala wymusić użycie konkretnych serwerów DNS do 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 transfery plików za pomocą protokołu File Transfer Protocol (FTP).
- Interakcje SMTP: cURL może być używane do wysyłania e-maili za pomocą protokołu Simple Mail Transfer Protocol (SMTP).
Bezpieczeństwo i autoryzacja
- Połączenia SSL: cURL obsługuje bezpieczne połączenia używające SSL/TLS.
- Autoryzacja: cURL może obsługiwać różne metody autoryzacji, w tym autoryzację podstawową i certyfikaty klienta.
Rozwój i debugowanie
- Symulowanie różnych metod HTTP: cURL pozwala deweloperom na łatwe testowanie różnych metod HTTP.
- Szczegółowe logowanie: tryb szczegółowy cURL dostarcza szczegółowych informacji o cyklu żądania-odpowiedzi, wspierając debugowanie.
Te przypadki użycia demonstrują elastyczność cURL jako narzędzia do interakcji z siecią, testowania API, rozwiązywania problemów sieciowych i zadań deweloperskich.
Testowanie wydajności strony internetowej za pomocą cURL
cURL to potężne narzędzie do testowania wydajności stron internetowych. Oto, jak możesz użyć go do pomiaru różnych aspektów szybkości ładowania witryny:
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 wyświetli całkowity czas potrzebny do pobrania 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: %{url_effective}\n\nCzas wyszukiwania:\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 rozbicia różnych etapów procesu ładowania, w tym czasu wyszukiwania DNS, czasu połączenia i czasu całkowitego[1].
Zaawansowane metryki
Aby uzyskać jeszcze bardziej szczegółową analizę, możesz uwzględnić 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} sek\nCzas połączenia: %{time_connect} sek\nCzas do pierwszego bajtu: %{time_starttransfer} sek\nCzas całkowity: %{time_total} sek\n" -s https://example.com
To polecenie zawiera informacje o wersji HTTP, rozmiarze strony i kodzie odpowiedzi[3].
Benchmarking wielu żądań
Aby przetestować stabilność lub monitorować wydajność w czasie, możesz użyć pętli do wysyłania wielu żądań:
for i in {1..5}; do curl -o /dev/null -s -w "Żądanie $i Czas całkowity: %{time_total}\n" https://example.com; done
Wykona to test pięć razy i pokaże całkowity czas dla każdego żądania[3].
Tworzenie skryptu testu wydajności
Możesz utworzyć prosty skrypt bash do automatyzacji tych testów i zapisywania wyników:
#!/bin/bash
curl -s -w 'Testowanie czasu odpowiedzi strony: %{url_effective}\n\nCzas wyszukiwania:\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)"
Zastąp “URL” adresem strony, którą chcesz przetestować. Ten skrypt zapisze wyniki w pliku z datą[5].
Dzięki użyciu tych poleceń i skryptów cURL możesz skutecznie mierzyć i monitorować wydajność strony internetowej, co pomoże zidentyfikować potencjalne wąskie gardła i zoptymalizować czasy ładowania.