cURL là gì? Các lệnh cần biết trong cURL Linux

Lượt xem
Home

cURL là gì? Nếu bạn thật sự muốn tìm hiểu về cURL thì bài viết này, Vietnix sẽ giúp bạn tìm hiểu một cách rõ nét và dễ hiểu. Cùng với một số ví dụ cụ thể về cURL có thể hỗ trợ bạn trong quá trình tìm hiểu cũng như thực hiên một số thao tác cơ bản.

cURL là gì?

cURL viết tắt của client URL, là một công cụ dòng lệnh (command line) mà các nhà phát triển sử dụng để truyền dữ liệu data đến và đi từ server, kiểm tra kết nối từ URL. Về cơ bản, cURL cho phép bạn nói chuyện với server bằng cách chỉ định vị trí (dưới dạng URL) và dữ liệu data bạn muốn gửi.

curl là gì
cURL là gì?

cURL hỗ trợ một số giao thức khác nhau, bao gồm HTTPHTTPS và chạy trên hầu hết mọi nền tảng. Điều này làm cho cURL trở nên lý tưởng để kiểm tra giao tiếp từ hầu hết mọi thiết bị (miễn là nó có dòng lệnh và kết nối network) từ local server đến hầu hết các thiết bị.

Ví dụ: Bạn có thể sử dụng cURL cho việc xác thực user, HTTP post, kết nối SSL, hỗ trợ proxy, tải FTP và nhiều hơn thế nữa. Bạn cũng có thể làm những việc đơn giản với cURL, chẳng hạn như tải xuống các trang web và hình ảnh web.

Ngoài những thông tin trên, bạn cũng có thể tham khảo:

Lịch sử của cURL

Tìm hiểu rõ hơn cURL là gì, bạn nên tham khảo qua về lịch sử của cURL để nắm được nhiều thông tin cặn kẽ hơn. Quay trở lại thời kỳ những năm 90 khi mọi người vẫn sử dụng các công cụ dòng lệnh, Daniel Sterberg muốn phát triển một IRC script đơn giản có thể chuyển đổi tiền tệ cho các thành viên trong phòng chat room.

Vào năm 1997, không có nhiều lựa chọn để xây dựng nền tảng cho việc phân phối dữ liệu data qua giao thức internet. Do đó, Httpget xuất hiện và sử dụng khoảng vài trăm dòng code để truyền dữ liệu dựa trên HTTP. Nó đã trở thành nguồn gốc của cURL và được đặt tên là HTTPGET 1.0.

đôi nét về cURL
Đôi nét về cURL mà bạn nền tham khảo

Nhiều tháng sau, FTP support đã được phát triển và tên này đã bị loại bỏ. Bây giờ nó được gọi là urlget 2.0. Sau một vài bản cập nhật, vào ngày 30 tháng 3 năm 1998, tên này một lần nữa được thay đổi thành cURL 3.0 và được nhiều người biết đến.

Nếu bạn quan tâm về chủ đề URL, có thể tham khảo:

Giao thức được hỗ trợ trong cURL Command

cURL Command có thể hỗ trợ các giao thức (protocol) sau: HTTP, HTTPS, IMAP, IMAPS, SMB, MBS, SFTP, GOPHER, LDAP, LDAPS, SCP, FTP, FTPS, TELNET, POP3, POP3S, SMTP, SMTPS. 

cURL có nhiều giao thức được hỗ trợ khác nhau. Tuy nhiên, cURL sẽ sử dụng giao thức HTTP theo mặc định nếu không có giao thức nào được cung cấp. Chẳng hạn như nếu bạn chạy ví dụ sau, nó sẽ tải xuống trang chủ của example.com.

curl example.com

Bạn có thể gọi một giao thức cụ thể bằng cách đặt trước URL bằng tên giao thức.

curl http://example.com

Ví dụ trên sử dụng giao thức HTTP. Nếu bạn muốn sử dụng một giao thức khác, hãy chuyển HTTP thành một giao thức khác. Ví dụ: nếu bạn muốn sử dụng giao thức FTP, nó sẽ trông như thế này:

curl ftp://example.com

cURL cũng sẽ thử các giao thức khác nhau nếu giao thức mặc định không hoạt động. Nếu bạn đưa ra gợi ý, cURL có thể đoán bạn muốn sử dụng giao thức nào.

Ví dụ: Nếu bạn viết command sau, cURL sẽ có thể đoán một cách thông minh rằng bạn muốn sử dụng giao thức FTP: //.

curl ftp.example.com

Dưới đây là danh sách các giao thức được hỗ trợ cURL:

DICTFILE FTP
FTP FTPSGOPHERHTTP
HTTPSIMAPIMAPS
LDAPPOP3RTMP
RTSPSCPSFTP
SMBSMBSTELNET
TFTP

Chức năng của cURL

