GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was bedeutet curl -k -i -X ​​unter Linux?

-k, --insecure :Wenn Sie sich auf einer Website bewegen, die ein selbstsigniertes SSL-Zertifikat verwendet dann gibt curl Ihnen einen Fehler aus, da curl das Zertifikat nicht verifizieren konnte . In diesem Fall könnten Sie -k verwenden oder --insecure Flag zum Überspringen der Zertifikatsvalidierung .

Beispiel:

[[email protected]]$ curl --head https://xxx.xxx.xxx.xxx/login

curl: (60) Peer's Certificate issuer is not recognized. 
More details here: http://curl.haxx.se/docs/sslcerts.html 
curl performs SSL certificate verification by default, using a 
"bundle" of Certificate Authority (CA) public keys (CA certs).
If the default bundle file isn't adequate, you can specify an 
alternate file using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented 
in the bundle, the certificate verification probably failed 
due to a problem with the certificate (it might be expired, 
or the name might not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate,
use the -k (or --insecure) option.

[[email protected]]$ curl -k --head https://xxx.xxx.xxx.xxx/login

HTTP/1.1 302 Moved Temporarily
Date: Thu, 07 Dec 2017 04:53:44 GMT
Transfer-Encoding: chunked
Location: https://xxx.xxx.xxx.xxx/login 
X-FRAME-OPTIONS: SAMEORIGIN
Set-Cookie: JSESSIONID=xxxxxxxxxxx; path=/; HttpOnly

-i, --include :Dieses Flag enthält den HTTP-Header. Normalerweise bestehen HTTP-Header aus Servername, Datum, Inhaltstyp usw.

Beispiel:

[[email protected]]$ curl https://google.com

<HTML><HEAD><meta http-equiv="content-type" content="text/html charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/">here</A>. </BODY></HTML>

[[email protected]]$ curl -i https://google.com

HTTP/1.1 301 Moved Permanently
Location: https://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Thu, 07 Dec 2017 05:13:44 GMT
Expires: Sat, 06 Jan 2018 05:13:44 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 220
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alt-Svc: hq=":443"; ma=2592000; quic=51303431; quic=51303339;
quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000;
v="41,39,38,37,35"
<HTML><HEAD><meta http-equiv="content-.....

-X, --request :Dieses Flag wird verwendet, um eine benutzerdefinierte Anfrage an den Server zu senden. Meistens machen wir GET , HEAD , und POST . Aber wenn Sie eine bestimmte Anfrage wie PUT benötigen , FTP , DELETE dann können Sie dieses Flag verwenden. Das folgende Beispiel sendet eine Löschanfrage an google.com

Beispiel:

[[email protected]]$ curl -X DELETE google.com

..........................
<p><b>405.</b> <ins>That’s an error.</ins>
<p>The request method <code>DELETE</code> is inappropriate for the URL
<code>/</code>.  <ins>That’s all we know.</ins>`

Es ist hier eindeutig dokumentiert.

Bearbeiten

Aus der Manpage

-k, --insecure

(TLS) Standardmäßig wird jede SSL-Verbindung, die curl herstellt, als sicher verifiziert. Diese Option erlaubt es curl, selbst für Serververbindungen fortzufahren und zu funktionieren, die ansonsten als unsicher gelten.

Die Serververbindung wird verifiziert, indem sichergestellt wird, dass das Zertifikat des Servers den richtigen Namen enthält und erfolgreich mit dem Zertifikatspeicher verifiziert wird.

Das heißt mit -k , curl akzeptiert Verbindungen zu HTTPS auch bei Zertifikatsfehlern (veraltetes Zertifikat, selbst ausgestelltes Zertifikat usw.)

-i, --include

Schließen Sie die HTTP-Antwortheader in die Ausgabe ein. Die HTTP-Antwortheader können Dinge wie Servername, Cookies, Datum des Dokuments, HTTP-Version und mehr enthalten...

Um die Anforderungsheader anzuzeigen, verwenden Sie die Option -v, --verbose.

Siehe auch -v, --verbose

Dazu kann ich in Laiensprache nicht viel sagen. Wenn Sie mit HTTP-Antwortheadern nicht vertraut sind, finden Sie hier weitere Informationen.

-X, --request

(HTTP) Gibt eine benutzerdefinierte Anforderungsmethode an, die bei der Kommunikation mit dem HTTP-Server verwendet werden soll. Die angegebene Anforderungsmethode wird anstelle der sonst verwendeten Methode (die standardmäßig GET ist) verwendet. Lesen Sie die HTTP 1.1-Spezifikation für Details und Erklärungen. Übliche zusätzliche HTTP-Anforderungen sind PUT und DELETE, aber verwandte Technologien wie WebDAV bieten PROPFIND, COPY, MOVE und mehr.

Normalerweise benötigen Sie diese Option nicht. Alle Arten von GET-, HEAD-, POST- und PUT-Anforderungen werden vielmehr durch Verwendung dedizierter Befehlszeilenoptionen aufgerufen.

Diese Option ändert nur das tatsächliche Wort, das in der HTTP-Anforderung verwendet wird, sie ändert nicht die Art und Weise, wie sich curl verhält. Wenn Sie also beispielsweise eine richtige HEAD-Anforderung stellen möchten, reicht die Verwendung von -X HEAD nicht aus. Sie müssen die Option -I, --head verwenden.

Die Methodenzeichenfolge, die Sie mit -X, --request festlegen, wird für alle Anfragen verwendet. Wenn Sie beispielsweise -L, --location verwenden, kann es zu unbeabsichtigten Nebenwirkungen kommen, wenn curl die Anfragemethode nicht gemäß den HTTP 30x-Antwortcodes ändert - und ähnliches.

(FTP) Gibt einen benutzerdefinierten FTP-Befehl an, der anstelle von LIST verwendet wird, wenn Dateilisten mit FTP erstellt werden.

(POP3) Gibt einen benutzerdefinierten POP3-Befehl an, der anstelle von LIST oder RETR verwendet werden soll. (Hinzugefügt in 7.26.0)

(IMAP) Gibt einen benutzerdefinierten IMAP-Befehl an, der anstelle von LIST verwendet werden soll. (Hinzugefügt in 7.30.0)

(SMTP) Gibt einen benutzerdefinierten SMTP-Befehl an, der anstelle von HELP oder VRFY verwendet werden soll. (Hinzugefügt in 7.34.0)

Wenn diese Option mehrmals verwendet wird, wird die letzte verwendet.

Wenn Sie curl verwenden, um auf eine Webseite zuzugreifen, wird tatsächlich die GET-Anforderung an den Server gesendet. Es gibt andere Arten von Anfragen, die verwendet werden können, und -X ist der Weg, dies zu spezifizieren. Wie oben erwähnt, wird dieser Befehl normalerweise nicht benötigt. Wenn Sie beispielsweise eine POST-Anforderung benötigen, können Sie -d verwenden anstatt -X zu verwenden . Ohne weitere Informationen ist es schwer zu sagen, warum Sie -X benötigen in Ihrem API-Aufruf.


Linux
  1. Was ist der beste VPS:Windows oder Linux?

  2. Was ist der Zweck der .bashrc-Datei in Linux

  3. Was bedeutet *nix?

  4. Was bedeuten fork() und grep unter Linux?

  5. Was bedeutet „auf der schwarzen Liste“ bei GStreamer?

Was ist die Shell unter Linux?

Was ist der Unterschied zwischen Linux und Unix?

Der Linux-Curl-Befehl

Die 10 besten Linux-Bücher zum Lesen im Jahr 2019

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Kill-Befehl in Linux?