web-dev-qa-db-ja.com

Linuxでの "curl -k -i -X"の意味は何ですか?

Curlのマニュアルページを読みましたが、これらのパラメーター(k、i、X)の意味を理解できません。 REST API呼び出しで使用されているようですが、これらの3つのパラメーターの機能を誰かが説明してもらえますか?ドキュメントでは明確ではありません。

前もって感謝します。

3
Zac

-k、--insecure自己署名SSL証明書を使用しているWebサイトにcurlを実行している場合、curlはcurlは証明書を確認できませんでした。その場合、-kまたは--insecureフラグ証明書の検証をスキップ

例:

[root@arif]$ 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.

[root@arif]$ 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:このフラグはhttpヘッダーを含みます。通常、httpヘッダーはサーバー名、日付、コンテンツタイプなどで構成されます。

例:

[root@arif]$ 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>

[root@arif]$ 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:このフラグは、カスタム要求をサーバーに送信するために使用されます。ほとんどの場合、GETHEAD、およびPOSTを使用します。ただし、PUTFTPDELETEなどの特定のリクエストが必要な場合は、このフラグを使用できます。次の例では、削除リクエストをgoogle.comに送信します

例:

[root@arif]$ 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>`
7
muhammad

それは明確に文書化されています ここ

編集

マニュアルページから

-k、-insecure

(TLS)デフォルトでは、curlが作成するすべてのSSL接続は安全であることが確認されています。このオプションを使用すると、安全でないと考えられるサーバー接続でもcurlを続行して操作できます。

サーバーの接続は、サーバーの証明書に正しい名前が含まれていることを確認し、証明書ストアを使用して正常に確認されます。

つまり、-kを使用すると、curlは、証明書エラー(古い証明書、自己発行の証明書など)がある場合でもHTTPSへの接続を受け入れます。

-i、-include

出力にHTTP応答ヘッダーを含めます。 HTTP応答ヘッダーには、サーバー名、Cookie、ドキュメントの日付、HTTPバージョンなどを含めることができます。

要求ヘッダーを表示するには、-v、-verboseオプションを検討してください。

-v、-verboseも参照してください

素人の言葉でこれについて言えることはあまりありません。 HTTP応答ヘッダーに慣れていない場合は、 this で詳細を確認できます。

-X、-request

(HTTP)HTTPサーバーと通信するときに使用するカスタム要求メソッドを指定します。指定された要求メソッドは、他の方法で使用されるメソッド(デフォルトではGET)の代わりに使用されます。詳細と説明については、HTTP 1.1仕様をお読みください。一般的な追加のHTTPリクエストにはPUTとDELETEが含まれますが、WebDAVなどの関連テクノロジーはPROPFIND、COPY、MOVEなどを提供します。

通常、このオプションは必要ありません。すべての種類のGET、HEAD、POSTおよびPUT要求は、専用のコマンドラインオプションを使用して呼び出されます。

このオプションは、HTTPリクエストで使用される実際のWordのみを変更し、curlの動作を変更しません。たとえば、適切なHEADリクエストを作成する場合は、-X HEADを使用しても十分ではありません。-I、--headオプション。

-X、--requestで設定したメソッド文字列は、すべてのリクエストに使用されます。たとえば、-L、--locationを使用すると、curlがHTTP 30xに従ってリクエストメソッドを変更しない場合、-locationが意図しない副作用を引き起こす可能性があります。応答コード-および同様。

(FTP)FTPでファイルリストを実行するときに、LISTの代わりに使用するカスタムFTPコマンドを指定します。

(POP3)LISTまたはRETRの代わりに使用するカスタムPOP3コマンドを指定します。 (7.26.0で追加)

(IMAP)LISTの代わりに使用するカスタムIMAPコマンドを指定します。 (7.30.0で追加)

(SMTP)HELPまたはVRFYの代わりに使用するカスタムSMTPコマンドを指定します。 (7.34.0で追加)

このオプションを複数回使用すると、最後のオプションが使用されます。

Curlを使用してWebページにアクセスすると、実際にはGET要求がサーバーに送信されます。使用できる要求には他の種類があり、-Xはこれを指定する方法です。上記のように、このコマンドは通常必要ありません。たとえば、POSTリクエストが必要な場合は、-dを使用する代わりに-Xを使用できます。これ以上の情報がないと、-Xが必要な理由を説明するのは困難です。あなたのAPIコールで。

2
Weijun Zhou