10 cách sử dụng lệnh cURL với ví dụ thời gian thực

Spread the love

cURL là một công cụ dòng lệnh để lấy hoặc gửi dữ liệu bằng cú pháp URL.

Nếu bạn đang làm việc với tư cách là nhà phát triển hoặc trong chức năng hỗ trợ, bạn phải biết cách sử dụng lệnh cURL để khắc phục sự cố ứng dụng web. cURL là một tiện ích đa nền tảng có nghĩa là bạn có thể sử dụng trên Windows, MAC và UNIX.

Sau đây là một số cú pháp được sử dụng nhiều nhất với một ví dụ để giúp bạn.

Xác minh xem bạn có thể kết nối với URL không

Nếu bạn đang làm việc trên hệ thống UNIX và cố gắng kết nối URL bên ngoài, điều đầu tiên bạn muốn làm là kiểm tra xem bạn có thể truy cập URL thông qua curl hay không.

curl yoururl.com

Nó sẽ không ném bất kỳ đầu ra nào. Tuy nhiên, nếu máy chủ không thể kết nối, thì bạn sẽ gặp các lỗi như không thể phân giải máy chủ.

[[email protected] tmp]# curl helloitdoesntexist.com
curl: (6) Could not resolve host: helloitdoesntexist.com; Unknown error
[[email protected] tmp]#

Lưu đầu ra URL / URI vào tệp

Nếu bạn phải lưu nội dung URL hoặc URI vào một tệp cụ thể, bạn có thể sử dụng cú pháp sau

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

Ví dụ:

[[email protected] 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
[[email protected] tmp]#

Ví dụ trên sẽ lưu tất cả nội dung từ gf.dev vào /tmp/gf.html

  Cách tìm và xóa ảnh chụp màn hình trong Google Photos

Hiển thị tiêu đề yêu cầu và phản hồi

Nếu bạn đang gặp sự cố và muốn xác thực, bạn sẽ nhận được tiêu đề yêu cầu và phản hồi như mong đợi.

curl -v yoururl.com

Bán tại:

[[email protected] tmp]# curl -v https://techpoe.com.com
* About to connect() to techpoe.com.com port 443 (#0)
*   Trying 104.25.134.107...
* Connected to techpoe.com.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: techpoe.com.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=.techpoe.com.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://techpoe.com.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://techpoe.com.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
<

Tải xuống với tốc độ giới hạn

Nếu bạn đang làm việc về tối ưu hóa và muốn xem mất bao nhiêu thời gian để tải xuống ở một tốc độ cụ thể, bạn có thể: –

curl –-limit-rate 2000B

Bán tại:

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

Sử dụng proxy để kết nối

Rất tiện dụng nếu bạn đang làm việc trên máy chủ DMZ, nơi bạn cần kết nối với thế giới bên ngoài bằng proxy.

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

Bạn có thể sử dụng curl bằng cách chèn tiêu đề với dữ liệu của mình để kiểm tra hoặc khắc phục sự cố cụ thể. Hãy xem ví dụ sau để yêu cầu với Content-Type.

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

Bằng cách làm ở trên, bạn đang yêu cầu curl chuyển Content-Type là application / json trong tiêu đề yêu cầu.

  Cách sắp xếp theo nhiều cột trong Google Trang tính

Nếu bạn đang khắc phục sự cố và nhanh chóng muốn kiểm tra tiêu đề phản hồi, bạn có thể sử dụng cú pháp sau.

curl --head http://yoururl.com

Bán tại:

[[email protected] 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

[[email protected] tmp]#

Kết nối HTTPS / URL SSL và bỏ qua mọi lỗi chứng chỉ SSL

Khi bạn cố gắng truy cập vào URL bảo mật chứng chỉ SSL / TLS và nếu điều đó có chứng chỉ sai hoặc CN không khớp, thì bạn sẽ gặp lỗi sau.

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

Tin tốt là bạn có thể hướng dẫn cURL bỏ qua lỗi cert với cờ –insecure.

curl --insecure https://yoururl.com

Kết nối bằng giao thức cụ thể (SSL / TLS)

Rất hữu ích để kiểm tra xem một URL cụ thể có thể bắt tay qua một giao thức SSL / TLS cụ thể hay không.

Để kết nối bằng SSL v3

curl --sslv3 https://yoururl.com

và cho các phiên bản TLS khác nhau

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

Tải xuống tệp từ Máy chủ FTP

Bạn cũng có thể sử dụng curl để tải xuống tệp bằng cách chỉ định tên người dùng và mật khẩu của mình.

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

Bạn luôn có thể sử dụng “-v” với bất kỳ cú pháp nào để in ở chế độ tiết.

  Cách cài đặt tiện ích mở rộng trong VLC Player

Tiêu đề máy chủ hữu ích để kiểm tra URL mục tiêu qua IP khi nội dung được yêu cầu chỉ khả dụng khi tiêu đề máy chủ phù hợp. Hoặc, nếu bạn muốn kiểm tra ứng dụng bằng cách sử dụng IP / URL của bộ cân bằng tải.

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

Làm thế nào về việc sử dụng cURL trực tuyến?

Có, điều đó có thể thực hiện được với các công cụ sau. Bạn có thể thực thi cURL từ xa.

CURL trực tuyến – một công cụ nhẹ để tìm nạp URL trực tuyến và khả năng thêm các tùy chọn sau.

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

trình tạo dòng lệnh cURL – cái này khác. Nó giúp bạn xây dựng lệnh curl nơi bạn có thể nhập thông tin vào giao diện người dùng đẹp mắt và ở dưới cùng, bạn sẽ nhận được lệnh cURL.

cURL là một tiện ích hữu ích để khắc phục sự cố kết nối thời gian thực và tôi hy vọng những điều trên sẽ giúp ích cho bạn. Nếu bạn đang muốn tìm hiểu thêm, thì tôi khuyên bạn nên Khái niệm cơ bản về dòng lệnh Linux khóa học trực tuyến.

x