Krótka odpowiedź
cURL (Client URL) to narzędzie wiersza poleceń i biblioteka (libcurl), które pozwalają wysyłać i odbierać dane przez internet z poziomu terminala, bez przeglądarki. Obsługuje HTTP, HTTPS, FTP, SFTP, SMTP, POP3, IMAP i ponad 20 innych protokołów1. W praktyce: wpisujesz komendę, a w terminalu dostajesz surową odpowiedź serwera – kod źródłowy zamiast graficznej strony.
cURL jest zainstalowany domyślnie na Linux, macOS i Windows 10/113 – nie musisz nic instalować. Używają go: programiści (testowanie API), administratorzy (diagnostyka serwerów), specjaliści SEO (sprawdzanie nagłówków HTTP, przekierowań, statusów), DevOps (automatyzacja).
Spis treści
TogglePodstawowa składnia
curl [opcje] URL
Najprostsze użycie: pobierz stronę i wyświetl HTML w terminalu:
curl https://example.com
Terminal wyświetli surowy HTML strony. Nie zobaczysz „strony” jak w przeglądarce – zobaczysz kod źródłowy, który przeglądarka normalnie renderuje na graficzną stronę.
10 najczęstszych komend cURL z przykładami
1. Pobierz stronę i zapisz do pliku
curl -o strona.html https://example.com
-o strona.html = zapisz odpowiedź do pliku strona.html zamiast wyświetlać w terminalu.
2. Pobierz plik (np. PDF, ZIP, obrazek)
curl -O https://example.com/dokument.pdf
-O (wielka litera) = zapisz plik z oryginalną nazwą z URL. Odpowiednik „kliknij prawym → Zapisz jako” w przeglądarce.
3. Sprawdź nagłówki HTTP (bez pobierania treści)
curl -I https://seomantyczny.pl
-I (HEAD request) zwraca tylko nagłówki – status HTTP (200, 301, 404), Content-Type, Server, Cache-Control, Last-Modified. Idealne do szybkiego sprawdzenia: „czy strona odpowiada?”, „jaki jest status?”, „czy jest przekierowanie?”.
Przykładowa odpowiedź:
HTTP/2 200
content-type: text/html; charset=UTF-8
server: LiteSpeed
x-powered-by: PHP/8.2.21
cache-control: max-age=3600
4. Śledź przekierowania
curl -L https://google.com
-L (follow redirects) = jeśli serwer zwraca 301/302, cURL automatycznie podąża za przekierowaniem do docelowego URL. Bez -L: cURL zatrzyma się na pierwszym 301 i pokaże pustą odpowiedź.
5. Sprawdź łańcuch przekierowań (SEO!)
curl -ILs https://twojadomena.pl | grep -i "HTTP\|location"
Pokazuje każdy krok przekierowania: HTTP status + Location header. Idealne do diagnozy łańcuchów 301 → 301 → 301 (przekierowania wielokrokowe, które spowalniają i osłabiają SEO).
6. Wyślij zapytanie POST (testowanie API)
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name": "Jan", "email": "jan@example.com"}'
-X POST = metoda HTTP (domyślnie GET). -H = nagłówek. -d = dane (body).
7. Wyślij zapytanie z autoryzacją (Basic Auth)
curl -u "login:haslo" https://api.example.com/protected
-u = Basic Authentication (login:hasło zakodowane w Base64). Używane m.in. Przez WordPress REST API z Application Passwords.
8. Wyślij zapytanie z tokenem Bearer (OAuth)
curl -H "Authorization: Bearer TWOJ_TOKEN" https://api.example.com/data
Standard dla nowoczesnych API (Twitter, GitHub, Stripe, OpenAI).
9. Sprawdź swój publiczny adres IP
curl ifconfig.me
Zwraca Twój publiczny adres IP – jednolinijkowa odpowiedź, idealna do skryptów.
10. Zmierz czas odpowiedzi serwera (TTFB)
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://seomantyczny.pl
Wyświetla TTFB i czas całkowity – szybki sposób na sprawdzenie szybkości serwera bez przeglądarki.
cURL a wget – jaka różnica?
| Cecha | cURL | wget |
|---|---|---|
| Protokoły | HTTP, FTP, SMTP, POP3, IMAP + 20 innych | HTTP, FTP |
| Najlepszy do | Testowanie API, nagłówki, pojedyncze żądania | Pobieranie plików, rekursywne ściąganie stron |
| Upload | Tak (PUT, POST, multipart) | Ograniczone |
| Rekursywne pobieranie | Nie | Tak (wget -r) |
| Domyślnie w systemie | Linux, macOS, Windows 10+ | Linux (macOS/Windows: ręczna instalacja) |
| Biblioteka (libcurl) | Tak (PHP, Python, Ruby, Go…) | Nie |
Zasada: cURL do interakcji z API i diagnostyki. Wget do pobierania plików i mirrorowania stron.
cURL w praktyce SEO
Sprawdzenie statusu HTTP wielu URL-i naraz
Masz listę 100 URL-i w pliku urls.txt i chcesz sprawdzić status każdego:
while read url; do echo "$url $(curl -o /dev/null -s -w '%{http_code}' $url)"; done < urls.txt
Wynik: lista URL-i ze statusami (200, 301, 404, 500). Szybszy niż Screaming Frog dla prostych checków.
Sprawdzenie, czy strona zwraca prawidłowy canonical
curl -s https://twojadomena.pl/artykul | grep -i "canonical"
Wyciąga tag <link rel="canonical"> z HTML – sprawdzasz, czy canonical wskazuje na prawidłowy URL.
Sprawdzenie nagłówków cache (CDN, LiteSpeed)
curl -I https://twojadomena.pl | grep -iE "cache|x-litespeed|cf-cache"
Pokazuje nagłówki związane z cache: czy CDN serwuje z cache (HIT/MISS), czy LiteSpeed Cache jest aktywny, jakie są nagłówki Cache-Control.
cURL w PHP – libcurl
PHP ma wbudowane rozszerzenie cURL (libcurl), które pozwala robić to samo co komenda terminala, ale z poziomu kodu PHP. WordPress używa go intensywnie (HTTP API, aktualizacje, REST API, integracje):
$ch = curl_init('https://api.example.com/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer TOKEN']);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
W WordPress: zamiast cURL bezpośrednio, użyj wp_remote_get() / wp_remote_post() – wrappery, które obsługują cURL, ale z obsługą błędów i kompatybilnością WP.
Najczęściej zadawane pytania
Czy cURL jest na moim komputerze?
Prawdopodobnie tak. Linux i macOS: wpisz curl --version w terminalu. Windows 10/11: curl jest wbudowany w system domyślnie od aktualizacji z 2018 roku (plik C:\Windows\System32\curl.exe) – wpisz curl --version w CMD lub PowerShell3. Jeśli nie ma: Linux → sudo apt install curl. Starsze systemy → pobierz z curl.se/download.html.
Czy cURL jest bezpieczny?
cURL to narzędzie – jak nóż kuchenny, może być użyte dobrze i źle. Sam cURL jest bezpieczny (obsługuje TLS, weryfikację certyfikatów). Ale: nie wklejaj w terminal komend cURL z nieznanych źródeł – mogą wysyłać Twoje dane na serwer atakującego. I nie używaj -k/--insecure na produkcji – ta flaga wyłącza weryfikację certyfikatu SSL/TLS i naraża połączenie na atak man-in-the-middle2.
Jak wyjść z cURL, który się zawiesił?
Ctrl + C – przerywa aktualną komendę. Jeżeli cURL czeka na odpowiedź, która nie przychodzi – dodaj timeout: curl --max-time 10 URL (max 10 sekund).
cURL vs Postman – co lepsze do testowania API?
cURL – szybsze, lżejsze, skryptowalne, działa w terminalu. Dla szybkich testów i automatyzacji. Postman – GUI, kolekcje żądań, historia, testy, współdzielenie z zespołem. Dla złożonych API z wieloma endpointami. Oba narzędzia się uzupełniają – Postman potrafi generować komendy cURL z dowolnego żądania (przycisk „Code” → cURL).
Źródła
Zweryfikowano: wrzesień 2026Listę protokołów, opis flag i dostępność curl w Windows sprawdziliśmy w oficjalnej dokumentacji projektu curl.
- curl – strona główna projektu (lista obsługiwanych protokołów)Dokumentacjacurlcurl.se
- curl Manual / man page (opis flag: -o, -O, -I, -L, -X, -H, -d, -u, -k, –max-time, –compressed, -w)Dokumentacjacurlcurl.se
- curl shipped by MicrosoftDokumentacjacurlcurl.se






