cURL เป็นโครงการซอฟต์แวร์ที่ประกอบด้วยไลบรารี (ลิขเคิร์ล) และเปลือก (curl) มุ่งเน้นไปที่การถ่ายโอนไฟล์ รองรับโปรโตคอล FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE และ LDAP และอื่น ๆ
cURL รองรับใบรับรอง HTTPS, HTTP โพสต์, HTTP ใส่, การอัปโหลด FTP, Kerberos, การอัปโหลดแบบฟอร์ม HTTP, พร็อกซี, คุกกี้, การตรวจสอบชื่อผู้ใช้และรหัสผ่าน (พื้นฐาน, DIgest, NTLM และการเจรจาต่อรองสำหรับ HTTP และ kerberos 4 สำหรับ FTP), ความต่อเนื่องในการถ่ายโอนไฟล์, HTTP proxy tunneling, IMAP, POP3, LDAP, RTSP, RTMP และผลประโยชน์อื่น ๆ
วัตถุประสงค์หลักและใช้สำหรับ cURL คือการโอนไฟล์โดยอัตโนมัติ หรือลำดับการดำเนินการที่ไม่ได้รับการดูแล ตัวอย่างเช่นเป็นเครื่องมือที่ถูกต้องในการจำลองการกระทำของผู้ใช้ในเว็บเบราว์เซอร์
เป็นพื้น เป็นยูทิลิตี้ในการรับและส่งข้อมูลผ่านเครือข่าย ซึ่งให้ความสามารถในการสร้างคำขอได้อย่างยืดหยุ่นโดยการตั้งค่าพารามิเตอร์เช่น cookie, user_agent, referer และส่วนหัวอื่น ๆ
นอกจากนั้นไลบรารี libcurl ยังมี API เพื่อใช้ฟังก์ชัน curl ทั้งหมดในโปรแกรมในภาษาเช่น C, Perl, PHP, Python
cURL เป็นโอเพนซอร์สซอฟต์แวร์ฟรีที่เผยแพร่ภายใต้ใบอนุญาต MIT
เกี่ยวกับ cURL 7.66.0 เวอร์ชันใหม่
Recientemente cURL เวอร์ชันใหม่เปิดตัว lซึ่งมาพร้อมกับการแก้ไขข้อผิดพลาด 77 ข้อและใช้นวัตกรรมหลายอย่าง การเพิ่มการสนับสนุนเบื้องต้นสำหรับโปรโตคอล HTTP / 3 จะถูกเน้นซึ่งยังไม่ได้นำไปสู่รูปแบบที่ใช้งานได้อย่างสมบูรณ์และถูกปิดใช้งานโดยค่าเริ่มต้น (เช่นจนกว่าตัวจัดการการยุติการเชื่อมต่อจะพร้อมใช้งานการประมวลผลแบบขนานและการร้องขอขนาดใหญ่จะไม่ทำงาน)
ในการเปิดใช้งาน HTTP 3 จำเป็นต้องสร้างใหม่โดยใช้แบ็กเอนด์ quiche หรือ ngtcp2 + nghttp3. มีการเสนอการใช้พารามิเตอร์« –http3 »และตัวเลือก libcurl « CURLOPT_HTTP_VERSION »;
การเปลี่ยนแปลงที่สำคัญอีกอย่างสำหรับ cURL เวอร์ชันใหม่นี้ก็คือ เพิ่มพารามิเตอร์ "-Z" ("–parallel") และ "–parallel-max" ซึ่งช่วยให้คุณสามารถจัดระเบียบการโหลดรายการ URL พร้อมกันในหลายลำดับ
เพิ่มความสามารถในการตั้งค่าตัวระบุอื่นสำหรับการอนุญาตใน SASL ซึ่งระบุโดยพารามิเตอร์ "–sasl-authzid" หรือตัวเลือก CURLOPT_SASL_AUTHZID (ตัวระบุการพิสูจน์ตัวตนจะถูกส่งผ่าน CURLOPT_USERPWD)
การประมวลผลของส่วนหัว HTTP Retry-After และโค้ดส่งคืน 429 ถูกนำไปใช้โดยใช้พารามิเตอร์ "–retry" หรือตัวเลือก CURLINFO_RETRY_AFTER
ส่วนหัว Retry-After กำหนดความล่าช้าก่อนที่จะส่งคำขอในภายหลังในกรณีที่ได้รับรหัสตอบกลับ 429 (มีคำขอมากเกินไป), 503 (ไม่มีบริการ) หรือ 301 (ย้ายถาวร)
การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นในเวอร์ชันใหม่นี้:
- มีการเพิ่มฟังก์ชัน curl_multi_poll () ซึ่งเหมือนกับ curl_multi_wait () ยกเว้นเมื่อไม่มีตัวอธิบายไฟล์ที่ต้องรอ (curl_multi_wait สิ้นสุดลงในทันทีและ curl_multi_poll จะแนะนำการหน่วงเวลาสั้น ๆ ก่อนที่จะออกเพื่อหลีกเลี่ยงสถานการณ์การโหลดที่ผิดปกติเนื่องจากการเรียกแบบวนซ้ำ)
- ตั้งแต่รุ่นนี้ curl จะพิจารณาว่าการตอบสนอง HTTP เหล่านั้นไม่ถูกต้องตามค่าเริ่มต้น
- แก้ไขช่องโหว่: CVE-2019-5481: ล็อคหน่วยความจำฟรีสองครั้งใน FTP-KRB (เคอร์เบอรอสผ่าน FTP); CVE-2019-5482: บัฟเฟอร์ล้นในไดรเวอร์ TFTP
- แก้ไขการถดถอยที่ทำให้ curl ใช้ข้อมูลรับรอง URL ไม่ถูกต้องเมื่อทำการตรวจสอบสิทธิ์แบบหลายขั้นตอน (เช่น HTTP Digest) ด้วยพร็อกซี
จะติดตั้ง cURL บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจสามารถติดตั้ง cURL เวอร์ชันใหม่นี้ได้ พวกเขาสามารถทำได้โดยดาวน์โหลดซอร์สโค้ดและรวบรวม
สำหรับสิ่งนี้สิ่งแรกที่เราจะทำคือดาวน์โหลดแพ็คเกจ cURL ล่าสุดด้วยความช่วยเหลือของเทอร์มินัลในนั้น พิมพ์:
wget https://curl.haxx.se/download/curl-7.66.0.tar.xz
จากนั้นเราจะเปิดเครื่องรูดแพ็คเกจที่ดาวน์โหลดมาด้วย:
tar -xzvf curl-7.66.0.tar.xz
เราเข้าสู่โฟลเดอร์ที่สร้างขึ้นใหม่ด้วย:
cd curl-7.66.0
เราเข้าสู่รูทด้วย:
sudo su
และเราพิมพ์สิ่งต่อไปนี้:
./configure --prefix=/usr \ --disable-static \ --enable-threaded-resolver \ --with-ca-path=/etc/ssl/certs &&
make make install && rm -rf docs/examples/.deps &&
find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; &&
install -v -d -m755 /usr/share/doc/curl-7.66.0 && cp -v -R docs/* /usr/share/doc/curl-7.66.0
ในที่สุดเราสามารถตรวจสอบเวอร์ชันด้วย:
curl --version