Was ist Linux Curl?

青灯夜游
Freigeben: 2023-04-20 17:05:46
Original
3436 Leute haben es durchsucht

Unter Linux ist Curl ein sehr praktisches Tool zum Übertragen von Daten zum und vom Server. Es ist ein Dateiübertragungstool, das das Hochladen und Herunterladen von Dateien unterstützt , ein umfassendes Übertragungstool. Curl bietet viele sehr nützliche Funktionen, darunter Proxy-Zugriff, Benutzerauthentifizierung, FTP-Upload und -Download, HTTP POST, SSL-Verbindung, Cookie-Unterstützung, Breakpoint-Wiederaufnahme und so weiter.

Was ist Linux Curl?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Unter Linux ist Curl ein Dateiübertragungstool, das URL-Regeln verwendet, um unter der Befehlszeile zu arbeiten. Es kann als ein sehr leistungsfähiges HTTP-Befehlszeilentool bezeichnet werden. Es unterstützt das Hoch- und Herunterladen von Dateien und ist ein umfassendes Übertragungstool. Traditionell wird URL jedoch üblicherweise als Download-Tool bezeichnet.

curl ist ein sehr praktisches Tool zum Übertragen von Daten zu und von Servern. Zu den unterstützten Protokollen gehören (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET und TFTP) Curl ist so konzipiert, dass er die Arbeit ohne Benutzerinteraktion erledigt; Curl bietet viele sehr nützliche Funktionen, einschließlich Proxy-Zugriff, Benutzerauthentifizierung, FTP-Upload und -Download , HTTP POST, SSL-Verbindung, Cookie-Unterstützung, Breakpoint-Wiederaufnahme ...

1 Der am häufigsten verwendete Curl-Befehl

1. GET-Anfrage senden# ?? 🎜🎜# # 🎜🎜#3. Senden Sie eine JSON-Formatanforderung:

curl URL
Nach dem Login kopieren
curl URL?a=1&b=nihao
Nach dem Login kopieren

Darunter steht -H für den Header, - X#🎜 🎜# gibt an, welche Art von Anfrage (POST/GET/HEAD/DELETE/PUT/PATCH), -d

gibt an, welche Daten übertragen werden sollen. Diese werden am häufigsten verwendet.

Alle Curl-Befehle anzeigen: man curl oder curl -h Anforderungsheader: H,A,e Antwortheader: I,i,D Cookie: b,c ,j

Übertragung: F(POST),G(GET),T(PUT),X

Ausgabe: o,O,w Fortsetzbare Übertragung: r Debugging: v ,- -trace,--trace-ascii,--trace-time 2. Detaillierte Erläuterung der Curl-Befehlssyntax und der Curl-Befehlsparameter




1. Curl-Befehlssyntax


curl -X POST -d 'a=1&b=nihao' URL
Nach dem Login kopieren


2. 🎜 🎜#

Da die Linux-Curl-Funktion sehr leistungsfähig ist, gibt es in der folgenden Tabelle nur einige der von Aiezu (aiezu.com) ausgewählten Parameter Parameter, bitte führen Sie den Befehl „man curl“ aus, um sie anzuzeigen.

