ホーム テクノロジー LINUX 10 cURL コマンドの使用法とリアルタイムの例

10 cURL コマンドの使用法とリアルタイムの例


cURL は、URL 構文を使用してデータを取得または送信するためのコマンドライン ツールです。

開発者またはサポート部門で働いている場合は、Web アプリケーションのトラブルシューティングを行うためにcURL コマンドの使用法を認識しておく必要があります。 cURL は、Windows、MAC、UNIX で使用できるクロスプラットフォーム ユーティリティです。

以下に、最もよく使用される構文の一部と役立つ例を示します。

URLに接続できるか確認する

UNIX システムで作業していて外部 URL に接続しようとしている場合、最初に行うことは、curl を介して URL にアクセスできるかどうかを確認することです。

curl yoururl.com

出力はスローされません。ただし、サーバーが接続できない場合は、ホストを解決できなかったなどのエラーが発生します。

 [root@gf-lab tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[root@gf-lab tmp]#

URL/URI出力をファイルに保存

URL または URI の内容を特定のファイルに保存する必要がある場合は、次の構文を使用できます。

 curl https://yoururl.com > yoururl.html

元:

 [root@gf-lab tmp]# curl https://gf.dev > /tmp/gfhtml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18557    0 18557    0     0  72565      0 --:--:-- --:--:-- --:--:-- 72772
[root@gf-lab tmp]#

上記の例では、gf.dev のすべてのコンテンツが /tmp/gf.html に保存されます。

リクエストとレスポンスのヘッダーを表示する

問題が発生し、検証したい場合は、期待どおりのリクエスト ヘッダーとレスポンス ヘッダーが得られます。

 curl -v yoururl.com

元:

 [root@gf-lab tmp]# curl -v https://.com
* About to connect() to .com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to .com (104.25.134.107) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* 	subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated
* 	start date: Nov 07 00:00:00 2019 GMT
* 	expire date: May 15 23:59:59 2020 GMT
* 	common name: ssl371609.cloudflaressl.com
* 	issuer: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: .com
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Sat, 09 Nov 2019 19:41:37 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=..com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://.com/>; rel=shortlink
< X-SRCache-Fetch-Status: HIT
< X-SRCache-Store-Status: BYPASS
< X-Frame-Options: SAMEORIGIN
< X-Powered-By: EasyEngine v4.0.12
< Via: 1.1 google
< CF-Cache-Status: DYNAMIC
< Strict-Transport-Security: max-age=15552000; preload
< X-Content-Type-Options: nosniff
< Alt-Svc: h3-23=":443"; ma=86400
< Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< Server: cloudflare
< CF-RAY: 533243e4bcd4bbf4-LHR
<

制限速度でダウンロードする

最適化に取り組んでおり、特定の速度でダウンロードするのにどれくらい時間がかかるかを確認したい場合は、次のことができます。

 curl –-limit-rate 2000B

元:

 curl –-limit-rate 2000B https://gf.dev

プロキシを使用して接続する

プロキシを使用して外部に接続する必要がある DMZ サーバーで作業している場合に非常に便利です。

 curl --proxy yourproxy:port https://yoururl.com

ヘッダーを挿入して URL をテストする

データにヘッダーを挿入することで、curl を使用して、特定の問題をテストまたはトラブルシューティングできます。 Content-Type を使用してリクエストする次の例を見てみましょう。

 curl --header 'Content-Type: application/json' http://yoururl.com

上記を実行すると、リクエスト ヘッダーで Content-Type を application/json として渡すように、curl に要求します。

応答ヘッダーのみを表示します

トラブルシューティングを行っていて、応答ヘッダーをすぐに確認したい場合は、次の構文を使用できます。

 curl --head http://yoururl.com

元:

 [root@gf-lab tmp]# curl --head https://chandan.io
HTTP/1.1 200 OK
Date: Sat, 09 Nov 2019 19:51:23 GMT
Content-Type: text/html
Connection: keep-alive
Set-Cookie: __cfduid=d3cb2c7b8e566ad99c870b0af12b0f1eb1573329083; expires=Sun, 08-Nov-20 19:51:23 GMT; path=/; domain=.chandan.io; HttpOnly
X-GUploader-UploadID: AEnB2Uo96JhvJmR2zYUL-Ndh2ta3UD_ykQAB5C7O8cjZQhCf-GxHQ0MsodSzRnl3guSN3ywAYNjtWcPXfwDXjLg3bQ-P5vQMOA
Expires: Sat, 09 Nov 2019 20:51:23 GMT
Cache-Control: public, max-age=3600
Last-Modified: Mon, 06 Aug 2018 10:45:47 GMT
x-goog-generation: 1533552347482034
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 24620
x-goog-hash: crc32c=DpDPAQ==
x-goog-hash: md5=cIP/3rusdUx12Zla1kf1yA==
x-goog-storage-class: MULTI_REGIONAL
Accept-Ranges: bytes
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 53325234dc2fbb9a-LHR

[root@gf-lab tmp]# 

HTTPS/SSL URL に接続し、SSL 証明書エラーを無視します。

SSL/TLS 証明書で保護された URL にアクセスしようとしたときに、証明書が間違っているか、CN が一致しない場合は、次のエラーが発生します。

 curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

良いニュースです。 --insecureフラグを使用して、cURL に証明書エラーを無視するように指示できます。

 curl --insecure https://yoururl.com

特定のプロトコル (SSL/TLS) を使用して接続する

特定の URL が特定の SSL/TLS プロトコル上でハンドシェイクできるかどうかをテストするのに非常に便利です。

SSL v3 を使用して接続するには

curl --sslv3 https://yoururl.com

さまざまな TLS バージョンの場合

curl --tlsv1 https://example.com
curl --tlsv1.0 https://example.com
curl --tlsv1.1 https://example.com
curl --tlsv1.2 https://example.com
curl --tlsv1.3 https://example.com

FTPサーバーからファイルをダウンロード

ユーザー名とパスワードを指定することで、curl を使用してファイルをダウンロードすることもできます。

 curl -u user:password -O ftp://ftpurl/style.css

いつでも「 -v 」を任意の構文で使用して、冗長モードで出力できます。

ホストヘッダーの使用

ホスト ヘッダーは、ホスト ヘッダーが一致する場合にのみ要求されたコンテンツを利用できる場合に、IP 経由でターゲット URL をテストするのに役立ちます。または、ロード バランサー IP/URL を使用してアプリケーションをテストする場合。

 curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/

オンラインで cURL を使用してみてはいかがでしょうか?

はい、以下のツールを使用すれば可能です。 cURL をリモートで実行できます。

Online CURL – オンラインで URL を取得する軽量ツールであり、次のオプションを追加できます。

 --connect-timeout
--cookie
--data
--header
--head
--location
--max-time
--proxy
--request
--user
--url
--user-agent
   

cURL コマンド ライン ビルダー– これは異なります。これは、優れた UI で情報を入力できるcurl コマンドを構築するのに役立ち、下部に cURL コマンドが表示されます。

カールビルダー
カールビルダー

cURL は、リアルタイム接続の問題のトラブルシューティングに役立つユーティリティです。上記の内容がお役に立てば幸いです。さらに詳しく学びたい場合は、 Linux コマンド ラインの基礎オンライン コースをお勧めします。

「 10 cURL コマンドの使用法とリアルタイムの例」についてわかりやすく解説!絶対に観るべきベスト2動画

【Linuxコマンド】curlコマンドの実例
curlコマンドで天気予報を見てみた