CURL là gì? Hướng dẫn thiết lập & sử dụng CURL trên PHP

CURL là gì? Hướng dẫn thiết lập & sử dụng CURL trên PHP

Tác giả: Admin
17:07 23/02/2022

cURl là gì? cURl là từ viết tắt của “Client URL”, là công cụ dòng lệnh được sử dụng để kiểm tra những kết nối từ URL và cho phép truyền dữ liệu bằng nhiều giao thức khác nhau. Để thiết lập và sử dụng cURl hiệu quả hãy theo dõi bài viết dưới đây của FPT Cloud nhé.

CURL là gì?

CURl là dự án phần mềm máy tính cung cấp thư viện và công cụ dòng lệnh giúp kiểm tra kết nối URL, truyền dữ liệu bằng các giao thức. cURl được phát triển bởi Daniel Stenberg, người Thụy Điển vào năm 1997. cURl là một công cụ linh hoạt và mạnh mẽ được sử dụng rộng rãi trong phát triển phần mềm và quản trị hệ thống.

CURL là gì?
CURL là gì?

Tính đến nay, cURl trở thành một trong những công cụ dòng lệnh được sử dụng phổ biến nhất trên thế giới: 

  • Tích hợp trong hơn 20 tỷ thiết bị, hệ điều hành Windows, macOS, Linux, Android & thiết bị IoT, ô tô, router, TV thông minh,...
  • Sử dụng trong hàng triệu các dự án phần mềm của các doanh nghiệp lớn
  • Được các hãng công nghệ lớn như Google, Apple, Facebook, Microsoft, Amazon,...tin dùng.

Các giao thức được cURL Command hỗ trợ

cURL Command hỗ trợ các giao thức
cURL Command hỗ trợ các giao thức

cURl hỗ trợ đa dạng các giao thức truyền dữ liệu thuận tiện cho việc tải xuống, gửi dữ liệu và kiểm thử API tương tác với nhiều hệ thống mạng khác nhau. Dưới đây là danh sách 18 giao thức được sử dụng phổ biến: 

Tên giao thức Chức năng
HTTP Giao thức truyền tải siêu văn bản, giúp các máy tính có thể giao tiếp với nhau qua mạng.
HTTPS Phiên bản bảo mật của giao thức HTTP sử dụng SSL/TLS để mã hóa và bảo vệ thông tin truyền tải.
FTP Giao thức truyền tải dữ liệu giữa máy tính và máy chủ từ xa.
FTPS Phiên bản bảo mật của giao thức FTP sử dụng SSL/TLS để mã hóa dữ liệu trong quá trình truyền tải.
SFTP Giao thức cung cấp truyền truy cập tệp, truyền tệp và quản lý tệp.
SCP Giao thức sao chép an toàn giữa các máy chủ.
LDAP Giao thức truy cập cơ sở dữ liệu phân tán giúp truy cập và quản lý dịch vụ thư mục.
TELNET Giao thức mạng được sử dụng kết nối với internet, mạng máy tính cục bộ LAN.
IMAP Giao thức mạng được sử dụng truy cập và quản lý email từ máy chủ.
IMAPS Phiên bản bảo mật của giao thức IMAP.
POP3 Giao thức tầng ứng dụng để kết nối và tải email từ máy chủ email về máy tính cá nhân.
SMB Giao thức mạng sử dụng trong DOS và Windows để chia sẻ tệp, máy in, cổng nối tiếp.
SMBS Phiên bản bảo mật nâng cao của giao thức SMB.
TFTP Giao thức dùng để truyền tệp giữa các thiết bị mạng.
RTMP Giao thức truyền phát video, âm thanh và dữ liệu qua mạng.
RTSP Giao thức truyền tin theo thời gian thực trong các hệ thống giải trí, truyền thông.
DICT Giao thức mạng giúp truy cập vào các từ điển trực tuyến.
GOPHER Giao thức dùng để phân phối, truy cập, tìm kiếm tài liệu.

Khi sử dụng CURL để kiểm tra API hoặc gửi yêu cầu HTTP, việc triển khai trên môi trường ổn định là rất quan trọng. Nhiều lập trình viên lựa chọn thuê VPS giá rẻ hoặc thuê máy chủ cloud để đảm bảo quá trình thử nghiệm diễn ra liên tục, bảo mật và không phụ thuộc vào máy cá nhân.

Chức năng của cURL

Chức năng của cURL
Chức năng của cURL