Bitte bitte --header "name: value"-H "name:" --header "name:"-A " string“ --user-agent „string“ Sie können auch „-H“, „--header option“ verwenden, um diese Option festzulegen; -e --referer -e „aiezu.com“ entspricht „-H „Referer: www.qq.com““; (HTTP) gibt nur HTTP-Header aus und ruft keinen Inhalt ab (HTTP/FTP/DATEI). Bei Verwendung für den HTTP-Dienst den http-Header der Seite abrufen -i-D - -dump-header < ;file>cookie(HTTP) Cookie-Daten senden an den HTTP-Server, Daten Das Format ist: „NAME1=VALUE1; NAME2=VALUE2“ Wenn in der Zeile kein „=" steht, wird der Parameterwert als Cookie-Dateiname behandelt Diese Cookie-Daten kann über die vom Server gesendete HTTP-Antwortheader-Zeile „Set-Cookie:“ abgerufen werden Server zur angegebenen Datei; -x [protocol://[user:pwd@]host[:port]HTTP-Proxy-Zugriff verwenden; wenn kein Port angegeben ist, wird standardmäßig Port 8080 verwendet; Protokoll ist standardmäßig http_proxy, andere mögliche Werte sind: --proxy 8.8.8.8: 8080;-p--socks4 --proxy-anyauth --proxy-basic --proxy-diges --anyauth --basic - -diges -d "string" --data "string" --data-ascii "string"
--data-binary "string"
--data-urlencode "string"
--basic (HTTP) weist Curl an, die HTTP-Basic-Authentifizierung zu verwenden (bei Verwendung des HTTP-Protokolls). ), die die Standardauthentifizierungsmethode ist; --ntlm(HTTP) verwendet die NTLM-Authentifizierungsmethode für das HTTP-Protokoll; --digest Verwenden Sie die Option „-u/--user“, um zu verhindern, dass Passwörter im Klartext gesendet werden. --negotiate (HTTP) verwendet GSS-Negotiate Authentifizierungsmethode für das HTTP-Protokoll; Sein Hauptzweck besteht darin, die Kerberos5-Authentifizierung zu unterstützen -u user:password Wenn Sie die von „SSPI“ geöffnete Curl-Bibliothek für die „NTLM“-Authentifizierung verwenden, können Sie die Option „-u:“ ohne Benutzernamen und Passwort verwenden, um Curl zu erzwingen Verwenden Sie den aktuell angemeldeten Benutzernamen und das Passwort zur Authentifizierung ;Certificate[:password]> ;(SSL) gibt die Zertifikatsdatei und das Zertifikatspasswort im „PEM“-Format an; --cert-type (SSL) gibt Curl den Typ des Zertifikats an vorausgesetzt: PEM, DER, ENG usw. ; Diese Zertifikate müssen im „PEM“-Format vorliegen. #🎜 🎜#(HTTPS/FTPS) Stellt eine Datei im PEM-Format zum Angeben einer Liste widerrufener Zertifikate bereit; (SSL) Durch die Einstellung dieser Option werden Verbindungen und Übertragungen mit ungesichertem SSL ohne Zertifikat ermöglicht. Andere--ciphers (SSL) Geben Sie die von SSL zu verwendende Verschlüsselungsmethode an, z. B.: „aes_256_sha_256“; OpenSSL-Verschlüsselungs-Engine Wird für Verschlüsselungsvorgänge verwendet. (SSL) ist der vom Zufalls-Seed-Generator EGD (Entropy Gathering Daemon socket) angegebene Pfadname;#🎜 🎜#-1/- -tlsv1 --tlsv1.1 --tlsv1.2 -2/--sslv2 (SSL) verwendet TLS-Version 1.0, um mit dem Remote-Server zu kommunizieren; SSL) verwendet TLS-Version 1.1 für die Kommunikation mit dem Remote-Server; (SSL) verwendet SSL-Version 2 für die Kommunikation mit dem Remote-Server; 🎜🎜# (SSL) verwendet SSL Version 3, um mit dem Remote-Server zu kommunizieren;# 🎜🎜#(SSL/SSH) Geben Sie das Passwort der privaten Schlüsseldatei an; # 🎜🎜#--pubkey ( SSH) Verwenden Sie Ihren öffentlichen Schlüssel, der von der angegebenen Datei bereitgestellt wird. Schnittstelle> Netzwerkkarte: eth1 IP: 8.8.8.8#🎜 🎜# Hostname: aiezu.com Sie können die Portnummer hinzufügen: eth1:20000-21000;--crlf#🎜 🎜#(FTP) Zeilenvorschub (LF) beim Hochladen in Wagenrücklauf-Zeilenvorschub (CRLF) umwandeln; (FTP)ftp-Kontoinformationen; -- ftp-method [method](FTP) Optionale Werte: multicwd /nocwd/singlecwd; -l --use-ascii(FTP/LDAP) Verwenden Sie den ASCII-Übertragungsmodus für FTP und LDAP; bei FTP ist es gleichwertig zur Verwendung des „type=A;“-Modus. --disable-eprtspeed limit--limit-rate Begrenzt die von Curl verwendete maximale Bandbreite; wenn die Einheit nicht angegeben ist, wird die Standardeinheit verwendet ist „Byte/Sekunde“, Sie können die Einheit auch als „K“, „M“, „G“ und andere Einheiten angeben, wie zum Beispiel: „--limit-rate 1m“ soll die maximale Bandbreite auf „1m Bytes“ begrenzen /Sekunde"; -y Diese Option steuert Übertragungen und wird daher nicht durchgeführt Auswirkungen auf langsame Verbindungen usw. Wenn dies ein Problem für Sie ist, versuchen Sie es mit der Option --connect-timeout.-Y#🎜 🎜#(HTTP) Curl erzwingen, HTTP 1.0 anstelle des Standard-HTTP 1.1 zu verwenden; Verwenden Sie Zugriff auf die angegebene Netzwerkkartenschnittstelle. #🎜 🎜# --request (HTTP) gibt die für die Kommunikation mit dem Server verwendete Anforderungsmethode an, z. B.: GET, PUT, POST, DELETE usw., Standard GET; #🎜🎜 #--no-buffer#🎜🎜 #--bufferAusgabestrompufferung aktivieren ; --location(HTTP/HTTPS) Folgen Sie dem HTTP-Antwortheader „Location:“, um weiterzuleiten zur Seite nach dem Sprung; #🎜🎜 # (Wird verwendet, wenn der HTTP-Antwortcode 3XX ist, z. B. 301 Sprung, 302 Sprung) --location-trusted# 🎜🎜#( HTTP/HTTPS) ist dasselbe wie „--location“, aber der Benutzername und das Passwort vor dem Sprung werden nach dem Sprung gesendet; 🎜🎜#--compressed#🎜 🎜#(HTTP)-Anfrage verwendet einen Komprimierungsalgorithmus, um den zurückgegebenen Inhalt zu komprimieren; Curl unterstützt die Dekomprimierung der GZIP-Komprimierung; #--connect-timeout #🎜 🎜#-m Sekunden - -max-time seconds-s -- leises --retry-delay Anzahl der fehlgeschlagenen Wiederholungsversuche; 🎜# Wiederholungsintervall; Maximale Wiederholungstestzeit; Anzeige Fehlermeldung im Ruhemodus; -o file Den zurückgegebenen Inhalt in die Datei ausgeben. Wenn Sie Platzhalter verwenden, um mehrere URLs zu erhalten, können Sie „#“ gefolgt von „numerischer Sequenznummer“ verwenden. Curl ersetzt es automatisch durch das entsprechende Schlüsselwort, z. B.: Wird gespeichert als: "a.txt", "b.txt"; wird gespeichert als: a1.txt, a2.txt, a3.txt, b1.txt, b2.txt, b3.txt Wenn Sie ein Speicherverzeichnis gemäß den Regeln erstellen möchten, lesen Sie: „--create-dirs“ -O --remote- name-w --write-out format Formatparameter können „n“, „r“, „t“ und andere Escape-Zeichen verwenden; #🎜 🎜#--trace Speichern Sie alle eingehenden und ausgehenden Daten in einer Datei, einschließlich Beschreibungsinformationen. Verwenden Sie „-“ als Dateinamen, um die Ausgabe an den Standard zu senden Ausgabe . --trace-ascii file Verwenden Sie „-“ als Dateinamen, um die Ausgabe an die Standardausgabe zu senden. aus der Konfigurationsdatei Parameter lesen, siehe: http://curl.haxx.se/docs/-v#🎜🎜 #Detailliertere Informationen anzeigen, beim Debuggen verwenden; -M# 🎜🎜#Komplettes Hilfehandbuch anzeigen; --helpHilfe zur Verwendung von Linux Curl;#🎜🎜 #
Parametergruppe Parameter Beschreibung
URL URL Eine oder mehrere URLs, die gecrawlt werden müssen;
Mehrere Möglichkeiten zur Verwendung der folgenden Platzhalter:
1. http://{www , ftp,mail}.aiezu.com; 2. http://aiezu.com/images/[001-999].jpg 3. http://aiezu.com/images/[1-999].html ;
4. ftp://aiezu.com/file[a-z].txt

