Plik generuje tabelę z metrykami połączenia, TLS, redirectów oraz transferu, aby możliwie precyzyjnie zidentyfikować źródło opóźnień za pomocą curl
Find a file
2026-02-25 11:56:03 +00:00
curl-format-diagnostic.txt add curl-format-diagnostic.txt 2026-02-25 10:19:03 +00:00
curl-json-diagnostic.txt add curl-json-diagnostic.txt 2026-02-25 10:21:57 +00:00
LICENSE Initial commit 2026-02-25 10:15:02 +00:00
README-ent.md Add README-ent.md 2026-02-25 11:56:03 +00:00
README.md Update README.md 2026-02-25 11:47:45 +00:00

Dokumentacja: curl-format-diagnostic.txt

Dokument opisuje pola użyte w pliku curl-format-diagnostic.txt (format curl -w @plik). Plik generuje tekstową tabelę z metrykami połączenia, TLS, redirectów oraz transferu, umożliwiając precyzyjną identyfikację źródła opóźnień: DNS, TCP, TLS, backendu aplikacyjnego lub transferu danych.


1. Użycie podstawowe (Linux / macOS)

Podstawowy pomiar (bez zapisu body)

curl -sS -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

Pomiar z podążaniem za redirectami

curl -sS -L -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

Izolacja DNS (ominięcie rozwiązywania nazwy)

curl -sS --resolve code.devnull.com.pl:443:IP_TUTAJ -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

Porównanie IPv4 vs IPv6

curl -4 -sS -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl
curl -6 -sS -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

2. Użycie curl na Windows

Dostępność w systemie

Od Windows 10 (1803+) oraz Windows 11 curl.exe jest dostarczany domyślnie z systemem.

Sprawdzenie wersji

curl.exe --version

Uwaga: alias w PowerShell

W PowerShell polecenie curl może być aliasem do Invoke-WebRequest. Zalecane jest używanie:

curl.exe

Można zweryfikować źródło polecenia:

Get-Command curl

Różnice Windows vs Linux

Linux/macOS Windows
/dev/null NUL
/ w ścieżkach \\ w ścieżkach
curl curl.exe (zalecane w PowerShell)

Przykłady Windows

Zakładając plik:

C:\tools\curl-format-diagnostic.txt

Podstawowy pomiar

curl.exe -sS -o NUL -w "@C:\tools\curl-format-diagnostic.txt" https://code.devnull.com.pl

Z redirectami

curl.exe -sS -L -o NUL -w "@C:\tools\curl-format-diagnostic.txt" https://code.devnull.com.pl

Z --resolve

curl.exe --resolve code.devnull.com.pl:443:203.0.113.10 -o NUL -w "@C:\tools\curl-format-diagnostic.txt" https://code.devnull.com.pl

3. Parametr -A / --user-agent

Parametr -A ustawia nagłówek User-Agent. Domyślnie curl przedstawia się jako curl/<wersja>.

Zastosowania diagnostyczne

  • test różnic zależnych od klienta (WAF/CDN/routing)
  • obejście blokad na "curl"
  • analiza cache per UA

Przykłady

Linux Firefox

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:115.0) Gecko/20100101 Firefox/115.0" -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

Linux Chrome

curl -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

Windows Chrome

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

Windows Internet Explorer 11

curl -A "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

macOS Safari

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15" -o /dev/null -w @curl-format-diagnostic.txt https://code.devnull.com.pl

4. --resolve szczegółowe wyjaśnienie

Składnia:

--resolve host:port:IP

Funkcja:

  • pomija DNS
  • wymusza połączenie z konkretnym IP
  • umożliwia test backendu za load balancerem
  • pozwala oddzielić problem DNS od TCP/TLS/backend

Po użyciu --resolve parametr time_namelookup powinien być bliski 0.


5. Opis pól raportu

HTTP

  • url_effective końcowy URL
  • scheme http/https
  • method metoda HTTP
  • http_version wersja HTTP
  • http_code kod odpowiedzi
  • content_type Content-Type

Redirecty

  • num_redirects
  • redirect_url
  • num_connects

Sieć

  • remote_ip, remote_port
  • local_ip, local_port
  • ip_version

TLS

  • ssl_verify_result
  • ssl_version
  • ssl_cipher

Transfer

  • size_request
  • size_header
  • size_download
  • size_upload
  • speed_download
  • speed_upload

6. Metryki czasowe i interpretacja

  • time_namelookup DNS
  • time_connect TCP handshake
  • time_appconnect TLS handshake
  • time_pretransfer gotowość do transferu
  • time_redirect czas redirectów
  • time_starttransfer TTFB (backend)
  • time_total czas całkowity
  • time_queue czas w kolejce (jeśli wspierane)

7. Heurystyki diagnostyczne

Objaw Możliwa przyczyna
Wysoki time_namelookup Problem DNS
Wysoki time_connect Routing / firewall
Wysoki time_appconnect TLS / certyfikaty
Wysoki time_starttransfer Backend / DB / aplikacja
Wysoki time_total przy niskim TTFB Wolny transfer

8. Kompatybilność

  • Nie wszystkie pola są dostępne w każdej wersji curl.
  • Zaleca się weryfikację wersji:
curl -V

Dokument stanowi kompletną referencję operacyjną do analizy wydajności HTTP przy użyciu curl -w.