Sử dụng cURL trong ServBay
cURL là một công cụ dòng lệnh mạnh mẽ và thư viện phổ biến, được sử dụng rộng rãi để truyền dữ liệu qua các giao thức như HTTP, HTTPS, FTP... Trong phát triển web, cURL trở thành công cụ không thể thiếu, đặc biệt hữu ích để gửi yêu cầu HTTP, gọi API, tải xuống hay tải lên tệp cũng như kiểm tra kết nối dịch vụ.
ServBay – môi trường phát triển web cục bộ dành cho lập trình viên – đã tích hợp sẵn phiên bản mới nhất của cURL ngay từ khi cài đặt, bạn không cần tự cài đặt thêm. Điều này có nghĩa là bạn có thể sử dụng lệnh curl
trực tiếp trong terminal mà ServBay cung cấp để thực hiện các thao tác mạng và kiểm thử một cách thuận tiện.
Bài viết này sẽ hướng dẫn chi tiết cách sử dụng cURL trong môi trường ServBay, đồng thời cung cấp các ví dụ thông dụng cũng như mẹo nâng cao.
Cài đặt & Cấu hình
Cài đặt cURL
ServBay đã tích hợp sẵn cURL khi cài đặt, bạn không cần thiết phải cài đặt lại. Bạn chỉ cần mở terminal do ServBay cung cấp và nhập lệnh curl
để sử dụng.
Để kiểm tra cURL có sẵn và đang dùng phiên bản nào, hãy nhập lệnh sau trong terminal của ServBay:
curl --version
Lệnh này sẽ hiển thị thông tin phiên bản cURL, cùng danh sách các giao thức và tính năng hỗ trợ, xác nhận cURL đã sẵn sàng để sử dụng.
Cấu hình cURL
Với hầu hết các tác vụ thông thường, cURL sẽ hoạt động tốt mà không cần cấu hình thêm. Bạn có thể kiểm soát hành vi của cURL chi tiết thông qua các tham số dòng lệnh, đáp ứng đa dạng nhu cầu truyền tải dữ liệu.
Ví dụ sử dụng cơ bản
cURL cung cấp nhiều tuỳ chọn dòng lệnh để thực hiện các nhiệm vụ truyền tải dữ liệu. Dưới đây là một số ví dụ cơ bản, giúp bạn dễ dàng thực hiện các thao tác thường gặp trong phát triển web:
Gửi yêu cầu HTTP GET
Gửi yêu cầu GET là một trong những cách sử dụng phổ biến nhất của cURL, thường dùng để lấy dữ liệu từ một URL cụ thể.
curl -X GET https://api.servbay.demo/data
Hoặc, vì GET là mặc định nên bạn có thể rút gọn như sau:
curl https://api.servbay.demo/data
Gửi yêu cầu HTTP POST
Gửi POST thường dùng để gửi dữ liệu lên máy chủ, ví dụ như gửi form hoặc dữ liệu JSON. Sử dụng tuỳ chọn -d
(hoặc --data
) để chỉ định dữ liệu cần gửi.
curl -X POST -d "param1=value1¶m2=value2" https://api.servbay.demo/data
Tải xuống tệp
Tải tệp bằng cURL rất đơn giản. Tuỳ chọn -O
sẽ lưu tệp với đúng tên như trên máy chủ về thư mục hiện tại.
curl -O https://servbay.demo/file.zip
Nếu muốn đặt tên tệp tải về theo ý mình, dùng tuỳ chọn -o
:
curl -o ten_tuychon.zip https://servbay.demo/file.zip
Tải lên tệp
cURL cũng hỗ trợ mô phỏng upload file rất tiện lợi. Sử dụng tuỳ chọn -F
(hoặc --form
) để chỉ định tệp muốn upload, định dạng thường là name=@/duongdan/toi/file
.
curl -X POST -F "file=@/Applications/ServBay/www/servbay.demo/upload/document.pdf" https://api.servbay.demo/upload
Hãy thay thế /Applications/ServBay/www/servbay.demo/upload/document.pdf
bằng đường dẫn thực tế tới tệp bạn muốn tải lên.
Mẹo sử dụng nâng cao
Bên cạnh các chức năng cơ bản, cURL còn cung cấp nhiều tuỳ chọn nâng cao, khiến nó trở thành công cụ mạng cực kỳ linh hoạt.
Thiết lập HTTP Header
Sử dụng tuỳ chọn -H
(hoặc --header
) để thêm HTTP Header tuỳ chỉnh vào yêu cầu. Điều này rất hữu ích khi gửi dữ liệu kiểu đặc biệt (như JSON), truyền thông tin xác thực (token API, Bearer token,…).
curl -H "Content-Type: application/json" -H "Authorization: Bearer your_token_here" https://api.servbay.demo/data
Xử lý dữ liệu JSON
Trong phát triển API hiện đại, JSON là định dạng dữ liệu phổ biến. cURL hỗ trợ gửi và nhận dữ liệu JSON rất dễ dàng.
Gửi dữ liệu JSON
Khi gửi JSON, bạn cần thiết lập header Content-Type
thành application/json
, và dùng tuỳ chọn -d
để truyền chuỗi JSON.
curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}' https://api.servbay.demo/data
Nhận và đọc dữ liệu JSON phản hồi (cùng với jq)
Phản hồi từ cURL là văn bản thô. Để dễ dàng xem và phân tích phản hồi dạng JSON, bạn có thể kết hợp với công cụ jq – trình xử lý JSON dòng lệnh mạnh mẽ.
curl -s https://api.servbay.demo/data | jq .
Lưu ý: jq
không được tích hợp sẵn trong ServBay, bạn có thể cần cài đặt nó riêng. Trên macOS có Homebrew, bạn có thể cài bằng brew install jq
. Tham số -s
của cURL chuyển sang chế độ yên lặng (không hiện tiến trình hoặc lỗi), để đầu ra chỉ còn phần thân phản hồi chuyển cho jq. Tham khảo thêm tại website jq.
Xử lý Cookie
cURL có thể lưu trữ và gửi cookies, rất quan trọng khi thử nghiệm ứng dụng web có quản lý phiên đăng nhập.
Lưu cookies vào tệp
Sử dụng tuỳ chọn -c
(hoặc --cookie-jar
) để lưu cookies mà máy chủ trả về vào file chỉ định.
curl -c cookies.txt https://servbay.demo
Sử dụng file cookies
Sử dụng tuỳ chọn -b
(hoặc --cookie
) để gửi cookies từ file tới máy chủ trong các yêu cầu tiếp theo.
curl -b cookies.txt https://servbay.demo/profile
Sử dụng Proxy
Nếu bạn cần truy cập internet qua máy chủ proxy, dùng tuỳ chọn -x
(hoặc --proxy
) để chỉ định địa chỉ proxy.
curl -x http://proxy.servbay.demo:8080 https://api.servbay.demo/data
Giới hạn băng thông truyền tải
Tuỳ chọn --limit-rate
cho phép bạn giới hạn tốc độ truyền dữ liệu (số byte/giây), có hỗ trợ hậu tố k, m, g. Điều này hữu ích khi kiểm thử giới hạn mạng hoặc tránh chiếm quá nhiều băng thông.
curl --limit-rate 100K https://servbay.demo/largefile.zip -O
Tải lại trong trường hợp gián đoạn (Resume)
Khi tải file lớn, cURL hỗ trợ phương thức tiếp tục tải nếu bị ngắt quãng. Dùng tuỳ chọn -C -
, cURL sẽ kiểm tra phần đã tải và tiếp tục từ vị trí dừng lại.
curl -C - -O https://servbay.demo/largefile.zip
Xác thực chứng chỉ SSL
Theo mặc định, cURL xác thực chứng chỉ SSL khi kết nối HTTPS. Nếu cần chỉ định file CA khác để xác thực, sử dụng tuỳ chọn --cacert
.
curl --cacert /duongdan/toi/custom_ca.crt https://secure.servbay.demo
Nếu bạn đã cấu hình site HTTPS trong ServBay và sử dụng chứng chỉ được cấp bởi CA ServBay (ServBay User CA hoặc ServBay Public CA), bạn có thể dùng gói chứng chỉ CA của ServBay để xác thực SSL cho site cục bộ. Hãy đọc tài liệu SSL/HTTPS của ServBay để xác định chính xác vị trí gói CA, thường nằm trong thư mục etc/ssl
tại thư mục cài đặt ServBay.
Cảnh báo: Trong một số trường hợp thử nghiệm, bạn có thể sử dụng tuỳ chọn --insecure
(hoặc -k
) để bỏ qua lỗi xác thực chứng chỉ SSL. Tuyệt đối không nên dùng tuỳ chọn này ở môi trường sản xuất hoặc xử lý dữ liệu nhạy cảm, vì nó vô hiệu hoá kiểm tra bảo mật quan trọng.
curl --insecure https://secure.servbay.demo
Câu hỏi thường gặp (FAQ)
1. Nhập lệnh curl
trong terminal ServBay báo không tìm thấy
- Nguyên nhân: Thường do môi trường terminal hiện tại chưa thêm chính xác đường dẫn tới chương trình của ServBay.
- Cách khắc phục: Đảm bảo biến môi trường của ServBay đã được thiết lập đúng. Nếu vẫn lỗi, hãy thử mở ServBay, vào “Cài đặt” → “Công cụ dòng lệnh”, cấu hình tương ứng cho
zsh
hoặcbash
, sau đó khởi động lại terminal.
2. Lỗi kết nối hoặc timeout khi gửi yêu cầu
- Nguyên nhân: Có thể do máy chủ đích không truy cập được, sự cố mạng, firewall chặn hoặc URL sai.
- Cách khắc phục:
- Kiểm tra URL đã nhập có chính xác không.
- Đảm bảo kết nối internet bình thường.
- Nếu truy cập site ServBay cục bộ (ví dụ
servbay.demo
), kiểm tra ServBay đã chạy, và web server (Caddy/Nginx) đã khởi động. - Kiểm tra xem firewall hay phần mềm an ninh nào đang chặn truy cập ra từ cURL không.
- Với kết nối HTTPS, kiểm tra chứng chỉ SSL có hợp lệ không (tham khảo thêm phần xác thực SSL bên trên).
3. Không tải xuống hoặc tải lên file được
- Nguyên nhân: Có thể do sai đường dẫn file, quyền truy cập file hạn chế, máy chủ không hỗ trợ thao tác, hoặc lỗi server.
- Cách khắc phục:
- Đảm bảo đường dẫn file trong lệnh là chính xác và tồn tại.
- Xác minh user đang chạy ServBay hoặc user terminal có quyền đọc/ghi file không.
- Nếu upload lên site ServBay cục bộ, kiểm tra web server cho phép upload tệp, đồng thời thư mục đích phải tồn tại và được phép ghi.
- Đọc kỹ thông báo lỗi của cURL để xác định nguyên nhân cụ thể.
4. Lỗi xác thực SSL certificate
- Nguyên nhân: Do chứng chỉ SSL của trang đích không hợp lệ, hết hạn, không đúng tên miền, thiếu chuỗi chứng chỉ hoặc cURL không tìm được CA đã dùng để cấp.
- Cách khắc phục:
- Kiểm tra chứng chỉ trang đích đã hợp lệ chưa.
- Nếu dùng chứng chỉ do CA của ServBay cung cấp, tham khảo tài liệu để cấu hình tham số
--cacert
trỏ tới gói chứng chỉ CA của ServBay. - Với các tác vụ thử nghiệm không liên quan dữ liệu nhạy cảm, bạn có thể tạm thời dùng
--insecure
bỏ qua lỗi (không khuyến khích cho môi trường thật).
Tổng kết
cURL là một công cụ dòng lệnh mạnh mẽ và linh hoạt, không thể thiếu cho lập trình viên web. Với cURL tích hợp sẵn trong ServBay, bạn có thể dễ dàng kiểm thử, trao đổi dữ liệu và kết nối mạng từ môi trường phát triển cục bộ—từ các yêu cầu HTTP đơn giản, đến thao tác API phức tạp, upload/download file. Thành thạo cURL sẽ giúp tối ưu hóa hiệu suất làm việc và tăng khả năng xử lý sự cố.