header

-H "name: value"

(HTTP) Einen http-Header hinzufügen (http-Anforderungsheader);

(HTTP) Einen http-Header entfernen (http-Anforderungsheader);


(HTTP) Legt den HTTP-Anforderungsheader „User-Agent“ fest. Der Server kann „User-Agent“ verwenden, um den vom Client verwendeten Browsernamen und Betriebssystemtyp zu ermitteln . Fälschung Dieser Parameter kann dazu führen, dass der Server falsche Urteile trifft.



(HTTP), um die Quellseite festzulegen Teilen Sie dem http-Dienst beim Zugriff mit, von welcher Seite aus er auf diese Seite zugreifen soll.
-I
- -head
(z. B.: curl -I http://aiezu.com)
Bei Verwendung für FTP/DATEI werden die Dateigröße und der Zeitpunkt der letzten Änderung ermittelt;
(z. B.: curl -I file://test.txt)

--include

(HTTP) HTTP-Header ausgeben und Inhalt zurückgeben;


(HTTP) HTTP-Antwortheader in die angegebene Datei ausgeben;
-b name=data
--cookie name=data
Der angegebene Parameterwert ist „-“ Wird an die Standardausgabe „wie die Konsole“ weitergeleitet

-j
--junk-session-cookies

(HTTP) weist Curl an, zu verwerfen alle „Sitzungscookies“;
Entspricht einem Neustart des Browsers
Proxy

-x host:port
--proxy [protocol ://[user:pwd@]host[:port]
http_proxy , HTTPS_PROXY, Socks4, Socks4a, Socks5;
Zum Beispiel:
-x "http_proxy://aiezu:123@aiezu.com:80"
-- Proxytunnel Verwenden Sie den Proxy des Parameters „-x“ als Kanal zum Proxy von Nicht-HTTP-Protokollen wie ftp;


--socks4a
--socks5


SOCKS4A-Proxy verwenden;
Dieser Parameter überschreibt den „-x“-Parameter;
--proxy- Negotiate
--proxy-ntlm
HTTP-Proxy-Authentifizierungsmethode, siehe:
--negotiate
--ntlm

-U
- -proxy-user

Legen Sie den Proxy-Benutzernamen und das Passwort fest;
data
Transfer

-G
--get

Wenn dieser Parameter verwendet wird, werden die Parametereinstellungen „-d/“, „--data“ und „--data-binary“ an die URL angehängt und im GET-Modus angefordert



-d @file
(HTTP) verwendet HTTP POST, um „Schlüssel/Wert-Paar“-Daten zu senden, was einem entspricht Browser-Formularattribute (method="POST", enctype="application/x-www-form-urlencoded")
-d, --data: HTTP-POST-Daten
--data-ascii: HTTP-POST-ASCII-Daten
- -data-binary: HTTP-POST-Binärdaten;
--data-urlencode: HTTP-POST-Daten (URLcode);
Wenn die Daten mit „@“ beginnen und von einer Datei gefolgt werden, wird der Inhalt in der Postdatei gepostet;
-F name=@file
-F name= -F name=content
--form name=content
(HTTP) Verwenden Sie HTTP POST, um Daten mehrerer Typen ähnlich wie „form Felder" , was dem gleichzeitigen Festlegen der Browser-Formularattribute (method="POST", enctype="multipart/form-data") entspricht. Mit diesem Parameter können Sie Binärdateien hochladen.

Wenn der Feldinhalt mit „@“ beginnt, sollte der verbleibende Teil der Dateiname sein und Curl lädt die Datei hoch, wie zum Beispiel:
curl -F "pic=@pic.jpg" http://aiezu.com ;
curl -F "page=@a.html;type=text/html" http://aiezu.com
curl -F "page=@/tmp/a;filename=a.txt" http://aiezu .com

Wenn der Feldinhalt mit „<“ beginnt, sollte der verbleibende Teil der Dateiname sein und Curl ruft den Wert dieses Felds aus der Datei ab, z. B.: curl -F „text=
--form-string (HTTP) ähnelt „--form“, aber „@“ und „<“ haben keine besondere Bedeutung;
-T file
--upload-file file
Übertragen Sie die Datei über „put“ an die Remote-URL.

Der Optionsparameter verwendet nur das Zeichen „-“, und der Dateiinhalt wird angezeigt stdin durchlesen
Zum Beispiel:
cat test .txt|curl "http://aiezu.com/a.php" -T -
curl "http://aiezu.com/a.php" -T - < ;test.txt

Dieser Parameter kann auch als Platzhalter verwendet werden:
curl -T "{file1,file2}" http://aiezu.com
curl -T "img[1-1000].png" http:// aiezu.com
Haltepunkt
Fortsetzen
-C
--continue-at
Setzen Sie den Haltepunkt fort und fahren Sie mit dem Herunterladen/Hochladen ab der angegebenen Position im Dateikopf fort;
offset Die Position, an der der Lebenslauf beginnt, wenn der Offset-Wert „-“ ist, identifiziert Curl automatisch die Startposition in der Datei und startet die Übertragung
-r
--range
( HTTP/FTP/SFTP/FILE) überträgt nur den angegebenen Inhaltsteil:
0-499: die ersten 500 Bytes;
-500: die letzten 500 Bytes;
0-0,-1 : das erste und letzte 1 Byte ;
100-199.500-599: Zwei 100 Bytes;


Authentifizierung

(HTTP). ) verwendet die HTTP-Digest-Authentifizierung für das HTTP-Protokoll.
--user user:password Benutzername und Passwortauthentifizierung verwenden. Dieser Parameter überschreibt die Optionen „-n“, „--netrc“ und „--netrc-optional“. Geben Sie einen Benutzernamen ein und Curl fordert Sie auf, ein Passwort einzugeben.
Der Standardwert ist „PEM“; muss im „PEM“-Format vorliegen; Die folgenden CA-Zertifikate werden zur Überprüfung verwendet.
SSL
Verwenden Sie „curl --engine list“, um die Liste der unterstützten Verschlüsselungs-Engines anzuzeigen
# 🎜🎜#(SSL) gibt den Dateipfadnamen an, der zufällige Daten enthält; die Daten werden verwendet, um zufällige Seeds für SSL-Verbindungen zu generieren; egd-file < file>
--tlsv1.0
- 3/--sslv3# 🎜🎜#
(SSL) verwendet TLS Version 2, um mit dem Remote-Server zu kommunizieren;
(SSL) verwendet TLS-Version 1.2 für die Kommunikation mit dem Remote-Server;
Privater Schlüssel
Öffentlicher Schlüssel
- -key (SSL/SSH) Geben Sie einen privaten Schlüsseldateinamen an. Versuchen Sie automatisch, die folgenden Dateien zu verwenden, wenn sie angegeben werden: „~/.ssh/id_rsa“, „~/.ssh /id_dsa", "./id_rsa'", "./id_dsa"; (SSL) gibt den Dateityp des privaten Schlüssels an, unterstützt: DER, PEM, ENG, der Standardwert ist PEM

(FTP) Legen Sie im aktiven FTP-Modus eine Adresse fest, die auf die Serververbindung wartet, z. B.:


#--ftp-pasv#🎜 🎜#
(FTP) verwendet PASV (passiv)/EPSV-Modus; 🎜#(FTP ) Wenn Sie PASV verwenden, überspringen Sie die angegebene IP wann;

--list-only

(FTP) listet die FTP-Dateiliste auf;


-B

--disable-epsv (FTP) weist Curl an, EPSV nicht zu verwenden, wenn PASV (passiver Modus) ist; 🎜🎜#
(FTP) weist Curl an, EPRT und LPRT im aktiven Modus zu deaktivieren; #🎜🎜 #
--speed-time Wenn ein Download langsamer als die Geschwindigkeit ist -Limit Bytes pro Sekunde während eines Geschwindigkeitszeitraums, der Download wird abgebrochen, wenn Speed-Time verwendet wird, ist das Standard-Geschwindigkeitslimit 1, sofern nicht mit -Y festgelegt.
--speed-limit Wenn ein Download für speed-time Sekunden langsamer als diese angegebene Geschwindigkeit (in Bytes pro Sekunde) ist, wird speed-time mit -y und eingestellt ist 30, wenn nicht festgelegt.
Andere
Option
-0/--http1.0-X
#🎜🎜 # --no-keepalive

Schalten Sie die Keepalive-Funktion aus;
Ausgabestrompufferung deaktivieren;
#🎜🎜 # -L
Geben Sie das maximale Verbindungszeitlimit in Sekunden an.
# 🎜🎜#Begrenzt die maximale Zeit für den gesamten Lockenvorgang in Sekunden

leises Modell. Zeigt keinen Fortschrittsbalken oder keine Fehlermeldung an. 🎜🎜#(HTTP) Wenn die Verbindung fehlschlägt (Fehler 400 oder höher), wird nicht die Standardfehlerseite, sondern der Curl-Fehlercode „22“ zurückgegeben; --retry
--retry-max-time
--show-error
Output#🎜 🎜# --output file
​curl „http: //aiezu.com/{a,b}.txt" -o "#1.txt";#🎜 🎜# curl "http ://aiezu.com/{a,b}_[1-3].txt" -o "#1#2.txt";

„-“ angeben Wird zur Standardausgabe „wie die Konsole“ weitergeleitet;

gibt die Inhaltsausgabe zurück. Gehen Sie zu der Datei mit demselben Namen wie die Datei in der URL (ohne das Verzeichnis) im aktuellen Verzeichnis. Verwenden Sie den Parameter „-o“, um die zu erstellen notwendige lokale Verzeichnishierarchie
#🎜🎜 #Nach Abschluss des Vorgangs den angegebenen Inhalt anhängen bis zum Ende der Rückgabeinformationen; der anzufügende Inhalt kann eine Zeichenfolge „string“ sein, „@filename“ aus der Datei abrufen, „@-“ aus der Standardeingabe abrufen
#🎜 🎜# Im Format Parameter, Sie können %{variable_name} verwenden, um Variablen zu verwenden, die sich auf die Antwortinformationen beziehen, wie zum Beispiel: %{content_type}, %{http_code}, %{local_ip}..., weitere Variablen finden Sie unter „man curl“ ; # 🎜🎜#


Alle ein- und ausgehenden Daten in die Datei sichern, einschließlich Beschreibungsinformationen, nur den ASCII-Teil sichern, einfacher zu machen read;
Diese Option überschreibt die zuvor verwendeten Optionen -v, --verbose, --trace-ascii; fügt Zeitinformationen zur Dump-Datei hinzu; # --config
#🎜🎜 # --verbose

Hilfe#🎜 🎜#
--manual

-h

Vollständige Parametererklärung von curl -h:

Kann „jede“ Authentifizierungsmethode verwenden --basic                                                                                                                                 -data-ascii < data> - DIGEST aushandeln 字 Digitale Authentifizierung verwenden -Disable-EPRT Verbotene Verwendung von EPRT oder LPRT-Disable-Epsv Verbotene Verwendung von EPSV- EGD-Datei & lt; Typ> ​​​​​​​ Privater Schlüsseldateiname (SSL)--key-type                           ​​​​​ Passwort für den privaten Schlüssel ( „--engine list“ für Liste--cacert ​​​​​​CA-Zertifikat (SSL)--capath                                                                                                                                                                                                                                               .--ftp-method cwd]--ftp-pasv Verwenden Sie PASV/EPSV anstelle von Port S-FTP-SKIP-PASV-IP Ignorieren Sie bei Verwendung von PASV die IP-Adresse -FTP-SSL Versuchen Sie, SSL/TLS zur Übertragung von FTP-Daten zu verwenden - SSL-Reqd erfordert die Verwendung von SSL/TLS zur Übertragung der FTP-Datenübertragung -F/-Form & LT;und []-IGNORE-Content-Length - -I/-Head-only display document information -J/-junk-session-cookies Ignorieren Sie beim Lesen von Dateien die Sitzung cookie-interface & lt; interface & gt; Die angegebene Netzwerkschnittstelle/Adresse verwenden --krb4                                                ​​ SSL-Sites ohne Zertifikate zulassen-K/ - -CONFIG 的 Die angegebene Konfigurationsdatei lautet -l/-list-only listet den Dateinamen im FTP-Verzeichnis auf -Limit -rate & lt; rate & gt; Stellen Sie die Übertragung ein Geschwindigkeit --local-port                                                                                                                                                   Maximale Übertragungszeit festlegen --max-redirs M/--manuell.                                                      E-N/--Netrc Lesen Sie den Benutzernamen und das Passwort aus dem NETRC-Datei. Verwenden Sie die HTTP-NTLM-Authentifizierung -N/--no-buffer                                        Portadresse anstelle von PASV verwenden--range-file    🎜# --retry-max-time           S/--show-error      Show error--socks4                                                                  ###-# -Socks5 & LT; HOST [: Port] & GT;#🎜 🎜#--trace-time                                                                                     🎜##🎜 🎜#-X/--request Übertragungszeiteinstellung SSLV3 (SSL) Gefällt mir -Q für die Quell-URL für die Übertragung an Dritte URL, Drittanbieterübertragung verwenden 3-3P-Benutzer -4/-IPv4 -6/ -IPv6

3. Exit-Codes für den Linux-Curl-Befehl

Im Folgenden sind die Fehlercodes des Linux-Curl-Befehls und die entsprechenden Fehlermeldungen aufgeführt, die in rauen Umgebungen auftreten können.

-a/--append                                                                                                                                                                                                                           ​
--ciphers                                                                                                                          Beim Hochladen wird LF in CRLF konvertiert
- -ftp-create-dirs                                                          Wenn das Remote-Verzeichnis nicht existiert, erstellen Sie das Remote-Verzeichnis
Kontrollieren Sie die Verwendung von CWD
-G/--get    Help
-H/--header 递 Benutzerdefinierte Header-Informationen werden an den Server übergeben
Die Länge der http-Header-Informationen
-p/--proxytunnel                                                                                                            uth                                                                               #🎜🎜 #Wählen Sie eine beliebige Proxy-Authentifizierungsmethode aus. 🎜🎜 #--proxy-digest     🎜🎜#- -proxy-ntlm                                                                                                                                                                      #🎜🎜 #
#🎜 🎜#-Q/--quote einen Befehl an den Server senden
-R/--remote-time                                                                                                                          ​ --retry                                      🎜#
🎜🎜#SOCKS5-Proxy verwenden, um den Host und den Port anzugeben#🎜🎜 ## 🎜🎜 ## 🎜🎜# -t/--telnet-option < ;OPT=val>                                                   🎜🎜#--trace-ascii Hex-Ausgabe
--url                                                            U/--proxy-user < Benutzer[:Passwort]> 🎜#Versionsinformationen anzeigen
-y/--speed-time                                                                                                  Der Standardwert ist 30
-Y/-Speed-Limit , um die Begrenzung der Übertragungsgeschwindigkeit zu stoppen, Geschwindigkeitszeit 'Sekunden-z/-Zeitbedingung
-0 //- -http1.0 2/--sslv2                                                                                                                                                                                                                                bis -3/-SSLV3
--3p-Quote
-3p- URL
Benutzername und Passwort verwenden, um Drittanbieterübertragung durchzuführen
IP4 verwenden
Verwenden Sie IP6
退出码 错误描述
1 Nicht unterstütztes Protokoll. Dieser Curl-Build unterstützt dieses Protokoll nicht.
2 Initialisierung fehlgeschlagen.
3 URL fehlerhaft. Die Syntax war nicht korrekt.
5 Proxy konnte nicht aufgelöst werden. Der angegebene Proxy-Host konnte nicht aufgelöst werden.
6 Der Host konnte nicht aufgelöst werden. Der angegebene Remote-Host wurde nicht aufgelöst.
7 Verbindung zum Host fehlgeschlagen.
8 Seltsame FTP-Serverantwort. Die vom Server gesendeten Daten konnten nicht analysiert werden.
9 FTP-Zugriff verweigert. Der Server verweigerte die Anmeldung oder verweigerte den Zugriff auf die bestimmte Ressource oder das Verzeichnis, auf die Sie zugreifen wollten. Meistens haben Sie versucht, in ein Verzeichnis zu wechseln, das auf dem Server nicht existiert.
11 FTP seltsame PASS-Antwort. Curl konnte die auf die PASS-Anfrage gesendete Antwort nicht analysieren.
13 FTP seltsame PASV-Antwort, Curl konnte die auf die PASV-Anfrage gesendete Antwort nicht analysieren.
14 FTP seltsames 227-Format. Curl konnte die vom Server gesendete 227-Zeile nicht analysieren.
15 FTP kann den Host nicht abrufen. Die Host-IP, die wir in der 227-Zeile erhalten haben, konnte nicht aufgelöst werden.
17 FTP konnte die Binärdatei nicht festlegen. Die Übertragungsmethode konnte nicht in Binär geändert werden.
18 Teildatei. Nur ein Teil der Datei wurde übertragen.
19 FTP konnte die angegebene Datei nicht herunterladen/auf sie zugreifen, der RETR-Befehl (oder ein ähnlicher Befehl) ist fehlgeschlagen.
21 FTP-Zitatfehler. Ein Zitatbefehl hat einen Fehler vom Server zurückgegeben.
22 HTTP-Seite nicht abgerufen. Die angeforderte URL wurde nicht gefunden oder hat einen anderen Fehler mit einem HTTP-Fehlercode von 400 oder höher zurückgegeben. Dieser Rückkehrcode erscheint nur, wenn -f/--fail verwendet wird.
23 Schreibfehler. Curl konnte keine Daten in ein lokales Dateisystem oder ähnliches schreiben.
25 FTP konnte die Datei nicht speichern. Der Server hat den STOR-Vorgang verweigert, der für den FTP-Upload verwendet wird.
26 Lesefehler. Verschiedene Leseprobleme.
27 Nicht genügend Speicher. Eine Speicherzuweisungsanforderung ist fehlgeschlagen.
28 Zeitüberschreitung beim Vorgang. Der angegebene Timeout-Zeitraum wurde gemäß den Bedingungen erreicht.
30 FTP-PORT fehlgeschlagen. Der PORT-Befehl ist fehlgeschlagen. Nicht alle FTP-Server unterstützen den PORT-Befehl. Versuchen Sie stattdessen eine Übertragung mit PASV!
31 FTP konnte REST nicht verwenden. Der REST-Befehl ist fehlgeschlagen. Dieser Befehl wird für wiederaufgenommene FTP-Übertragungen verwendet.
33 HTTP-Bereichsfehler. Der Bereich „Befehl“ hat nicht funktioniert.
34 HTTP-Beitragsfehler. Interner Fehler bei der Generierung der Anfrage.
35 SSL-Verbindungsfehler. Der SSL-Handshaking ist fehlgeschlagen.
36 FTP-Download fehlerhaft. Fortsetzung. Ein zuvor abgebrochener Download konnte nicht fortgesetzt werden.
37 FILE konnte die Datei nicht lesen. Die Datei konnte nicht geöffnet werden. Berechtigungen?
38 LDAP kann nicht gebunden werden. LDAP-Bindungsvorgang fehlgeschlagen.
39 LDAP-Suche fehlgeschlagen.
41 Funktion nicht gefunden. Eine erforderliche LDAP-Funktion wurde nicht gefunden.
42 Durch Rückruf abgebrochen. Eine Anwendung hat Curl angewiesen, den Vorgang abzubrechen.
43 Interner Fehler. Eine Funktion wurde mit einem fehlerhaften Parameter aufgerufen.
45 Schnittstellenfehler. Eine angegebene ausgehende Schnittstelle konnte nicht verwendet werden.
47 Zu viele Weiterleitungen. Beim Verfolgen von Weiterleitungen erreichte Curl den Maximalwert.
48 Unbekannte TELNET-Option angegeben.
49 Falsche Telnet-Option.
51 Das SSL-Zertifikat oder der SSH-MD5-Fingerabdruck des Peers war nicht vorhanden ok.
52 Der Server hat nichts geantwortet, was hier als Fehler angesehen wird.
53 SSL-Krypto-Engine nicht gefunden.
54 SSL-Krypto-Engine kann nicht als festgelegt werden Standard.
55 Fehler beim Senden von Netzwerkdaten.
56 Fehler beim Empfangen von Netzwerkdaten.
58 Problem mit dem lokalen Zertifikat.
59 Konnte nicht Verwenden Sie die angegebene SSL-Verschlüsselung.
60 Peer-Zertifikat kann nicht mit bekannten CA-Zertifikaten authentifiziert werden.
61 Unbekannte Übertragungskodierung.
62 Ungültige LDAP-URL.
63 Maximale Dateigröße überschritten.
64 Angeforderte FTP-SSL-Ebene fehlgeschlagen.
65 Das Senden der Daten erfordert einen Rücklauf, der fehlgeschlagen ist.
66 Die SSL-Engine konnte nicht initialisiert werden.
67 Der Benutzername, das Passwort oder ähnliches wurde nicht akzeptiert und Curl konnte sich nicht anmelden.
68 Datei nicht auf dem TFTP-Server gefunden.
69 Berechtigungsproblem auf dem TFTP-Server.
70 Nicht genügend Speicherplatz auf dem TFTP-Server.
71 Unzulässiger TFTP-Vorgang .
72 Unbekannte TFTP-Übertragungs-ID.
73 Datei existiert bereits (TFTP).
74 Kein solcher Benutzer (TFTP).
75 Zeichenkonvertierung fehlgeschlagen.
76 Zeichenkonvertierungsfunktionen erforderlich.
77 Problem beim Lesen des SSL-CA-Zertifikats (Pfad? Zugriffsrechte?).
78 Die in der URL referenzierte Ressource funktioniert nicht vorhanden.
79 Während der SSH-Sitzung ist ein nicht näher bezeichneter Fehler aufgetreten.
80 Die SSL-Verbindung konnte nicht heruntergefahren werden.
82 Die CRL-Datei konnte nicht geladen werden, fehlt oder ist falsch Format (hinzugefügt in 7.19.0).
83 Ausstellerprüfung fehlgeschlagen (hinzugefügt in 7.19.0).
XX In zukünftigen Versionen werden hier weitere Fehlercodes angezeigt. Die bestehenden sollen sich niemals ändern.

4. Allgemeine Verwendung

1. Download (Option:-o oder Option:-O)

1.1. Download-Seite:

curl -o dodo1.jpg http:www.linux.com/ dodo1.JPG
#Bitte beachten Sie, dass die URL nach -O spezifisch für eine bestimmte Datei sein muss, sonst wird sie nicht erfasst
curl -O http://www.linux.com/dodo1.JPG

1.2: Loop-Download
Manchmal sind die Namen der ersten Teile der heruntergeladenen Bilder gleich, aber die Namen der letzten Schwanzwirbel sind unterschiedlich. Dadurch werden alle Dodo1, Dodo2, Dodo3, Dodo4 und Dodo5 gespeichert. Die JPG-Datei wird nach dem Herunterladen zu hello_dodo1.JPG und so weiter für andere Dateien, wodurch effektiv vermieden wird, dass die Datei überschrieben wird
curl -o #1_#2.JPG http://www.linux.com/{hello ,bb}/ dodo[1-5].JPG

Weil die Dateinamen im heruntergeladenen Hallo und BB alle dodo1, dodo2, dodo3, dodo4, dodo5 sind. Daher überschreibt der zweite Download den ersten Download, sodass die Datei umbenannt werden muss.
curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

1.4: In Blöcken herunterladen (Option: -r)

curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG

curl -r 200- -o dodo1_part3 .JPG http://www.linux.com/dodo1.JPG

cat dodo1_part* > dodo1.JPG #Auf diese Weise können Sie den Inhalt von dodo1.JPG

1.5 anzeigen: Dateien über FTP herunterladen (Option: -u)
Curl kann Dateien über FTP herunterladen. Curl bietet zwei Syntaxen zum Herunterladen von FTP. Curl -O -u Benutzername: Passwort ftp://www.linux.com/dodo1.JPG. Curl -O ftp://Benutzername: Passwort @ www.linux.com/dodo1.JPG

1.6: Herunterladen, Fortschrittsbalken anzeigen (Option: -#) oder Fortschrittsbalken nicht anzeigen (Option: -s)

curl -# -O http://www .com/dodo1.JPG
curl -s -O http://www.linux.com/dodo1.JPG

1.7, herunterladen, Übertragung vom Haltepunkt fortsetzen (-C )

Übertragung vom Haltepunkt fortsetzen, Fortfahren Herunterladen/Hochladen von der angegebenen Position im Dateikopf; Versatz der Startposition der Lebenslaufübertragung. Wenn der Versatzwert „-“ ist, identifiziert Curl automatisch die Startposition in der Datei und startet die Übertragung centos6.8. iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso

curl -C -O http://www.linux.com /dodo1.JPG

2. Datei hochladen (Option: -T)


curl -T dodo1.JPG -u Benutzername: Passwort ftp://www.linux.com/img/

3 . Gefälschte Quellseite|Gefälschter Referrer|Hotlink (Option: -e)

Viele Server überprüfen den Referrer des HTTP-Zugriffs, um den Zugriff zu kontrollieren. Beispiel: Sie besuchen zuerst die Homepage und greifen dann auf die E-Mail-Seite auf der Homepage zu. Die Referrer-Adresse der E-Mail-Adresse ist hier die Seitenadresse, wenn der Server feststellt, dass dies die Referrer-Adresse der E-Mail-Seite ist nicht die Adresse der Homepage, es wird festgestellt, dass es sich um eine gestohlene Verbindung handelt.

#Dadurch denkt der Server, dass Sie auf einen Link von www.linux.com geklickt haben. mail.linux.com #Tell Love the E-Familie, ich komme aus Baidu curl -e http://baidu.com http://aiezu.com

4. Gefälschte Proxy-Ausrüstung (nachgeahmter Browser)



Einige Websites müssen bestimmte Browser verwenden, um darauf zuzugreifen, und einige erfordern die Verwendung bestimmter Versionen. Curls integrierte Option: -A ermöglicht es uns, den Browser für den Zugriff auf die Website anzugeben

curl -A „Mozilla/4.0 (kompatibel; MSIE 8.0; Windows NT 5.0)“ http://www.linux.com

#Tell the E Leute, ich bin ein GOOGLE-Crawler-Spider (eigentlich bin ich der Curl-Befehl) curl -A "Mozilla/5.0 (kompatibel; Googlebot/2.1; +http://www.google.com/bot.html)" http: //aiezu.com #Sagen Sie Aiezu, ich verwende den integrierten Browser von WeChat request

5.1. HTTP-Anfrageheader festlegen (oder Option:-H oder Option:--head)
curl -H „Cache-Control:no-cache“ http://aiezu.com

5.2 Server und anderer Port (Option::-x)
#Oft müssen Sie einen Proxyserver verwenden, um auf das Internet zuzugreifen (z. B. wenn Sie einen Proxyserver verwenden, um auf das Internet zuzugreifen, oder Ihre IP-Adresse von anderen blockiert wird, weil Sie Verwenden Sie Curl auf den Websites anderer Leute. Glücklicherweise verwendet Curl die integrierte Option: -x, um das Festlegen eines Proxys zu unterstützen. Curl -x 192.168.100.100:1080 http://www.linux.com. 6, http-Antwort Kopfzeile

6.1. HTTP-Antwortheader anzeigen (Option: -I)
# Sehen Sie, wie der http-Header dieser Website aussieht
curl -I http://aiezu.com
Ausgabe:
HTTP/1.1 200 OK
Datum: Fr, 25. Nov. 2016 16:45:49 GMT
Server: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/
Läuft ab: Do, 19. Nov. 1981 08:52:00 GMT
Cache-Kontrolle: no-store, no - Cache, muss erneut validiert werden, Post-Check=0, Pre-Check=0
Pragma: no-cache
Inhaltstyp: text/html; charset=utf-8
6.2 Header-Informationen in der Antwort (Option: -D)
curl -D cookied.txt http://www.linux.com
Nach der Ausführung werden die Cookie-Informationen in cookied.txt gespeichert
Hinweis: -c (Kleinbuchstaben) Die Die generierten Cookies unterscheiden sich von den Cookies in -D.

7. Formulardaten sendencurl -F "pic=@logo.png" -F "site=aiezu" http://aiezu.com/

8. Cookie 8.1. Cookies senden (Option:-b)

#Einige Websites verwenden Cookies, um Sitzungsinformationen aufzuzeichnen. Für Browser wie Chrome können Cookie-Informationen problemlos verarbeitet werden, Cookies können jedoch auch einfach verarbeitet werden, indem relevante Parameter in Curl hinzugefügt werden

curl -b "domain=aiezu.com" http://aiezu.com
#Viele Websites Sie alle überwachen Ihre Cookie-Informationen, um festzustellen, ob Sie ihre Website gemäß den Regeln besuchen. Daher müssen wir die gespeicherten Cookie-Informationen verwenden. Integrierte Option: -b
curl -b cookiec.txt http://www.linux.com

8.2. Speichern Sie die Cookie-Informationen in der http-Antwort (Option: -c)

Nach der Ausführung werden die Cookie-Informationen in der Die http-Antwort lautet „Es wird in cookiec.txt gespeichert.“ -v http://www.linux.com


9.2. Rückgabewert der Webseite testen (Option: -w [Format])
curl -o /dev/null -s -w %{http_code} www.linux.com

10. Speichern Sie die besuchte Webseite (>>)

2.1: Verwenden Sie die Umleitungsfunktion von Linux, um
Curl http://www.linux.com >> zu speichern

11. Anforderungsmethode

curl -i -v -H '' -X POST -d '' http:www.test.com/a/b Darunter -X POST -d, -X GET -d, -X PUT -d entspricht -F, -G -d bzw. -PNehmen Sie eine Post-Anfrage als Beispiel:

11.1, -X POST -d

(11.1.1), POST application/x -www-form-urlencoded
application/x-www-form-urlencoded ist die Standardeinstellung

curl -X POST -d "param1=value1¶m2=value2" http://localhost:3000/data

Äquivalent zu curl -H " Content-Type:application/ x-www-form-urlencoded" -X POST -d "param1=value1¶m2=value2" http://localhost:3000/data Datendateien verwenden curl -X POST -d "@data. txt“ http:// localhost:3000/data Der Inhalt von data.txt lautet wie folgt: param1=value1¶m2=value2

(11.1.2), POST application/json
curl -H „Content-Type:application/ json“ – data.json“ http://localhost :3000/data

Der Inhalt von data.json ist wie folgt: {“key1“: „value1“, „key2“ „value2“}

Ein weiteres Beispiel:
curl -H „ Content-type:application/json“ -X POST -d „{“app_key“: „$appKey“, „time_stamp“: „$time“}“ http://www.test.com.cn/a/b

11.2、-F
curl -v - H "token: 222" -F "file=@/Users/funglio/Downloads/401.png" localhost:8000/api/v1/upimg

curl -f http:/ /www.linux.com/error

11.3. Andere Beispiele

(11.3.1),


curl -X POST "http://www.test.com/e/f" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
-d "a=b"
-d "c=d"
-d "e=f"
-d "g=h"

(11.3.2), Fehler: curl - i -G -d "a=b#1&c=d" http://www.test.com/e/f

Richtig: Verwenden Sie URL-Code, um Parameterwerte zu konvertieren spezielle Symbole
curl -i -G -d "a=b%231&c=d" http://www.test.com/e/f

12. Debugging

curl -v可以显示一次http通信的整个过程,包括端口连接和http request头信息。
如果觉得还不够,那么下面的命令可以查看更详细的通信过程:
curl --trace output.txt www.baidu.com 或者 curl --trace-ascii output.txt www.baidu.com 
运行后,请打开output.txt文件查看。
curl --trace output.txt  http://www.baidu.com
curl --trace-ascii output2.txt  http://www.baidu.com
curl --trace output3.txt --trace-time http://www.baidu.com
curl --trace-ascii output4.txt --trace-time http://www.baidu.com 

举例:有需求每5分钟请求一次http://www.test.com/a/b生成一个日志文件。希望一月的日志(正确的和错误的)能写入一个日志文件
day=`date +%F`
logfile='/var/logs/www.test.com_'`date +%Y%m`'.log'
/usr/bin/echo -e "\n\n[${day}] Start request \n " >> ${logfile}
/bin/curl -v "http://www.test.com/a/b" -d "ccccc" 1>> ${logfile} 2>> ${logfile} --trace-time
/usr/bin/echo -e "\n\n[${day}] End request\n" >> ${logfile}

13、显示抓取错误

curl -f http://www.linux.com/error
Nach dem Login kopieren

相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonWas ist Linux Curl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage