マニュアルページを読みCurl
ましたが、これらのパラメータ(k、i、X)の意味は理解できません。 REST API呼び出しに使用されているのを見ましたが、これら3つのパラメータの機能を説明できる人はいますか?文書には明確ではありません。
よろしくお願いします。
答え1
-k、--安全ではありません:使用しているウェブサイトをカーリングしたい場合自己署名SSL証明書これにより、カールがエラーを引き起こしますカールは証明書を検証できません。この場合、以下を使用するか-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, --リクエスト:このフラグは、サーバーにカスタム要求を送信するために使用されます。ほとんどの場合、、GET
およびHEAD
を実行しますPOST
。ただし、たとえば特定の要求が必要な場合は、PUT
このフラグを使用できます。次の例では、google.com に削除リクエストを送信します。FTP
DELETE
例:
[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>`
答え2
明確な記録があるここ。
編集する
マニュアルページから
-k、--安全ではありません
(TLS) デフォルトでは、curl によって確立されたすべての SSL 接続は安全であると確認されます。このオプションを使用すると、安全でないと見なされる他のサーバー接続に対してもカールが進行して機能することができます。
サーバー証明書に正しい名前が含まれていることを確認し、証明書ストアを使用して妥当性を確認してサーバー接続を確認します。
つまり、証明書エラー(期限切れの証明書、自己発行証明書など)があっても-k
HTTPS接続は許可されます。curl
-i, --include
出力にHTTP応答ヘッダーを含めます。 HTTP 応答ヘッダーには、サーバー名、クッキー、文書日付、HTTP バージョンなどを含めることができます。
リクエストヘッダを表示するには、-v、--verboseオプションを検討してください。
-v、--verboseも参照してください。
私は素人の観点からこれについてあまり話すことはできません。 HTTPレスポンスヘッダに慣れていない場合これ詳細はこちらからご確認いただけます。
-X, --リクエスト
(HTTP)HTTPサーバーと通信するときに使用するカスタム要求方法を指定します。使用される他の方法の代わりに、指定された要求方法が使用されます(デフォルトはGET)。詳細と説明については、HTTP 1.1の仕様を読んでください。一般的な追加のHTTPリクエストにはPUTとDELETEが含まれますが、WebDAVなどの関連技術はPROPFIND、COPY、MOVEなどを提供します。
通常、このオプションは必要ありません。さまざまなGET、HEAD、POST、およびPUT要求は、特別なコマンドラインオプションを使用して呼び出されます。
このオプションはHTTP要求で使用されている実際の単語のみを変更し、カールの動作方法は変更しません。したがって、たとえば、正しいHEAD要求を実行したい場合は、-X HEADを使用するだけでは不十分です。 -I、--headオプションを使用する必要があります。
-X、--requestに設定されたメソッド文字列は、すべての要求に使用されます。たとえば、-L, --location を使用すると、カールが HTTP 30x 応答に従ってリクエストメソッドを変更しない場合、予期しない副作用が発生する可能性があります。 - そして似ています。
(FTP)FTPを使用してLISTの代わりにファイルリストを実行するときに使用するカスタムFTPコマンドを指定します。
(POP3) LIST または RETR の代わりに使用するカスタム POP3 コマンドを指定します。 (7.26.0で追加)
(IMAP) LIST の代わりに使用するカスタム IMAP コマンドを指定します。 (7.30.0に追加)
(SMTP) HELP または VRFY の代わりに使用するカスタム SMTP コマンドを指定します。 (7.34.0で追加)
このオプションを複数回使用すると、最後のオプションが使用されます。
カールを使用してWebページにアクセスすると、実際にサーバーにGET要求を送信します。利用可能な他の種類の要求とそのような-X
要求を指定する方法があります。上記のように、このコマンドは通常必要ありません。たとえば、POST要求が必要な場合は、代わりに-d
使用できます。詳細情報がないと、API呼び出しで使用する-X
理由を伝えるのは難しいです。-X