Khi sử dụng hệ điều hành Linux để đáp ứng được cho công việc lập trình của mình, bạn sẽ gặp lệnh cURL. Vậy cURL là gì? Những lệnh cURL cơ bản và thông dụng? TinoHost sẽ giải đáp giúp bạn qua bài viết này!
cURL là gì?
cURL viết tắt của Client URL. Đây là một công cụ dòng lệnh (command line tool) và thư viện dùng để kiểm tra kết nối từ URL và cho phép truyền dữ liệu thông qua nhiều giao thức khác nhau.
HTTP, HTTPS, FTP, FTPS, SCP, SFTP, FILE, IMAP, SMTP, POP3, … là những giao thức cURL được sử dụng thường xuyên.
cURL được viết bởi Daniel Stenberg bằng C vào năm 1997.
Chức năng của cURL
Giao thức HTTP giúp cURL hỗ trợ việc gửi đi một request với tất cả các phương thức hiện có như GET, POST, PUT, DELETE, …
- Hỗ trợ người dùng tải xuống máy một trang web trên mạng Internet. Đây là một trong những chức năng cơ bản nhất của cURL.
- Vận chuyển các tập tin, hình ảnh, dữ liệu,… từ nơi khác đến máy chủ hoặc từ máy chủ đến nơi khác.
- Kiểm tra cookies nào đã được tải trên URL.
4 bước sử dụng cURL PHP cơ bản
Bước 1: Khởi tạo cURL
Hàm sử dụng: curl_init ().
Bạn sẽ nhận được một resource (một kiểu dữ liệu được định nghĩa trong PHP) từ hệ thống.
Bước 2: Thiết lập tùy chọn request
Hàm sử dụng: curl_setopt(). Đây là hàm quan trọng để xử lý các dữ liệu đầu vào. Ví dụ như: content-type, charset hoặc giá trị cookies, giao thức HTTP,…
Các curl_setopt() bắt buộc phải đứng trước curl_exec() thì mới có tác dụng.
Curl_setopt() thường sẽ có 3 tham số đầu vào:
- Đối tượng cURL.
- Tên cấu hình.
- Giá trị của cấu hình.
Các tham số được ngăn cách với nhau bằng dấu phẩy. Ví dụ: curl_setopt($ch, CURLOPT_URL, ‘https:///’ ).
CURLOPT_URL, CURLOPT_RETURNTRANSFER, CURLOPT_TIMEOUT, CURLOPT_USERAGENT, CURLOPT_FILE, … là những cấu hình thông dụng với cURL.
Bước 3: Thực thi
Hàm sử dụng: curl_exec().
Bước 4: Đóng request, giải phóng tài nguyên
Hàm sử dụng: curl_close().
Đóng request sẽ giúp bạn tiết kiệm đáng kể tài nguyên của hệ thống và nâng cao hiệu suất cho server.
Tổng hợp các lệnh cURL Linux Command
Lệnh kiểm tra phiên bản cURL
Cú pháp: cURL trong Linux có cú pháp: curl [OPTIONS] [URL]
Tác dụng: giúp bạn biết được cURL đã được cài đặt hay chưa, phù hợp với giao thức nào. Lệnh kiểm tra phiên bản cURL thường được sử dụng để hiển thị nội dung trên trang.
Ví dụ: nếu muốn xem nội dung của trang yourdomain.com, bạn cần sử dụng cú pháp: curl yourdomain.com. Hệ thống sẽ render (kết xuất) cho bạn mã nguồn trang chủ của domain này.
Dùng cURL Command để tải file
Tác dụng: dùng để tải một dữ liệu từ máy chủ ở xa.
Có 2 cách thao tác:
Cách 1: Lưu file trên folder hiện hành. Tên file download xuống giống với tên file từ xa.
Cú pháp: curl -O http://yourdomain.com/yourfile.tar.gz
Dùng cách này, file sẽ được lưu với tên yourfile.tar.gz.
Cách 2: Cho phép tùy chọn tên file và đường dẫn lưu trữ.
Cú pháp: curl -o newyourfile.tar.gz http://yourdomain.com/yourfile.tar.gz
Dùng cách này, file sẽ được lưu với tên mới là newyourfile.tar.gz
Lệnh HTTP cURL Command
- Sử dụng như một server proxy để tải file. Cú pháp:
curl -x sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz
- Kiểm tra thông tin header của web HTTP. Câu lệnh thực hiện:
curl -I www.yourdomain.com
- Gửi yêu cầu GET và POST:
Cú pháp GET request: curl http://mydomain.com
Cú pháp POST request: curl –data “text=Howareyou” https://mydomain.com/firstpage.jsp
Lệnh cURL cho Cookies
Tác dụng: kiểm tra các cookies nào được tải trên URL
Cú pháp: curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
Nếu có sẵn cookies trong file, bạn có thể upload nó lên website. Câu lệnh áp dụng:
curl --cookie Mycookies.txt https://www. samplewebsite.com
Lệnh cURL cho FTP
Để tải file từ máy chủ từ xa, bạn dùng câu lệnh: curl -u username:password -O ftp://nameftpserver/yourfile.tar.gz
Để tải file lên máy chủ FTP, bạn dùng câu lệnh: curl -u username:password -T yourfile.tar.gz ftp://nameftpserver
Hàm cURL thiết lập tùy chọn cùng lúc
Nếu muốn thực hiện nhiều thiết lập tùy chọn cùng lúc, bạn nên sử dụng hàm curl_setopt_array().
Cấu trúc hoàn chỉnh của hàm curl_setopt_array() sẽ có dạng như sau:
curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https:///', CURLOPT_USERAGENT => 'Exmaple POST', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => http_build_query(array( 'email' => 'sydney@fife', 'password' => 'pistol' ))
Lệnh giới hạn output của cURL
Cú pháp: curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O
Câu lệnh này đã giới hạn băng thông tải xuống là 100K.
Giới hạn băng thông sẽ hạn chế tình trạng dung lượng file quá lớn khiến máy download chậm, nghẽn mạng,…
Một số lệnh Curl khác bạn có thể tham khảo trong ảnh:
Qua bài viết này, TinoHost hi vọng đã cung cấp được những kiến thức hữu ích bổ sung cho bạn. Chúc bạn thành công trên con đường lập trình đã chọn!
Những câu hỏi thường gặp về cURL
Để dùng cURL trong PHP, cần chuẩn bị những gì?
Để dùng cURL trong PHP, hệ thống của bạn cần có:
- Bộ thư viện libcurl của PHP.
- Thư viện LibcURL đã được tích hợp sẵn trên các package cài đặt PHP như XAMPP, WAMP, MAMP. Nếu bạn dùng các package này, bạn có thể yên tâm sử dụng mà không cần cài đặt.
Tải nhiều file bằng cURL như thế nào?
Để tải nhiều file, bạn có thể dùng lệnh sau:
curl -O http://yourdomain.com/yourfile.tar.gz -O http://mydomain.com/myfile.tar.gz
Lệnh xem toàn bộ lệnh cURL?
Để có thể xem toàn bộ lệnh trong cURL, bạn nhập lệnh: man curl.
Nếu không sẵn có hệ điều hành Linux, bạn có thể truy cập vào link này để xem toàn bộ lệnh cURL.
cURL và Curl có gì khác nhau?
Chúng khác nhau ở mặt trình bày viết hoa và ngữ nghĩa.
- cURL là tên ban đầu của Curl, nhấn mạnh sự liên quan với URL.
- Curl là tên về sau của Curl.
Bạn có thể trình bày bằng cả 2 cách viết này, tuy nhiên trong văn bản của bạn nên thống nhất sử dụng 1 thình thức.
Mọi thắc mắc và góp ý liên quan, xin vui lòng liên hệ ngay TinoHost để được tư vấn chi tiết hoặc Fanpage để cập nhật những thông tin mới nhất nhé!
Với bề dày kinh nghiệm hơn 5 năm cung cấp hosting, dịch vụ cho thuê máy chủ, các dịch vụ liên quan đến tên miền và bảo mật website, hãy để TinoHost đồng hành cùng bạn trên con đường khẳng định thương hiệu trên bản đồ công nghệ toàn cầu!