Chức năng của cURL là giúp người dùng tải xuống một trang web hoặc hình ảnh trên mạng Internet. Ngoài ra, nó cũng hỗ trợ người dùng vận chuyển tập tin, dữ liệu, hình ảnh, hoặc truyền dữ liệu đến và đi từ server. Bên cạnh đó, cURL cho phép bạn kiểm tra Cookie được tải trên URL.

Tại sao bạn nên sử dụng cURL?

Tại sao bạn nên sử dụng cURL? Hãy xem xét những lợi ích của phần mềm này:

  • Có tính linh động cao.
  • Nó tương thích với hầu hết mọi hệ điều hành và thiết bị được kết nối.
  • Rất hữu ích trong việc kiểm tra endpoint, xem chúng có hoạt động hay không.
  • Nó có thể dài dòng, nhưng cung cấp chi tiết chính xác những gì đã được gửi hoặc nhận, rất hữu ích cho việc tìm và khắc phục lỗi.
  • Khả năng error logging tốt.
  • Có thể được giới hạn tỷ lệ.

4 bước sử dụng cURL trong PHP cơ bản

Để sử dụng cURL trong PHP cơ bản bằng cách sử dụng XAMPP, WAMP, MAMP thì bạn cần có bộ thư viện libcurl của PHP. Tuy nhiên, nếu bạn đang dùng các package cài đặt PHP thì bạn không cần chúng vì đã được tích hợp sẵn trong các phần mềm này. Các bước cơ bản để sử dụng cURL gồm:

  • Bước 1: Hàm khởi tạo cURL.
  • Bước 2: Thiết lập các tùy chọn request.
  • Bước 3: Hàm thực thi cURL.
  • Bước 4: Đóng Request và giải phóng tài nguyên.

Chúng ta cùng thực hiện các bước được mô tả chi tiết dưới đây.

Bước 1: Hàm khởi tạo cURL 

Nếu muốn khởi tạo cURL, bạn cần sử dụng hàm: curl_init (). Lúc này, hệ thống sẽ trả về một resource cho bạn, đây là một kiểu dữ liệu được định nghĩa trong PHP:

curl init()

Thiết lập tùy chọn request

Để có thể thiết lập tùy chọn request, bạn cần dùng hàm: curl_setopt(). Nhưng cần lưu ý rằng, các hàm này cần phải đứng trước curl_exec() thì mới có tác dụng. curl_exec() chính là một hàm quan trọng trong cURL, được dùng để xử lý các dữ liệu đầu vào như: charset, content-type hay giá trị cookies, giao thức HTTP,…

curl_setopt()

curl_setopt() gồm 3 tham số sau:

  • Tham số thứ 1: cURL.
  • Tham số thứ 2: Tên cấu hình.
  • Tham số thứ 3: Giá trị cấu hình

Các tham số cách với nhau bằng dấu (,). Có thể xem ví dụ cụ thể dưới đây:

curl_setopt($curl, CURLOPT_URL, "https://vietnix.vn");

Ngoài ra, bạn thể thiết lập nhiều tùy chọn cùng một lúc bằng hàm curl_setopt_array(). Cấu trúc của nó sẽ có dạng như sau:

curl_setopt_array($curl, array(
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_URL => 'https://vietnix.vn/',
  CURLOPT_USERAGENT => 'Exmaple POST',
  CURLOPT_POST => 1,
  CURLOPT_POSTFIELDS => $data
));
curl_setopt_array($curl, $options);

Trong đó, một số tên cấu hình phổ biến được sử dụng như:

  • CURLOPT_URL: Đường dẫn URL mà cURL gửi request.
  • CURLOPT_RETURNTRANSFER: TRUE thì kết quả trả về là hàm curl_exectheo dạng chuỗi, còn nếu FALSE thì kết quả được xuất lên trình duyệt.
  • CURLOPT_TIMEOUT: Thời gian duy trì kết nối của cURL.
  • CURLOPT_USERAGENT: Giả lập trình duyệt đang gửi dữ liệu user agent.
  • CURLOPT_FILE: Lưu kết quả vào file.
  • CURLOPT_POST: TRUE thì dữ liệu gửi về dưới dạng POST.
  • CURL_POSTFIELDS: Mảng dữ liệu.

Hàm thực thi cURL

