cURL Cheatsheet
polecenia cUrl z parametrami
Oto arkusz skrótów dla najbardziej przydatnych poleceń cURL wraz z ich parametrami:
Obraz powyżej został wygenerowany przez Flux - model AI tekst do obrazu.
Podstawowe użycie cURL
- Pobierz plik:
curl http://example.com/file.zip -o file.zip
- Pobierz wiele plików:
curl -O URL1 -O URL2
- Następuj przekierowaniom:
curl -L http://example.com/file
- Wyświetl tylko nagłówki:
curl -I http://example.com
Autoryzacja
- Autoryzacja podstawowa:
curl -u username:password http://example.com
- Użyj 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 METODA http://example.com
Nagłówki i dane
- Dodaj niestandardowy nagłówek:
curl -H "X-Nagłówek: Wartość" http://example.com
- Wysyłaj dane JSON:
curl -H "Content-Type: application/json" -d '{"klucz":"wartość"}' http://example.com
- Wysyłaj dane formularza:
curl -F "klucz=wartość" -F "plik=@pliklokalny" http://example.com
Opcje SSL/TLS
- Ignoruj weryfikację certyfikatu SSL:
curl -k https://example.com
- Użyj certyfikatu klienta:
curl --cert cert.pem --key key.pem https://example.com
Proxy i sieci
- Użyj proxy:
curl -x proxyserver.server.com:PORT http://example.com
- Ogranicz prędkość 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
- Zapisz wyjście do pliku:
curl -o file.html http://example.com
- Zapisz z użyciem nazwy z serwera:
curl -O http://example.com/file.zip
Inne
- Wznowienie 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 plikkonfiguracyjny http://example.com
Ten arkusz skrótów obejmuje najczęściej używane polecenia cURL i ich parametry, oferując szybki odniesienie do różnych operacji HTTP i transferów danych.
Zaawansowane polecenia curl
Oto kilka zaawansowanych poleceń curl do debugowania:
-
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. -
Pełny dump śladu:
curl --trace - https://example.com
To polecenie wyświetla hexdump wszystkich danych wejściowych i wyjściowych, oferując kompleksowy widok całej komunikacji. -
Ślad z czasem:
curl --trace - --trace-time https://example.com
To polecenie dodaje znaczniki czasu do wyjścia śladu, pomagając analizować problemy związane z czasem. -
Wyświetl tylko nagłówki odpowiedzi:
curl -s -o /dev/null -D - https://example.com
To polecenie pokazuje tylko nagłówki odpowiedzi, przydatne do szybkiej analizy nagłówków. -
Wyświetl tylko nagłówki żądania:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'
To złożone polecenie filtruje tylko nagłówki żądania, przydatne do inspekcji tego, co jest wysyłane. -
Użyj debuggera Pantheon:
curl -I -H "Pantheon-Debug:1" https://example.com
To polecenie korzysta z nagłówka Debug Pantheon, aby uzyskać dodatkowe informacje o żądaniu, przydatne dla stron hostowanych w Pantheon. -
Wymuś protokół HTTP/2:
curl --http2 https://example.com
To zapewnia użycie protokołu HTTP/2, który można połączyć z -I, aby zweryfikować obsługę HTTP/2. -
Debugowanie z netcat: W jednym terminalu:
nc -l 1234
W drugim:curl http://127.0.0.1:1234
To pozwala zobaczyć dokładnie, co wysyła curl, przydatne do debugowania ładunku.
Te zaawansowane polecenia oferują potężne możliwości debugowania, umożliwiając programistom inspekcję różnych aspektów komunikacji HTTP i rozwiązywanie skomplikowanych problemów.
Typowe przypadki użycia curl
curl to uniwersalny narzędzie wiersza poleceń z wieloma zastosowaniami. Oto niektóre z najczęściej spotykanych przypadków użycia curl:
Interakcje z siecią
- Pobieranie plików: curl może pobierać pliki z adresów URL.
- Scraping sieci: curl może pobrać zawartość stron internetowych do celów scrapingu.
- Testowanie stron internetowych: curl jest przydatny do sprawdzania, czy strona internetowa 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 oferuje szybki sposób na testowanie i debugowanie punktów końcowych API bez potrzeby dedykowanego klienta API.
Rozwiązywanie problemów z siecią
- Sprawdzanie połączeń: curl może być używany do weryfikacji połączeń sieciowych i rozwiązywania problemów.
- Testowanie DNS: curl pozwala wymuszać konkretne serwery DNS do rozwiązywania problemów związanych z DNS.
- Analizowanie nagłówków: curl może wyświetlać nagłówki HTTP, co jest przydatne do debugowania.
Przekazywanie danych
- Operacje FTP: curl obsługuje przekazywanie plików za pomocą Protokołu Przekazu Plików (FTP).
- Interakcje SMTP: curl może być używany do wysyłania wiadomości e-mail za pomocą Prostego Protokołu Przekazu Plików (SMTP).
Bezpieczeństwo i autoryzacja
- Połączenia SSL: curl obsługuje bezpieczne połączenia przy użyciu SSL/TLS.
- Autoryzacja: curl może obsługiwać różne metody autoryzacji, w tym autoryzację podstawową i certyfikaty klienta.
Programowanie i debugowanie
- Symulowanie różnych metod HTTP: curl pozwala programistom łatwo testować różne metody HTTP.
- Szczegółowe logowanie: tryb szczegółowy curl dostarcza szczegółowych informacji o cyklu żądania i odpowiedzi, co pomaga w debugowaniu.
Te przypadki użycia pokazują elastyczność curl jako narzędzia do interakcji sieciowych, testowania API, rozwiązywania problemów z siecią i zadań programistycznych.
Testowanie wydajności strony internetowej za pomocą cURL
curl to potężne narzędzie do testowania wydajności strony internetowej. Oto, jak możesz go użyć do pomiaru różnych aspektów szybkości ładowania strony:
Podstawowy test wydajności
Aby uzyskać prostą miarę czasu ładowania strony, 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 uzyskać 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 DNS:\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 analizy 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 dodać 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} sekund\nCzas połączenia: %{time_connect} sekund\nCzas do pierwszego bajtu: %{time_starttransfer} sekund\nCzas całkowity: %{time_total} sekund\n" -s https://example.com
To polecenie zawiera informacje o wersji HTTP, rozmiarze strony i kodzie odpowiedzi[3].
Testowanie wielu żądań
Aby przetestować spójność 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
To uruchomi test pięciokrotnie i pokaże czas całkowity dla każdego żądania[3].
Tworzenie skryptu testu wydajności
Możesz utworzyć prosty skrypt bash, aby automatyzować te testy i zapisać wyniki:
#!/bin/bash
curl -s -w 'Testowanie czasu odpowiedzi strony dla :%{url_effective}\n\nCzas wyszukiwania DNS:\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 zapisać wyniki w pliku z datą[5].
Korzystając z tych poleceń curl i skryptów, możesz skutecznie mierzyć i monitorować wydajność strony internetowej, pomagając w identyfikacji potencjalnych punktów zwrotu i optymalizacji czasu ładowania.