cURL là công cụ dùng để kiểm tra nhưng kết nối từ URL và cho phép truyền dữ liệu nhanh hơn. Vậy cURL cụ thể là gì? Cách sử dụng thế nào? Hãy cùng FPT Aptech tìm hiểu chi tiết hơn thông qua bài viết dưới đây nhé!
Nội dung
cURL là gì?
cURL là từ viết tắt của client URL, một công cụ dòng lệnh (hoặc command line tool), được dùng để kiểm tra các kết nối của URL và cho phép việc truyền dữ liệu từ các máy chủ (server). client URL hiện nay đang sử dụng nhiều giao thức hỗ trợ như: HTTPS, HTTP, FTPS,… Chính bởi điều này khiến cho nó trở thành công cụ lý tưởng cho việc kiểm tra giao tiếp cho các thiết bị và chỉ cần các thiết bị có dòng lệnh và kết nối network. Vào năm 1997, Daniel Stenberg đã viết ra và nó được hoạt động mà không cần có sự tương tác của con người.
cURL hỗ trợ các giao thức nào
Loại URL này có thể hỗ trợ các giao thức sau: HTTPS, HTTP, IMAPS, IMAP, MBS, SMB, LDAPS, LDAP, FTPS,FTP, POP3S, POP3, SMTPS,SMTP, SFTP, GOPHER, TELNET, SCP. Ngoài những giao thức (protocol) này, cURL cũng hỗ trợ thêm những giao thức khác ít quan trọng hơn. Tuy nhiên, nó chỉ sử dụng protocol mặc định là HTTP nếu như không có giao thức khác được cung cấp.
Chức năng
Chức năng chính là giúp người dùng tải một trang web hay hình ảnh nào đó trên mạng internet về thiết bị cá nhân. Ngoài ra, nó cũng giúp cho người dùng vận chuyển dữ liệu, hình ảnh, tệp tin từ máy chủ đi hoặc từ từ đâu đó đến máy chủ (server). Không những vậy, client URL cho phép người dùng kiểm tra các cookie được tải trên URL.
Hướng dẫn sử dụng
Để sử dụng client URL trong PHP thì hệ thống của người dùng cần phải cài đặt thêm libcurl. Nếu như cài đặt PHP của bạn sử dụng các package như XAMPP, MAMP, WAMP thì sẽ không cần thêm libcurl bởi nó đã được tích hợp sẵn bên trong.
Bởi vậy, để sử dụng client URL trong PHP, người dùng cần phải thực hiện đúng 4 bước. Cụ thể như sau:
Bước 1: Khởi tạo cUR
- Để khởi tạo được hàm này, người dùng cần sử dụng hàm: curl_init ()
- Kết quả sẽ được hệ thống trả về cho bạn là một resource (kiểu dữ liệu)
Bước 2: Thiết lập tùy chọn request
Thiết lập tùy chọn request, người dùng sẽ sử dụng hàm curl_setopt(). Đây chính là hàm quan trọng của client URL, thực hiện nhiệm vụ xử lý các dữ liệu được gửi đến như: content – type, cookie, giao thức HTTP, charset,… Và một điểm người dùng cần lưu ý là hàm curl_setopt phải được đặt trước hàm curl_exec thì mới có tác dụng.
Hàm Curl_setopt() có 3 tham số vào, được ngăn cách với nhau bởi dấu phẩy:
- Tham số đầu tiên: cURL
- Tham số thứ hai: tên cấu hình
- Tham số thứ 3: giá trị của cấu hình
Trong đó, một số tên cấu hình thông dụng với client URL phải biết đến, đó là:
CURLOPT_URL: đường dẫn URL do cURL gửi request
CURLOPT_RETURNTRANSFER: hàm curl_exec dạng chuỗi khi kết quả là TRUE, còn là FALSE thì sẽ được đưa lên trình duyệt.
CURLOPT_TIMEOUT: thời gian để duy trì kết nối
CURLOPT_USERAGENT: trình duyệt gửi dữ liệu user agent giả lập
CURLOPT_FILE: lưu kết quả vào file
CURLOPT_POST: kết quả ở dạng POST khi là TRUE
CURL_POSTFIELDS: mảng dữ liệu
Ngoài ra, nếu người dùng muốn thiết lập nhiều tùy chọn cùng lúc thì sử dụng hàm curl_setopt_array(). Cấu trúc của hàm có dạng sau:
- curl_setopt_array($curl, array(
- CURLOPT_RETURNTRANSFER => 1,
- CURLOPT_URL => ‘https://vietnix.vn/’,
- CURLOPT_USERAGENT => ‘Example POST’,
- CURLOPT_POST => 1,
- CURLOPT_POSTFIELDS => $data
- ));
- curl_setopt_array($curl, $options);
Bước 3: Thực thi hàm
Thực thi hàm client URL, người dùng cần sử dụng hàm curl_exec(). Ở bước số 2, người dùng đã thiết lập tùy chọn request bằng cấu trúc curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1), kết quả trả về là TRUE thì giá trị của hàm curl_exec() sẽ là một chuỗi.
Bước 4: Đóng request, giải phóng tài nguyên
Đóng request và giải phóng tài nguyên, người dùng cần sử dụng hàm curl_close(). Việc này sẽ giúp cho các bạn tiết kiệm được tài nguyên của hệ thống cũng như nâng cao được hiệu suất cho máy chủ (server).
Các lệnh cURL trong Linux cần biết
Lệnh kiểm tra phiên bản
Để sử dụng được cURL, người dùng cần đăng nhập VPS bằng SSH. Bạn cần phải kiểm tra bằng lệnh curl_version để chắc chắn rằng cURL được được cài đặt trong hệ thống. Sau khi dùng lệnh curl_version, kết quả sẽ hiển thị phiên bản client URL hiện có, từ đó người dùng sẽ nắm bắt được danh sách các giao thức curl hỗ trợ.
Lệnh HTTP cURL Command
client URL có chức năng khác là sử dụng một server proxy để tải file. Dưới đây là ví dụ minh họa cho chức năng của client URL được 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
- Ở ví dụ này, ta có thể thấy được nếu như proxy không chứng thực thì khi ấy người dùng không cần phải viết vào -U username: password. Ngoài ra, người dùng cũng có thể dùng cURL để tiến hành việc kiểm tra thông tin header web HTTP. Để thực hiện được điều này, người dùng sẽ dùng tới câu lệnh sau:
curl -I www.yourdomain.com
- Ngoài ra, người dùng có thể gửi yêu cầu POST và GET đối với cURL bằng các lệnh như:
POST request: curl –data “text=Howareyou” https://mydomain.com/firstpage.jsp
GET request: curl http://mydomain.com
Từ đó, người dùng có thể xác định được GET và POST request trong cùng một lệnh cURL thông qua tùy chọn -next.
Lệnh cURL cho FTP
FTP là từ viết tắt của File Transfer Protocol, đây chính là giao thức giúp người dùng có thể trao đổi tập tin bất kỳ nào trong máy tính cá nhân lên máy chủ (server). File Transfer Protocol được mọi người tạm dịch là chuyển nhượng tệp tin.
Hỗ trợ tải file
client URL hỗ trợ giao thức FTP với mục đích tải file từ máy chủ với câu lệnh mẫu:
- curl -u username:password -O ftp://nameftpserver/yourfile.tar.gz
Với câu lệnh này thì ftp://nameftpserver là FTP server nhận được request kết nối. Còn server hỗ trợ người dùng FTP ẩn danh thì có thể không cần phải dùng đến password và username cũng được.
Hỗ trợ upload file
Trong trường hợp người dùng muốn upload file lên trên FTP server thì có thể dùng lệnh sau:
- curl -u username:password -T yourfile.tar.gz ftp://nameftpserver
Tương tự như trên, nếu tải file xuống từ FTP server, người dùng có thể bỏ qua việc điền password và username nếu như dùng được kết nối ẩn danh.
Lệnh cURL cho Cookie
Người dùng có thể dùng cURL Command để kiểm tra nhưng cookies được tải về trên URL. Giả sử, bạn truy cập website có dạng như https://www.samplewebsite.com thì bạn có thể output web đó theo dạng một file cũng như lưu cookies bằng cách dùng câu lệnh như:
- curl –cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
Ở trường hợp, cookies có sẵn ở trong file thì người dùng có thể upload lên web qua dạng:
- curl –cookie Mycookies.txt https://www. samplewebsite.com
Lệnh giới hạn output
Khi sử dụng cURL mà không biết output lớn đến đâu có thể gây ra một số rắc rối cho người dùng. Giả dụ, dung lượng file quá lớn khiến máy tính tắc nghẽn mạng, load chậm,… Vì vậy, để hạn chế tình trạng sử dụng băng thông lớn, người dùng cần giới hạn cURL output bằng cách sử dụng các lệnh dạng:
- curl –limit-rate 100K http://testdomain.com/samplefile.tar.gz -O
Tải file bằng client URL Command
Lệnh này dùng để tải một dữ liệu từ máy chủ ở xa theo hai cách, cụ thể như sau:
Cách 1: Lưu file trên folder hiện hành. Tên file tải xuống giống với tên file từ xa
- Lệnh này được viết theo cú pháp: curl -O http://yourdomain.com/yourfile.tar.gz
- File được lưu với tên yourfile.tar.gz
Cách 2: Được phép tùy chọn tên file và đường dẫn lưu trữ
- Lệnh client URL được viết theo cú pháp: curl -o newyourfile.tar.gz http://yourdomain.com/yourfile.tar.gz
- Khi đó, file được lưu với tên newyourfile.tar.gz
Cú pháp lệnh client URL
Cú pháp lệnh cURL trong Linux là: curl [OPTIONS] [URL]. Cách sử dụng phổ biến nhất chính là hiển thị nội dung trên trang.Giả sử, nếu người dùng muốn xem nội dung cảu trang yourdomain.com thì cần sử dựng cú pháp curl yourdomain.com. Hệ thống sẽ kết xuất cho người dùng mã nguồn trang chủ của domain này. Nếu như không gõ giao thức thì client URL sẽ mặc định website này chính là HTTP
Bài viết trên là toàn bộ nội dung mà FPT Aptech muốn chia sẻ với bạn đọc về cURL. Hy vọng, thông qua bài viết này người đọc có thể hiểu rõ hơn cũng như những chức năng của cURL. Mọi thông tin thắc vui lòng liên hệ qua website https://aptech.fpt.edu.vn hoặc thông qua hotline của chúng tôi để được hỗ trợ sớm nhất.
FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng. |