การใช้คำสั่ง 10 cURL พร้อมตัวอย่างแบบเรียลไทม์
เผยแพร่แล้ว: 2015-02-12cURL เป็นเครื่องมือบรรทัดคำสั่งเพื่อรับหรือส่งข้อมูลโดยใช้ไวยากรณ์ URL
หากคุณกำลังทำงานเป็นนักพัฒนาซอฟต์แวร์หรือในฟังก์ชันสนับสนุน คุณต้องทราบ การใช้คำสั่ง cURL เพื่อแก้ไขปัญหาเว็บแอปพลิเคชัน cURL เป็นยูทิลิตี้ข้ามแพลตฟอร์ม หมายความว่าคุณสามารถใช้บน Windows, MAC และ UNIX
ต่อไปนี้คือไวยากรณ์บางส่วนที่ใช้มากที่สุดพร้อมตัวอย่างที่จะช่วยคุณ
ตรวจสอบว่าคุณสามารถเชื่อมต่อกับ URL ได้หรือไม่
หากคุณกำลังทำงานกับระบบ UNIX และพยายามเชื่อมต่อ URL ภายนอก สิ่งแรกที่คุณต้องทำคือตรวจสอบว่าคุณสามารถเข้าถึง URL ผ่าน curl ได้หรือไม่
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://geekflare.com * About to connect() to geekflare.com port 443 (#0) * Trying 104.25.134.107... * Connected to geekflare.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: geekflare.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=.geekflare.com; HttpOnly; Secure < Vary: Accept-Encoding < Link: <https://geekflare.com/wp-json/>; rel="https://api.w.org/" < Link: <https://geekflare.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
เมื่อทำข้างต้น คุณกำลังขอให้ curl ส่ง Content-Type เป็น application/json ในส่วนหัวของคำขอ
แสดงเฉพาะส่วนหัวตอบกลับ
หากคุณกำลังแก้ไขปัญหาบางอย่างและต้องการตรวจสอบส่วนหัวการตอบสนองอย่างรวดเร็ว คุณสามารถใช้ไวยากรณ์ต่อไปนี้ได้
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
เมื่อคุณพยายามเข้าถึง URL ที่ปลอดภัยของใบรับรอง SSL/TLS และหากมีใบรับรองที่ไม่ถูกต้องหรือ CN ไม่ตรงกัน คุณจะได้รับข้อผิดพลาดดังต่อไปนี้
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
ข่าวดี คุณสามารถสั่งให้ cURL ละเว้นข้อผิดพลาดของใบรับรองด้วย --insecure
flag
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 Server
คุณสามารถใช้ curl เพื่อดาวน์โหลดไฟล์ได้เช่นกันโดยระบุชื่อผู้ใช้และรหัสผ่านของคุณ
curl -u user:password -O ftp://ftpurl/style.css
คุณสามารถใช้ “ -v ” กับไวยากรณ์ใดก็ได้เพื่อพิมพ์ในโหมด verbose
การใช้ส่วนหัวของโฮสต์
ส่วนหัวของโฮสต์มีประโยชน์ในการทดสอบ URL เป้าหมายผ่าน IP เมื่อเนื้อหาที่ร้องขอใช้ได้เฉพาะเมื่อส่วนหัวของโฮสต์ตรงกันเท่านั้น หรือหากคุณต้องการทดสอบแอปพลิเคชันโดยใช้ IP/URL ของตัวโหลดบาลานซ์
curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/
แล้วการใช้ cURL ออนไลน์ล่ะ?
ใช่ เป็นไปได้ด้วยเครื่องมือต่อไปนี้ คุณสามารถรัน cURL จากระยะไกลได้
CURL ออนไลน์ – เครื่องมือขนาดเล็กในการดึง URL ออนไลน์และความเป็นไปได้ในการเพิ่มตัวเลือกต่อไปนี้
--connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent
ตัวสร้างบรรทัดคำสั่ง cURL – อันนี้แตกต่างกัน ช่วยให้คุณสร้างคำสั่ง curl ซึ่งคุณสามารถป้อนข้อมูลใน UI ที่ดี และที่ด้านล่าง คุณจะได้รับคำสั่ง cURL

cURL เป็นยูทิลิตี้ที่มีประโยชน์ในการแก้ไขปัญหาการเชื่อมต่อแบบเรียลไทม์ และฉันหวังว่าข้อมูลข้างต้นจะช่วยคุณได้ หากคุณต้องการเรียนรู้เพิ่มเติม ฉันขอแนะนำหลักสูตรออนไลน์ Linux Command Line Basics