Snabbguide för cURL

Användbara cUrl-befäl med parametrar

Här är ett snabbreferensdokument för de mest användbara cURL-befäl med deras parametrar:

en person med en cURL-teckning

Bilden ovan är genererad av Flux - AI-modell för text-till-bild.

cURL är ett väsentligt verktyg för kommandotolken för att skicka HTTP-begäran och överföra data. För en komplett guide till utvecklarverktyg inklusive Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions och Linux-pakethantering, se Utvecklarverktyg: Den kompletta guiden till moderna utvecklingsflöden.

Grundläggande användning av cURL

  • Ladda ner en fil: curl http://example.com/file.zip -o file.zip
  • Ladda ner flera filer: curl -O URL1 -O URL2
  • Följ omdirigeringar: curl -L http://example.com/file
  • Visa endast rubriker: curl -I http://example.com

Autentisering

  • Grundläggande autentisering: curl -u användarnamn:lösenord http://example.com
  • Använd .netrc-fil: curl --netrc-file .netrc http://example.com

HTTP-metoder

  • POST-begäran: curl -X POST -d 'name=value' http://example.com
  • PUT-begäran: curl -X PUT -d @file http://example.com
  • Anpassad metod: curl -X METHOD http://example.com

Rubriker och data

  • Lägg till anpassad rubrik: curl -H "X-Header: Value" http://example.com
  • Skicka JSON-data: curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
  • Skicka formulärdator: curl -F "key=value" -F "file=@localfile" http://example.com

SSL/TLS-alternativ

  • Ignorera SSL-certifikats verifiering: curl -k https://example.com
  • Använd klientcertifikat: curl --cert cert.pem --key key.pem https://example.com

Proxy och nätverk

  • Använd en proxy: curl -x proxysever.server.com:PORT http://example.com
  • Begränsa nedladdningshastighet: curl --limit-rate 1000B -O http://example.com/file

Utdatakontroll

  • Tyst läge: curl -s http://example.com
  • Utförligt läge: curl -v http://example.com
  • Skriv utdata till fil: curl -o file.html http://example.com
  • Spara med fjärrfilnamn: curl -O http://example.com/file.zip

Övrigt

  • Återuppta en misslyckad nedladdning: curl -C - -o partial_file.zip http://example.com/file.zip
  • Sätt en tidsgräns: curl --connect-timeout 10 http://example.com
  • Använd en konfigurationsfil: curl -K config_file http://example.com

Denna snabbreferens täcker de mest använda cURL-befäl och deras parametrar, och ger en snabb referens för olika HTTP-åtgärder och dataöverföringar.

Avancerade cURL-befäl

Här är några avancerade curl-befäl för felsökning:

  1. Utförlig utdata: curl -v https://example.com Detta befall ger detaljerad information om begäran och svaret, inklusive rubriker och anslutningsdetaljer.

  2. Full spårning (trace dump): curl --trace - https://example.com Detta ger en hexdump av all inkommande och utgående data, vilket ger en omfattande översikt över hela kommunikationen.

  3. Spårning med tidsstämplar: curl --trace - --trace-time https://example.com Detta lägger till tidsstämplar i spårningsutdata, vilket hjälper till att analysera tidsrelaterade problem.

  4. Visa endast svarsrubriker: curl -s -o /dev/null -D - https://example.com Detta befall visar endast svarsrubrikerna, vilket är användbart för snabb analys av rubriker.

  5. Visa endast begäranrubriker: curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' Detta komplexa befall filtrerar ut endast begäranrubrikerna, vilket är användbart för att inspektera vad som skickas.

  6. Använd Pantheon Debugger: curl -I -H "Pantheon-Debug:1" https://example.com Detta befall använder Pantheons Debug-rubrik för att få ytterligare information om en begäran, vilket är användbart för Pantheon-hostade webbplatser.

  7. Tvinga HTTP/2-protokollet: curl --http2 https://example.com Detta säkerställer användningen av HTTP/2-protokollet, vilket kan kombineras med -I för att verifiera HTTP/2-stöd.

  8. Felsök med netcat: I en terminal: nc -l 1234 I en annan: curl http://127.0.0.1:1234 Detta låter dig se exakt vad curl skickar, vilket är användbart för felsökning av last.

Dessa avancerade befäl ger kraftfulla felsökningsmöjligheter och låter utvecklare inspektera olika aspekter av HTTP-kommunikation och felsöka komplexa problem.