Dưới đây là những chức năng chính của cURL:

  • Kiểm tra kết nối từ URL: Bằng cách gửi yêu cầu HTTP hoặc các giao thức khác đến máy chủ xem một URL có thể truy cập được hay không. Đồng thời cURL còn hỗ trợ quản lý cookie, duy trì phiên làm việc.
  • Tải xuống trang web, hình ảnh từ mạng: cURL cho phép người dùng tải trực tiếp nội dung trang web, hình ảnh về máy tính và lưu các tệp tin này một cách tự động.
  • Truyền tập tin, dữ liệu, hình ảnh giữa client và server: Thông qua các giao thức trên thì người dùng có thể gửi, nhận tệp tin, dữ liệu, hình ảnh một cách an toàn, nhanh chóng. Để quản lý và lưu trữ dữ liệu hiệu quả hơn, nhiều developer thường tích hợp thêm dịch vụ Object Storage để giúp lưu trữ file tải xuống hoặc upload qua cURL đảm bảo an toàn, linh hoạt.

>> Xem thêm: TOP dịch vụ lưu trữ đám mây được sử dụng nhiều nhất hiện nay

Cách sử dụng cURL trong PHP

Cách sử dụng cURL trong PHP
Cách sử dụng cURL trong PHP

Bạn cần cài đặt thư viện libcurl trong hệ thống trên: 

  • Trên Linux (Ubuntu/Debian)
  • Trên CentOS/Fedora/RHEL
  • Trên Windows. Nếu bạn dùng XAMPP, WAMP, hoặc MAMP, libcurl thì thường đã được tích hợp sẵn.

Sau khi cài xong cần thực hiện 3 bước dưới đây để sử dụng cURL trong PHP:

Khởi tạo và cấu hình cURL

Sử dụng hàm curl_init() để khởi tạo, hàm này trả về một biến resource cURl.

Khởi tạo và cấu hình cURL

Tiếp đến bạn sử dụng hàm curl_setopt() để cấu hình các tùy chọn của request gồm: 

  • Đặt URl
  • Header
  • Phương thức
  • Dữ liệu gửi đi
  • Thời gian chờ

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

Một số tùy chọn request phổ biến với cURL: 

Tên tùy chọn Mô tả
CURLOPT_URL Đường dẫn URL
CURLOPT_RETURNTRANSFER Trả về kết quả từ curl_exec là TRUE dạng chuỗi hoặc FALSE hiển thị trực tiếp màn hình
CURLOPT_TIMEOUT Thời gian duy trì kết nối cURL tính bằng giây
CURLOPT_USERAGENT Giả lập chuỗi user agent của trình duyệt gửi dữ liệu
CURLOPT_FILE Lưu kết quả vào file
CURLOPT_POST Kết quả TRUE dữ liệu gửi về dạng POST
CURL_POSTFIELDS Mảng hoặc chuỗi dữ liệu được gửi kèm POST

 

Để thiết lập các tùy chọn request bạn sử dụng hàm curl_setopt() là chủ yếu. Tuy nhiên trước khi sử dụng bạn cần gọi hàm curl_exec() để có hiệu lực và nhận 3 tham số: 

  • Biến cURL
  • Tên cấu hình 
  • Giá trị cấu hình

Sử dụng hàm curl_setopt_array() để thiết lập nhiều tùy chọn cùng lúc.

Sử dụng hàm curl_setopt_array() để thiết lập nhiều tùy chọn cùng lúc

Thực hiện đóng request, giải phóng tài nguyên

Để đóng request sau khi hoàn tất việc sử dụng cURL bạn sử dụng hàm curl_close() và đóng phiên cURL giải phóng tài nguyên nhằm tiết kiệm và cải thiện hiệu suất của máy chủ. 

Thực hiện đóng request, giải phóng tài nguyên

Cài đặt & các lệnh cURL trên Linux

Dưới đây là hướng dẫn cài đặt và một số lệnh cURL phổ biến trên hệ điều hành Linux:

Hướng dẫn cài đặt cURL trên Linux

Thông thường cURl được cài đặt sẵn trên hầu hết các máy tính có hệ điều hành Linux. Tuy nhiên có những máy chưa được cài đặt thì bạn có thể thực hiện tải xuống và cài đặt cURl bằng các lệnh tương ứng dưới đây:

Link cài đặt cURL: https://curl.haxx.se/

Điều kiện thực hiện các lệnh cài đặt: Cần được cấp quyền root hoặc quyền sudo trên hệ thống của mình.

Cài đặt cURL cho Debian/Ubuntu: 

Sử dụng công cụ quản lý gói phần mềm apt để cài đặt với câu lệnh: 

Cài đặt cURL cho Debian/Ubuntu

  • sudo apt update: Cập nhật danh sách các gói phần mềm mới nhất từ kho lưu trữ. 
  • sudo apt install curl: Tải về và cài đặt công cụ cURL trên hệ thống.

Cài đặt cURL cho OpenSUSE: 