Nếu bạn muốn thực hiện việc gửi request, bạn cần dùng đến hàm: curl_exec(). Trong trường hợp ở bước 2 bạn đã thiết lập tùy chọn request với cấu trúc:`

curl_exec()

Bước ở trên bạn thực hiện hàm “curl_setopt($curl, CURLOPT_URL, "https://vietnix.vn");” nếu kết quả là TRUE thì kết quả trả về một chuỗi kết quả hàm curl_exec().

curl_setopt($curl, CURLOPT_URL, "https://vietnix.vn");

Đóng request, giải phóng tài nguyên

Cuối cùng là đóng request thì bạn sử dụng hàm sau. Thao tác này giúp bạn tiết kiệm tài nguyên và nâng cao hiệu suất cho server.

curl_close()

Các lệnh cần biết của cURL trong Linux

Một số lệnh cơ bản được sử dụng dụng phổ biến của cURL trong Linux

Các lệnh phổ biến cURL trong Linux
Các lệnh phổ biến cURL trong Linux

Lệnh kiểm tra phiên bản cURL

Lệnh kiểm tra phiên bản cURL là gì? Khi muốn dùng cURL, bạn cần phải đăng nhập VPS bằng cách sử dụng SSH. Để chắc chắn rằng cURL đã được cài đặt vào hệ thống, bạn hãy kiểm tra cURL bằng lệnh: curl –version. Sau đó, hệ thống sẽ hiển thị phiên bản cURL đang có trên máy, lúc này bạn sẽ biết được danh sách các giao thức mà cURL có thể hỗ trợ được.

curl --version

Dùng cURL Command để tải file

Lệnh dùng cURL Command để tải file hay tải một dữ liệu từ máy chủ ở xa theo 2 cách:

  • Cách 1: Lưu file trên folder hiện tại, tên file tải xuống trùng với tên file từ xa.
  • Cách 2: Cho phép tùy chọn tên file và đường dẫn lưu trữ.

Dưới đây là những ví dụ cụ thể cho từng trường hợp trên:

Cách 1:
Lệnh cURL được viết với cú pháp:

curl -O http://yourdomain.com/yourfile.tar.gz. 

Trong trường hợp này, file sẽ được lưu dưới tên yourfile.tar.gz.

Cách 2:

Dùng lệnh cURL được viết theo cú pháp:

curl -o newyourfile.tar.gz http://yourdomain.com/yourfile.tar.gz

Thời điểm này, file sẽ được lưu với tên mới là newyourfile.tar.gz. Không những thế, bạn cũng có thể sử dụng cURL để tải nhiều file bằng lệnh sau đây:

curl -O http://yourdomain.com/yourfile.tar.gz -O http://mydomain.com/myfile.tar.gz
curl -o newyourfile.tar.gz http://example.com/yourfile.tar.gz

Thì file của bạn sẽ được lưu lại với tên newyourfile.tar.gz, ngoài ra, bạn có thể tải cùng lúc nhiều file với lệnh:

curl -O http://example.com/yourfile.tar.gz -O http://example1.com/myfile.tar.gz

Lệnh HTTP cURL Command

Dưới đây là minh họa một chức năng của cURL sử dụng như một server proxy để tải file.

curl -x sampleproxy.com:8090 -U username:password -O http://testdomain.com/testfile.tar.gz

Lệnh cURL kiểm tra Cookies

Bạn có thể kiểm tra Cookie nào được tải trên URL bằng cách sử dụng cURL Command

curl --cookie-jar Mycookies.txt https://example/index.html -O

Bên cạnh đó, bạn có thể upload cookie có sẵn lên website với lệnh:

curl --cookie Mycookies.txt https://www.example.com

Lệnh cURL cho FTP

  • cURL hỗ trợ giao thức FTP nên có thể tải file một máy chủ từ xa với lệnh như sau:
curl -u username:password -O ftp://nameftpserver/yourfile.tar.gz
  • Upload file lên FTP:
curl -u username:password -T yourfile.tar.gz ftp://nameftpserver

Lệnh giới hạn output của cURL

Giới hạn output để hạn chế tình trạng sử dụng băng thông lớn gây ra việc download chậm

curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O

Gửi biểu mẫu với cURL

cURL cũng có thể sử dụng phương thức POST của HTTP để gửi biểu mẫu. Để thực hiện gửi biểu mẫu , bạn cần tạo 2 tệp sau:

  • index.php: Để đặt tệp lệnh cURL.
  • form.php: Để đặt biểu mẫu cần gửi.

Có thể xem mẫu ví dụ dưới đây:

<?php
if(isset($_POST["submit"]))
{
  echo "Full name is " . $_POST["firstName"] .
     "  " . $_POST["lastName"];
  exit;
}
?>
 
<html>
<body>
<form method = "POST" action = "" >
  <input  name="firstName"  type="text"> 
  <input  name="lastName"  type="text">
  <input  type="submit"  name="submit"  value="שלח" >
</form>
</body>
</html>

Sử dụng cURL để xác thực HTTP

Bạn sủ dụng lệnh sau để xác thực HTTP:

curl_setopt_array($handle,
  array(
    CURLOPT_URL => $url,
   CURLOPT_HTTPAUTH => CURLAUTH_ANY,
   CURLOPT_USERPWD  => "$username:$password",
   CURLOPT_RETURNTRANSFER   => true,
  )
);

Lời kết

cURL là gì? Qua bài viết này chắc bạn cũng nắm được nhiều thông tin hay về cURL, đây là một cộng cụ cực kỳ mạnh mẽ và đang ngày càng phát triển mạnh mẽ hơn. Mong sau những thông tin hữu ích trên, sẽ giúp bạn có thêm nhiều kiến thức hơn và sử dụng công cụ được hiệu quả tốt. Chúc các bạn thành công!

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (198 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận