Curl là gì? Các lệnh curl – Curl Command cần biết trong Linux
Lệnh Curl là gì? Nó là chữ viết tắt của “Client URL”, dùng để kiểm tra kết nối tới URL và curl command thường dùng để truyền tải dữ liệu. Curl được cung cấp bởi libcurl, là một bộ thư viện truyền URL phía máy khách. Hãy cùng chúng tôi tìm hiểu cách sử dụng nó.
Curl command hỗ trợ các giao thức bên dưới:
- HTTP và HTTPS
- FTP và FTPS
- IMAP và IMAPS
- POP3 và POP3S
- SMB và SMBS
- SFTP
- SCP
- TELNET
- GOPHER
- LDAP và LDAPS
- SMTP và SMTPS
Đây là những protocol được hỗ trợ quan trọng nhất, cũng có các giao thức khác ít phổ biến hơn.
Kiểm tra phiên bản Curl:
Trước khi bắt đầu làm việc với Curl, bạn cần đăng nhập vào VPS trước. Nếu chưa biết cách, hãy xem bài viết sau để sử dụng SSH truy cập vào VPS.
Đầu tiên, hãy kiểm tra phiên bản Curl bằng lệnh sau để chắc chắn nó đã được cài trên máy:
curl --version
Kết quả sẽ hiện phiên bản Curl để bạn biết danh sách protocol được hỗ trợ. Giờ hãy xem một vài ví dụ của Curl command.
Cú pháp của lệnh Curl
Để biết cách sử dụng curl command, bạn cần biết cú pháp của Curl:
curl [OPTIONS] [URL]
Cách dùng đơn giản nhất của Curl là hiển thị nội dung của trang. Ví dụ sau sẽ cho bạn xem nội dung của trang chủ của trang testdomain.com.
curl testdomain.com
Nó sẽ kết xuất (render) cho bạn mã nguồn của trang chủ website này. Nếu không xác định protocol thì curl sẽ mặc định dịch nó thành HTTP.
Các lựa chọn để dùng Curl Command
Curl commands có thể tải file từ một máy chủ từ xa. Bạn có thể thực hiện qua 2 cách::
- -O sẽ lưu file trong cùng thư mục hiện hành với tên file giống với tên file từ xa.
- -o giúp bạn chọn tên file và đường dẫn của file
Bạn có thể tham khảo ví dụ bên dưới:
curl -O http://testdomain.com/testfile.tar.gz
Lệnh trên sẽ lưu file thành testfile.tar.gz.
curl -o newtestfile.tar.gz http://testdomain.com/testfile.tar.gz
Lệnh trên sẽ lưu file thành newtestfile.tar.gz.
Nếu vì lý do gì đó, việc tải file thất bạn, bạn có thể resume bằng lệnh curl. Bạn dùng lệnh sau::
curl -C - -O http://testdomain.com/testfile.tar.gz
Với curl, bạn có cũng có thể tải nhiều file bằng lệnh sau:
curl -O http://testdomain.com/testfile.tar.gz -O http://mydomain.com/myfile.tar.gz
Nếu muốn tải nhiều file từ nhiều URL khác nhau được liệt kê trong một file text. Curl command có thể kết hợp với xargs để tải nhiều URLs khác nhau.
Ví dụ, nếu bạn có file allUrls.txt chứa nhiều URL cần tải về, vậy bạn dùng lệnh sau để tải toàn bộ các link trong file đó:
xargs –n 1 curl -O < allUrls.txt
Curl Commands cho Http
Curl cũng có thể được dùng dùng như là một server proxy. Nếu bạn có server đang nghe trên port 8090 tại sampleproxy.com, tải file như sau:
curl -x sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz
Trong ví dụ trên, bạn có thể bỏ qua -U username:password nếu proxy không cần chứng thực.
Một HTTP request thông thường sẽ luôn chứa header. HTTP header gửi những thông tin công thêm này vào web server từ a bên cạnh yêu cầu thực. Công cụ lập trình trên trình duyệt có thể kiểm tra được thông tin header, nhưng bạn cũng có thể xác thực nó bằng lệnh curl.
Bên dưới là ví dụ cách lấy thông tin header từ một website bằng curl:
curl -I www.testdomain.com
Với curl, bạn còn dùng được request GET và POST. GET sẽ dùng như sau:
curl http://mydomain.com
Ví dụ POST request thì như sau:
curl –data “text=Hello” https://myDomain.com/firstPage.jsp
Tại đó, đoạn text=Hello là tham số của POST. Hành động này cũng tương tự như sử dụng HTML form.
Bạn có thể xác định nhiều phương pháp HTTP trong một lệnh curl duy nhất, bằng tùy chọn -next:
curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp
Nó bao gồm POST đi theo GET request.
Mỗi HTTP request sẽ có một user agent được gửi như một phần của request. Nó định dạng thông tin trình duyệt của máy client. Mặc định, curl request chứa curl và phiên bản của nó làm thông tin của user agent. Ví dụ như output của nó làL
“GET / HTTP/1.1” 200 “_” ”curl/7/29/0”
Bạn có thể đổi thông tin mặc định của user agent bằng lệnh bên dưới:
curl -I http://mydomain.com –-user-agent “My new Browser”
Kết quả giờ sẽ như sau:
“GET / HTTP/1.1” 200 “_” ”My new Browser”
Curl cho Cookies
Curl command cũng có thể dùng để kiểm tra cookies nào được tải trên URL. Vì vậy, nếu bạn truy cập https://www.samplewebsite.com, sau đó output một file, lưu cookies và truy cập chúng sử dụng cat hay VM editor.
Bên dưới là mẫu lệnh này:
curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O
Tương tự, nếu bạn có cookies trong file, bạn có thể gửi nó lên website. Ví dụ lệnh để gửi cookies là:
curl --cookie Mycookies.txt https://www. samplewebsite.com
Curl cho FTP
Curl command hỗ trợ FTP! Bạn dùng chúng để tải file từ máy chủ từ xa.
curl -u username:password -O ftp://sampleftpserver/testfile.tar.gz
Trong lệnh ở trên, ftp://sampleftpserver là FTP server chấp nhật kết nối. Username và password có thể bỏ qua nếu như server hỗ trợ anonymous FTP (FTP ẩn danh). Gõ lệnh và xem tiến trình xảy ra
Bạn có thể upload file bằng lệnh sau:
curl -u username:password -T testfile.tar.gz ftp://sampleftpserver
Cũng vậy, chúng ta có thể bỏ qua username và password để kết nối ẩn danh
Giới hạn output của Curl
Khi sử dụng curl, bạn không biết được output lớn đến đâu. Để hạn chế sử dụng băng thông lớn, hãy giới hạn curl output lại để tránh bị nghẽn mạng.
Lệnh bên dưới sẽ giới hạn băng thông xuống 100K:
curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O
Lời kết
Curl rất mạnh và được dùng phổ biến khắp nơi. Nó hữu dụng nhất khi bạn hay sử dụng dòng lệnh. Nó có nhiều lựa chọn khi thực hiện lệnh và hỗ trợ rất nhiều giao thức. Đây là lý do lớn để cần phải biết command này~
Hãy nhớ, nếu bạn muốn tìm hiểu lệnh này sâu hơn, chỉ cần xem qua hướng dẫn tài liệu của nó khi đang dùng bất kỳ bản Unix nào bằng lệnh
man curl
Chúng tôi hy vọng bài hướng dẫn này có thể giúp bạn hiểu rõ curl là gì, nó mạnh mẽ như thế nào. Và quan trọng nhất! Biết cách sử dụng curl command! Ngoài ra, nếu bạn có điều gì muốn chia sẽ, đừng quên để lại bình luận bên dưới!
Write a Comment
You must be logged in to post a comment.