Sử dụng trình quản lý gói yum hoặc dnf để cài đặt cURL: 

Sử dụng trình quản lý gói yum hoặc dnf để cài đặt cURL

Cài đặt cURL cho RHEL, CentOS, Fedora: 

Sử dụng trình quản lý zipper để cài đặt cURL:

Sử dụng trình quản lý zipper để cài đặt cURL

Các lệnh cURL cơ bản cần nắm trong Linux

Dưới đây là một số dòng lệnh cURL cơ bản thường được dùng trong Linux: 

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

Sử dụng lệnh: curl –version

Sử dụng lệnh: curl –version

Bạn phải đăng nhập VPS thông qua SSH để kiểm tra cài đặt cURL. Kết quả trả về hiển thị phiên bản hiện tại của cURL và danh sách các giao thức cURL hỗ trợ.

Lệnh tổng quát các tùy chọn cURL

Sử dụng lệnh: curl [OPTIONS] [URL]

Đây là cú pháp lệnh cơ bản cURL trong Linux để thực hiện các tùy chọn yêu cầu đến một URL cụ thể. Nếu không chỉ định giao thức thì cURL sẽ mặc định sử dụng giao thức HTTP.

lenh tong quat cac tuy chon curl

Lệnh tải file sử dụng cURL Command

Sử dụng lệnh: curl -O http://yourdomain.com/yourfile.tar.gz

lenh tai file su dung curl command

Lệnh này giúp tải file từ một URL vào lưu lại trong thư mục làm việc hiện tại với tên file giống với tên file gốc.

Để đặt tải file và có thể tùy chỉnh tên file theo ý bạn sử dụng lệnh: curl -o newyourfile.tar.gz http://yourdomain.com/yourfile.tar.

Lệnh HTTP cURL Command

Sử dụng lệnh: curl -I www.yourdomain.com kiểm tra thông tin header web HTTP bao gồm:

  • Content-Type
  • Date
  • Server
  • Content-Length
  • Last-Modified
  • Một số thông tin khác

Lệnh để gửi yêu cầu POST: curl --data "text=Howareyou" https://mydomain.com/firstpage.jsp

Lệnh để gửi yêu cầu POST: curl --data "text=Howareyou"

Lệnh để gửi yêu cầu GET: curl http://mydomain.com

Lệnh để gửi yêu cầu GET: curl http://mydomain.com

Lệnh cURL với Cookies

Sử dụng lệnh: curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O để gửi một yêu cầu tới một trang web và lưu lại cookies vào một tệp tin khi bạn muốn duy trì đăng nhập và các thông tin liên quan.

lenh curl voi cookies

Sử dụng lệnh: curl --cookie Mycookies.txt https://www.samplewebsite.com để gửi yêu cầu đến trang web và sử dụng các cookies đã lưu từ tệp tin của cookies trước đó.

lenh curl voi cookies 2

Lệnh cURL đối với FTP

Sử dụng lệnh: curl -u username:password -O ftp://nameftpserver/yourfile.tar.gz để tải file từ một FTP và nhập tên người dùng, mật khẩu, đường dẫn để tải về.

lenh curl doi voi ftp tai ve

Sử dụng lệnh: curl -u username:password -T yourfile.tar.gz ftp://nameftpserver để upload file lên FTP và nhập tên người dùng, mật khẩu, đường dẫn của file cần tải lên.

lenh curl doi voi ftp tai len

Lệnh cURL giới hạn tải về

Sử dụng lệnh: curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O để giới hạn tốc độ tải xuống của cURL về mức 100KB/s nhằm kiểm soát băng thông sử dụng khi tải file về từ một URL bất kỳ.

lenh curl gioi han tai ve

Lệnh cURL gửi biểu mẫu và xác thực HTTP

Sử dụng lệnh để gửi biểu mẫu: curl --data "username=john&password=123456" https://yourdomain.com/login.php

su dung lenh de gui bieu mau

Sử dụng lệnh để xác thực HTTP: curl -u username:password https://yourdomain.com/protected

su dung lenh de xac thuc http

Như vậy, cURL là công cụ dòng lệnh mạnh mẽ, linh hoạt và là trợ thủ đắc lực cho quản trị viên hệ thống, nhà phát triển khi tương tác với API hoặc khi tải dữ liệu tự động từ URL. Hy vọng bài viết “cURL là gì” của FPT Cloud đã giúp bạn hiểu rõ hơn về khái niệm, cách thiết lập và sử dụng cURL hiệu quả nhé.

Lấy mã giảm giá của dịch vụ thuê máy chủ cloud, thuê server vật lýthuê máy chủ ảo VPS của FPT Cloud:

Lấy Code