Skróty klawiszowe cURL

Przydatne polecenia cURL z parametrami

Oto skrócony przewodnik z najbardziej użytecznymi poleceniami cURL wraz z ich parametrami:

osoba z znakiem curl

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:

  1. Szczegółowe wyjście: curl -v https://example.com To polecenie dostarcza szczegółowych informacji o żądaniu i odpowiedzi, w tym nagłówkach i szczegółach połączenia.

  2. Pełna ścieżka śledzenia: curl --trace - https://example.com Wyjście zawiera heksadecymalny dump wszystkich danych przychodzących i wychodzących, oferując kompleksowy widok całej komunikacji.

  3. Śledzenie z znacznikami czasu: curl --trace - --trace-time https://example.com Dodaje znaczniki czasu do wyjścia śledzenia, co pomaga w analizie problemów związanych z czasem.

  4. Wyświetlanie tylko nagłówków odpowiedzi: curl -s -o /dev/null -D - https://example.com To polecenie pokazuje tylko nagłówki odpowiedzi, co jest przydatne do szybkiej analizy nagłówków.

  5. 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.

  6. Użycie Pantheon Debugger: curl -I -H "Pantheon-Debug:1" https://example.com To polecenie wykorzystuje nagłówek debugowania Pantheon do uzyskania dodatkowych informacji o żądaniu, przydatne dla stron hostowanych na Pantheon.

  7. Wymuszenie protokołu HTTP/2: curl --http2 https://example.com Zapewnia użycie protokołu HTTP/2, co można połączyć z -I w celu zweryfikowania wsparcia dla HTTP/2.

  8. Debugowanie z netcat: W jednym terminalu: nc -l 1234 W drugim: curl http://127.0.0.1:1234 Pozwala 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ą

  1. Pobieranie plików: cURL może pobierać pliki z adresów URL.
  2. Web scraping: cURL może pobierać zawartość stron internetowych w celu ich skraplowania.
  3. Testowanie stron: cURL jest przydatne do sprawdzania, czy strona jest dostępna, i pobierania jej zawartości.

Interakcje z API

  1. Wysyłanie żądań API: cURL obsługuje różne metody HTTP (GET, POST, PUT, DELETE) do interakcji z API.
  2. 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

  1. Sprawdzanie łączności: cURL może być używane do weryfikacji połączeń sieciowych i rozwiązywania problemów.
  2. Testowanie DNS: cURL pozwala wymusić użycie konkretnych serwerów DNS do rozwiązywania problemów związanych z DNS.
  3. Inspekcja nagłówków: cURL może wyświetlać nagłówki HTTP, co jest przydatne do debugowania.

Transfer danych

  1. Operacje FTP: cURL obsługuje transfery plików za pomocą protokołu File Transfer Protocol (FTP).
  2. 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

  1. Połączenia SSL: cURL obsługuje bezpieczne połączenia używające SSL/TLS.
  2. Autoryzacja: cURL może obsługiwać różne metody autoryzacji, w tym autoryzację podstawową i certyfikaty klienta.

Rozwój i debugowanie

  1. Symulowanie różnych metod HTTP: cURL pozwala deweloperom na łatwe testowanie różnych metod HTTP.
  2. 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.

Przydatne linki