Vanliga användningsområden för cURL

curl är ett mångsidigt verktyg för kommandotolken med många användningsområden. Här är några av de vanligaste användningsområdena för curl:

Webbinteraktioner

  1. Nedladdning av filer: curl kan ladda ner filer från URL:er.
  2. Webbskräpning: curl kan hämta innehåll från webbsidor för skräpningsändamål.
  3. Testning av webbplatser: curl är användbart för att kontrollera om en webbplats är tillgänglig och hämta dess innehåll.

API-interaktioner

  1. Skicka API-begäran: curl stöder olika HTTP-metoder (GET, POST, PUT, DELETE) för att interagera med APIs.
  2. Testa API-endpunkter: curl ger ett snabbt sätt att testa och felsöka API-endpunkter utan att behöva en dedikerad API-klient.

Nätverksfelsökning

  1. Kontrollera anslutning: curl kan användas för att verifiera nätverksanslutningar och felsöka problem.
  2. Testa DNS: curl tillåter att man tvingar specifika DNS-servrar för att felsöka DNS-relaterade problem.
  3. Inspektera rubriker: curl kan visa HTTP-rubriker, vilket är användbart för felsökning.

Dataöverföring

  1. FTP-operationer: curl stöder filöverföringar med hjälp av File Transfer Protocol (FTP).
  2. SMTP-interaktioner: curl kan användas för att skicka e-post via Simple Mail Transfer Protocol (SMTP).

Säkerhet och autentisering

  1. SSL-anslutningar: curl stöder säkra anslutningar med hjälp av SSL/TLS.
  2. Autentisering: curl kan hantera olika autentiseringsmetoder, inklusive grundläggande autentisering och klientcertifikat.

Utveckling och felsökning

  1. Simulera olika HTTP-metoder: curl låter utvecklare testa olika HTTP-metoder enkelt.
  2. Utförlig loggning: curls utförliga läge ger detaljerad information om begäran-svar-cykeln, vilket underlättar felsökning.

Dessa användningsområden demonstrerar curls flexibilitet som ett verktyg för webbinteraktioner, API-testning, nätverksfelsökning och utvecklingsuppgifter.

Testa webbplatsprestanda med cURL

curl är ett kraftfullt verktyg för att testa webbplatsprestanda. Här är hur du kan använda det för att mäta olika aspekter av en webbplats laddningstid:

Grundläggande prestandatest

För att få en enkel mätning av en webbplats laddningstid, använd detta befall:

curl -o /dev/null -s -w "Total Time: %{time_total}s\n" "https://example.com"

Detta befall kommer att visa den totala tiden det tog att hämta webbplatsen[2].

Detaljerade prestandamätningar

För en mer omfattande analys kan du använda curl för att mäta flera prestandamätningar:

curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://example.com

Detta befall ger en uppdelning av olika steg i laddningsprocessen, inklusive DNS-uppslagstid, anslutningstid och total tid[1].

Avancerade mätningar

För ännu mer detaljerad analys kan du inkludera ytterligare mätningar:

curl -o /dev/null -w "HTTP Version: %{http_version}\nPage Size: %{size_download} bytes\nResponse Code: %{response_code}\nDNS Lookup: %{time_namelookup} sec\nConnect Time: %{time_connect} sec\nTime to First Byte: %{time_starttransfer} sec\nTotal Time: %{time_total} sec\n" -s https://example.com

Detta befall inkluderar information om HTTP-versionen, sidstorlek och svars kod[3].

Belastningstest med flera begäran

För att testa konsistens eller övervaka prestanda över tid kan du använda en loop för att göra flera begäran:

for i in {1..5}; do curl -o /dev/null -s -w "Request $i Total Time: %{time_total}\n" https://example.com; done

Detta kör testet fem gånger och visar den totala tiden för varje begäran[3].

Skapa ett prestandatestskript

Du kan skapa ett enkelt bash-skript för att automatisera dessa tester och spara resultaten:

#!/bin/bash
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"

Byt ut “URL” mot webbplatsen du vill testa. Detta skript sparar resultaten i en fil med tidsstämpel[5].

Genom att använda dessa curl-befäl och skript kan du effektivt mäta och övervaka webbplatsprestanda, vilket hjälper dig att identifiera potentiella flaskhalsar och optimera laddningstider.

Användbara länkar