cURL Cheatsheet

polecenia cUrl z parametrami

Oto arkusz skrótów dla najbardziej przydatnych poleceń cURL wraz z ich parametrami:

osoba z napisem curl

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:

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

  3. Ś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.

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

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

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

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

  8. 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ą

  1. Pobieranie plików: curl może pobierać pliki z adresów URL.
  2. Scraping sieci: curl może pobrać zawartość stron internetowych do celów scrapingu.
  3. Testowanie stron internetowych: curl jest przydatny do sprawdzania, czy strona internetowa 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 oferuje szybki sposób na testowanie i debugowanie punktów końcowych API bez potrzeby dedykowanego klienta API.

Rozwiązywanie problemów z siecią

  1. Sprawdzanie połączeń: curl może być używany do weryfikacji połączeń sieciowych i rozwiązywania problemów.
  2. Testowanie DNS: curl pozwala wymuszać konkretne serwery DNS do rozwiązywania problemów związanych z DNS.
  3. Analizowanie nagłówków: curl może wyświetlać nagłówki HTTP, co jest przydatne do debugowania.

Przekazywanie danych

  1. Operacje FTP: curl obsługuje przekazywanie plików za pomocą Protokołu Przekazu Plików (FTP).
  2. 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

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

Programowanie i debugowanie

  1. Symulowanie różnych metod HTTP: curl pozwala programistom łatwo testować różne metody HTTP.
  2. 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.

Przydatne linki