close

cURL là gì? Tổng hợp các lệnh cURL Linux Command

Tác giả: Hồng Nhi Ngày cập nhật: 21/10/2020 Chuyên mục: Webmasters
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

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-la-gi

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.

curl-la-gi

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. 

Images 1

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:

curl-la-gi

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!



Hồng Nhi

Content Manager

Chị Hồng Nhi, "người giữ lửa" đứng sau wiki.tino.org, là một Content Manager tài năng với hành trình sự nghiệp đầy cảm hứng. Tốt nghiệp cử nhân Ngữ văn Anh năm 2017, cử nhân Ngữ văn Nga năm 2019 và Thạc sĩ Quan hệ Quốc tế năm 2024 tại trường Đại học KHXH&NV - ĐHQG TP.HCM, chị sở hữu nền tảng kiến thức vững chắc cùng kinh nghiệm dày dặn trong lĩnh vực truyền thông.Vốn xuất thân từ "xã hội" nhưng với niềm đam mê sáng tạo nội dung giá trị, chị đã "lấn sân" sang lĩnh vực công nghệ và nhanh chóng khẳng định bản thân. Với phương châm "diễn giải cái khó hiểu nhất bằng cách dễ hiểu nhất", chị đã chinh phục độc giả bằng những bài viết blog công nghệ súc tích, dễ hiểu và hữu ích. Đồng hành cùng TinoHost từ những ngày đầu thành lập, chị Hồng Nhi hiện là Content Manager, người trực tiếp quản lý và vận hành wiki.tino.org cùng nhiều website uy tín khác.

Xem thêm bài viết

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886