Các công cụ dòng lệnh cho nhà phát triển web. Curl giúp bạn quản lý dữ liệu được lưu trữ trên Web
cURL là một công cụ dòng lệnh để nhận hoặc gửi dữ liệu bằng cú pháp URL.
Nếu bạn làm việc trong bộ phận hỗ trợ, bạn sẽ có thể sử dụng các lệnh cURL để khắc phục sự cố ứng dụng web. cURL là một tiện ích đa nền tảng cho Windows, MAC và UNIX.
Sau đây là một số ví dụ về cú pháp thường được sử dụng.
1. Kiểm tra kết nối với URL
Nếu bạn đang sử dụng hệ thống UNIX và đang cố gắng kết nối với url bên ngoài, thì trước tiên hãy kiểm tra xem bạn có thể truy cập tài nguyên thông qua curl hay không. Để thực hiện việc này, hãy sử dụng lệnh sau:
# curl yoururl.com
2. Lưu url / uri đầu ra vào một tệp
# curl yoururl.com> yoururl.html
Ví dụ:
# curl 74.125.68.100> /tmp/google.html
Ví dụ trên sẽ lưu tất cả nội dung từ máy chủ lưu trữ 74.125.68.100 vào /tmp/google.html.
3. Hiển thị tiêu đề của yêu cầu và phản hồi
Nếu bạn muốn đảm bảo rằng bạn đang nhận được tiêu đề yêu cầu và phản hồi như mong đợi, hãy sử dụng lệnh sau:
# curl -v yoururl.com
Ví dụ:
# curl -v 74.125.68.100 * Sắp kết nối () với 74.125.68.100 cổng 80 (# 0) * Đang thử 74.125.68.100 ... * Đã kết nối với 74.125.68.100 (74.125.68.100) cổng 80 (# 0)> GET / HTTP / 1.1> Tác nhân người dùng: curl / 7.29.0> Máy chủ: 74.125.68.100> Chấp nhận: * / *>< HTTP/1.1 200 OK
Nếu bạn cần biết mất bao lâu để tải xuống ở một tốc độ nhất định, hãy sử dụng lệnh sau: # curl –-limit-rate 2000B Ví dụ: # curl –-limit-rate 2000B 74.125.68.100 Nếu bạn cần kiểm tra xem có thể sử dụng proxy hay không, hãy sử dụng cú pháp sau: # curl --proxyyourproxy: port http://yoururl.com Để khắc phục một sự cố cụ thể, bạn có thể sử dụng Curl để chèn dữ liệu của mình vào tiêu đề. Hãy xem xét ví dụ sau về một yêu cầu với Loại-Nội dung: # curl --header "Content-Type: application / json" http://yoururl.com Chúng tôi yêu cầu curl chuyển Content-Type làm ứng dụng / json trong tiêu đề yêu cầu. Bạn có thể thêm tiêu đề vào yêu cầu bằng cú pháp - tiêu đề. # curl –-header “X-CustomHeader: GeekFlare” http://yoururl.com Ví dụ: # curl -v --header "X-CustomHeader: GeekFlare" 74.125.68 * Sắp kết nối () với 74.125.68.100 cổng 80 (# 0) * Đang thử 74.125.68.100 ... * Đã kết nối với 74.125.68.100 (74.125. 68.100) cổng 80 (# 0)> GET / HTTP / 1.1> Tác nhân người dùng: curl / 7.29.0> Máy chủ: 74.125.68.100> Chấp nhận: * / *> X-CustomHeader: GeekFlare>< HTTP/1.1 200 OK
Nếu bạn muốn nhanh chóng kiểm tra tiêu đề phản hồi, bạn có thể sử dụng cú pháp sau. # curl --head http://yoururl.com # curl -I 74.125.68.100 HTTP / 1.1 200 OK Ngày: Chủ nhật, 18 tháng 1 năm 2015 08:31:22 GMT Hết hạn: -1 Cache-Control: private, max-age = 0 Content-Type: text / html; bảng mã = ISO-8859-1 Set-Cookie: NID = 67 = SpnXKTDUhw7QGakIeLxmDSF; hết hạn = Thứ Hai, ngày 20 tháng 7 năm 2015 08:31:22 GMT; đường dẫn = /; miền =.; HttpOnly P3P: CP = "Đây không phải là chính sách P3P! Hãy xem http://www.google.com/support/accounts/bin/answer.py?hl=vi&answer=151657 để biết thêm thông tin." Máy chủ: gws X-XSS-Protection: 1; mode = block X-Frame-Options: SAMEORIGIN Alternate-Protocol: 80: quic, p = 0.02 Transfer-Encoding: chunked Accept-Ranges: none Vary: Accept-Encoding # Nếu bạn cần truy cập URL https đang gặp lỗi chứng chỉ do tên máy chủ không khớp, bạn có thể sử dụng cú pháp sau. curl --insecure https://yoururl.com Để kết nối với URL chỉ bằng SSL V2 / V3 hoặc TLS, hãy sử dụng cú pháp sau. Để kết nối bằng SSLV2: # curl --sslv2 https://yoururl.com Để kết nối bằng SSLV3: # curl --sslv3 https://yoururl.com Để kết nối qua TLS: # curl --tlsv1 https://yoururl.com Bạn có thể sử dụng cURL để tải xuống tệp từ máy chủ ftp với tên người dùng và mật khẩu. # curl -u người dùng: password -O ftp: //ftpurl/style.css Bạn luôn có thể sử dụng "-v" với bất kỳ cú pháp nào cho đầu ra dài dòng. Có nó là có thể. Bạn có thể thực thi cURL từ xa bằng các công cụ sau. Connect-timeout --cookie --data --header --head --location --max-time --proxy --request --user --url --user-agent Ví dụ đầu ra: cURL là một tiện ích hữu ích để khắc phục sự cố kết nối trong thời gian thực. Cuộc sống của một nhà phát triển web được bao phủ bởi sự phức tạp. Nó đặc biệt bực bội khi không rõ nguồn gốc của những biến chứng này. Có phải vấn đề với việc gửi yêu cầu hoặc với phản hồi, hoặc với thư viện của bên thứ ba hoặc API bên ngoài bị lỗi? Có rất nhiều cách thích ứng khác nhau có thể giúp cuộc sống của chúng ta dễ dàng hơn. Đây là một số công cụ dòng lệnh mà cá nhân tôi thấy vô giá. $ curl ifconfig.me 93,96.141,93 $ curl -I site HTTP / 1.1 200 OK Máy chủ: nginx Ngày: Thu, 18/08/2011 14:15:36 GMT Nội dung-Loại: text / html; charset = utf-8 Kết nối: giữ sống Giữ sống: hết giờ = 25 Bao vây $ siege -g www.google.com GET / HTTP / 1.1 Máy chủ: www.google.com Tác nhân người dùng: JoeDog / 1.00 (X11; I; Siege 2.70) Kết nối: đóng HTTP / 1.1 302 Vị trí tìm thấy: http: // www.google.co.uk/ Loại-Nội dung: text / html; charset = UTF-8 Máy chủ: gws Nội dung-Độ dài: 221 Kết nối: đóng GET / HTTP / 1.1 Máy chủ: www.google.co.uk Tác nhân người dùng: JoeDog / 1.00 (X11; I; Siege 2.70) Kết nối: đóng HTTP / 1.1 200 OK Loại Nội dung: text / html; bộ ký tự = ISO-8859-1 X-XSS-Protection: 1; mode = block Kết nối: đóng $ siege -c20 www.google.co.uk -b -t30s ... Nâng máy chủ bao vây ... xong. Giao dịch: 1400 lượt truy cập Tính khả dụng: 100,00% Thời gian đã trôi qua: 29,22 giây Dữ liệu đã truyền: 13,32 MB Thời gian phản hồi: 0,41 giây Tốc độ giao dịch: 47,91 trans / giây Thông lượng: 0,46 MB / giây Đồng thời: 19,53 Giao dịch thành công: 1400 Giao dịch không thành công: 0 Giao dịch dài nhất: 4.08 Giao dịch ngắn nhất: 0.08 $ cut -d "" -f7 /var/log/apache2/access.log> urls.txt $ siege -c Đối với lưu lượng truy cập web, hầu như bạn sẽ luôn muốn sử dụng tham số -Wđể duy trì định dạng chuỗi cũng như tùy chọn -qẩn thông tin dư thừa về các gói không phù hợp. Đây là một ví dụ về lệnh chặn tất cả các gói bằng lệnh GET hoặc POST: Ngrep -q -W byline "^ (GET | POST). *" Ngrep -q -W byline "tìm kiếm" máy chủ www.google.com và cổng 80 curl cung cấp một loạt các thủ thuật hữu ích như hỗ trợ proxy, xác thực người dùng, tải lên ftp, bài đăng HTTP, kết nối SSL (https :), cookie, tiếp tục truyền tệp và hơn thế nữa. Như bạn sẽ thấy bên dưới, số lượng tính năng sẽ khiến bạn quay cuồng! curl được cung cấp bởi libcurl cho tất cả các tính năng liên quan đến truyền. Xem (3) để biết thêm chi tiết. Bạn có thể chỉ định nhiều URL hoặc các phần của URL bằng cách viết các bộ phần trong dấu ngoặc nhọn như trong: hoặc bạn có thể lấy chuỗi chuỗi chữ và số bằng cách sử dụng như trong: Hiện tại, không hỗ trợ lồng các chuỗi, nhưng bạn có thể sử dụng một số chuỗi bên cạnh nhau: Bạn có thể chỉ định bất kỳ số lượng URL nào trên dòng lệnh. Chúng sẽ được tìm nạp một cách tuần tự theo thứ tự được chỉ định. Kể từ curl 7.15.1, bạn cũng có thể chỉ định bộ đếm bước cho các phạm vi, để bạn có thể nhận được mọi số hoặc chữ cái thứ N: Nếu bạn chỉ định URL mà không có tiền tố protocol: //, curl sẽ cố gắng đoán xem bạn có thể muốn giao thức nào. Sau đó, nó sẽ mặc định là HTTP nhưng hãy thử các giao thức khác dựa trên tiền tố tên máy chủ thường được sử dụng. Ví dụ: đối với tên máy chủ bắt đầu bằng "ftp". curl sẽ giả sử bạn muốn nói FTP. Tuy nhiên, vì curl hiển thị dữ liệu vào thiết bị đầu cuối theo mặc định, nếu bạn gọi curl để thực hiện một thao tác và nó sắp ghi dữ liệu vào thiết bị đầu cuối, nó vô hiệu hóađồng hồ đo tiến độ vì nếu không nó sẽ làm rối tung đồng hồ đo tiến độ trộn đầu ra và dữ liệu phản hồi. Nếu bạn muốn một bộ đo tiến trình cho các yêu cầu HTTP POST hoặc PUT, bạn cần chuyển hướng đầu ra phản hồi đến một tệp, sử dụng chuyển hướng shell (>), -o hoặc tương tự. Trường hợp tải lên FTP không giống như vậy vì thao tác đó không đưa ra bất kỳ dữ liệu phản hồi nào tới thiết bị đầu cuối. Nếu bạn thích một "thanh" tiến trình thay vì đồng hồ thông thường, -#
là bạn của bạn. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ tắt chế độ nối thêm một lần nữa. -A / - tác nhân người dùng Nếu tùy chọn này được đặt nhiều lần, tùy chọn cuối cùng sẽ là tùy chọn được sử dụng. --Anyauth (HTTP) Cho curl biết phương thức xác thực của chính nó và sử dụng phương pháp bảo mật nhất mà trang web từ xa tuyên bố rằng nó hỗ trợ. Điều này được thực hiện trước tiên bằng cách thực hiện một yêu cầu và kiểm tra các tiêu đề phản hồi, do đó tạo ra một mạng vòng quanh bổ sung. Điều này được sử dụng thay vì đặt một phương thức xác thực cụ thể mà bạn có thể thực hiện với --nền tảng, --tiêu, --ntlm, và --đàm phán. Lưu ý rằng việc sử dụng --anyauth không được khuyến khích nếu bạn tải lên từ stdin, vì nó có thể yêu cầu dữ liệu được gửi hai lần và sau đó ứng dụng khách phải có thể tua lại. Nếu cần phát sinh khi tải lên từ stdin, thì thao tác tải lên sẽ không thành công. Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. -b / - cookie Nếu không có ký tự "=" nào được sử dụng trong dòng, nó được coi như một tên tệp để sử dụng để đọc các dòng cookie đã lưu trữ trước đó, từ đó sẽ được sử dụng trong phiên này nếu chúng khớp. Sử dụng phương pháp này cũng kích hoạt "trình phân tích cú pháp cookie" sẽ làm cho các cookie đến của bản ghi cuộn tròn cũng có thể hữu ích nếu bạn "đang sử dụng điều này kết hợp với -L / - vị trí lựa chọn. Định dạng tệp của tệp để đọc cookie phải là tiêu đề HTTP thuần túy hoặc định dạng tệp cookie Netscape / Mozilla. GHI CHÚ rằng tệp được chỉ định với -b / - cookie chỉ được sử dụng làm đầu vào. Không có cookie nào sẽ được lưu trữ trong tệp. Để lưu trữ cookie, hãy sử dụng -c / - cookie-jar hoặc bạn thậm chí có thể lưu các tiêu đề HTTP vào một tệp bằng cách sử dụng -D / - tiêu đề kết xuất! Nếu tùy chọn này được đặt nhiều lần, tùy chọn cuối cùng sẽ là tùy chọn "được sử dụng. -B / - use-ascii Bật truyền ASCII khi sử dụng FTP hoặc LDAP. Đối với FTP, điều này cũng có thể được thực thi bằng cách sử dụng URL kết thúc bằng "; type = A". Tùy chọn này khiến dữ liệu được gửi đến stdout ở chế độ văn bản cho hệ thống win32. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ vô hiệu hóa việc sử dụng ASCII. --basic (HTTP) Cho curl sử dụng xác thực HTTP cơ bản. Đây là tùy chọn mặc định và tùy chọn này thường vô nghĩa, trừ khi bạn sử dụng nó để ghi đè tùy chọn đã đặt trước đó đặt phương thức xác thực khác (chẳng hạn như --ntlm,
--tiêu và --đàm phán). Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. - môn sinh Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ ghi đè các tùy chọn khác. --compressed (HTTP) Yêu cầu phản hồi nén bằng cách sử dụng một trong các thuật toán mà libcurl hỗ trợ và trả về tài liệu không nén. Nếu tùy chọn này được sử dụng và máy chủ gửi mã hóa không được hỗ trợ, Curl sẽ báo lỗi. Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật / tắt tùy chọn này. - hết thời gian kết nối Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -c / - cookie-jar GHI CHÚ Nếu không thể tạo hoặc ghi vào hộp cookie, toàn bộ thao tác cuộn tròn sẽ không thất bại hoặc thậm chí báo lỗi rõ ràng. Sử dụng -v sẽ nhận được một cảnh báo hiển thị, nhưng đó là phản hồi hiển thị duy nhất mà bạn nhận được về tình huống có thể gây chết người này. Nếu tùy chọn này được sử dụng nhiều lần, tên tệp được chỉ định cuối cùng sẽ được sử dụng. -C / - tiếp tục-tại Sử dụng "-C -" để cho curl biết để tự động tìm ra vị trí / cách tiếp tục chuyển. Sau đó, nó sử dụng các tệp đầu ra / đầu vào nhất định để tìm ra điều đó. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --create-dirs Khi được sử dụng cùng với tùy chọn -o, curl sẽ tạo ra hệ thống phân cấp thư mục cục bộ cần thiết khi cần thiết. Tùy chọn này tạo ra các dirs được đề cập với tùy chọn -o, không có gì khác. Nếu tên tệp -o không sử dụng ký tự hoặc nếu các ký tự mà nó đề cập đã tồn tại, thì sẽ không có dir nào được tạo. Để tạo thư mục từ xa khi sử dụng FTP, hãy thử --ftp-create-dirs... --crlf (FTP) Chuyển đổi LF sang CRLF khi tải lên. Hữu ích cho MVS (OS / 390). Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. -d / - dữ liệu (HTTP) Gửi dữ liệu được chỉ định trong một yêu cầu ĐĂNG đến máy chủ HTTP, theo cách có thể mô phỏng như thể người dùng đã điền vào biểu mẫu HTML và nhấn nút gửi. Lưu ý rằng dữ liệu được gửi chính xác như đã chỉ định mà không cần xử lý thêm (với tất cả các dòng mới bị cắt). Dữ liệu dự kiến sẽ được "mã hóa url". Điều này sẽ khiến curl chuyển dữ liệu đến máy chủ bằng ứng dụng loại nội dung / x-www-form-urlencoded. So với -F / - biểu mẫu... Nếu tùy chọn này được sử dụng nhiều lần trên cùng một dòng lệnh, các phần dữ liệu được chỉ định sẽ được hợp nhất với nhau bằng dấu & -letter phân tách. Do đó, việc sử dụng "-d name = daniel -d skill = lousy" sẽ tạo ra một đoạn bài đăng trông giống như "name = daniel & skill = lousy". Nếu bạn bắt đầu dữ liệu bằng ký tự @, phần còn lại phải là tên tệp để đọc dữ liệu từ đó, hoặc - nếu bạn muốn curl đọc dữ liệu từ stdin. Nội dung của tệp phải được mã hóa url. Nhiều tệp cũng có thể được chỉ định. Do đó, việc đăng dữ liệu từ tệp có tên "foobar" sẽ được thực hiện với --dữ liệu@foobar ". Để đăng dữ liệu hoàn toàn là nhị phân, thay vào đó bạn nên sử dụng --data-binary lựa chọn. -d / - dữ liệu giống như --data-ascii. Nếu tùy chọn này được sử dụng nhiều lần, các tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-ascii (HTTP) Đây là bí danh cho -d / - dữ liệu lựa chọn. Nếu tùy chọn này được sử dụng nhiều lần, các tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --data-binary (HTTP) Điều này đăng dữ liệu theo cách tương tự như --data-ascii không, mặc dù khi sử dụng tùy chọn này, toàn bộ ngữ cảnh của dữ liệu đã đăng được giữ nguyên. Nếu bạn muốn đăng một tệp nhị phân mà không có tính năng dải mới của --data-ascii tùy chọn này là dành cho bạn. Nếu tùy chọn này được sử dụng nhiều lần, các tùy chọn sau tùy chọn đầu tiên sẽ nối thêm dữ liệu. --digest (HTTP) Cho phép xác thực Thông báo HTTP. Đây là xác thực ngăn không cho mật khẩu được gửi qua đường dây điện ở dạng văn bản rõ ràng. Sử dụng điều này kết hợp với bình thường -u / - người dùng tùy chọn để đặt tên người dùng và mật khẩu. Xem thêm --ntlm, --đàm phán và --anyauth cho các tùy chọn liên quan. Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. --disable-eprt (FTP) Cho curl biết để vô hiệu hóa việc sử dụng các lệnh EPRT và LPRT khi thực hiện truyền FTP đang hoạt động. Curl thường sẽ luôn cố gắng sử dụng EPRT trước, sau đó là LPRT trước khi sử dụng PORT, nhưng với tùy chọn này, nó sẽ sử dụng PORT ngay lập tức. EPRT và LPRT là phần mở rộng của giao thức FTP gốc, có thể không hoạt động trên tất cả các máy chủ nhưng kích hoạt nhiều chức năng hơn theo cách tốt hơn lệnh PORT truyền thống. Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật / tắt tùy chọn này. --disable-epsv (FTP) Cho curl biết để vô hiệu hóa việc sử dụng lệnh EPSV khi thực hiện truyền FTP thụ động. Curl thường sẽ luôn cố gắng sử dụng EPSV trước PASV, nhưng với tùy chọn này, nó sẽ không thử sử dụng EPSV. Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật / tắt tùy chọn này. -D / - tiêu đề kết xuất Tùy chọn này rất hữu ích để sử dụng khi bạn muốn lưu trữ các tiêu đề mà một trang web HTTP gửi cho bạn. Sau đó, cookie từ các tiêu đề có thể được đọc trong lần gọi thứ hai bằng cách sử dụng -b / - cookie lựa chọn! Các -c / - cookie-jar tuy nhiên tùy chọn là một cách tốt hơn để lưu trữ cookie. Khi được sử dụng trên FTP, các dòng phản hồi của máy chủ ftp được coi là "tiêu đề" và do đó được lưu ở đó. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -e / - giới thiệu Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --động cơ Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật / tắt tùy chọn này. --egd-file Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --cert-type Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --cacert curl nhận dạng biến môi trường có tên "CURL_CA_BUNDLE" nếu biến đó được đặt và sử dụng đường dẫn đã cho làm đường dẫn đến gói chứng chỉ CA. Tùy chọn này ghi đè biến đó. Phiên bản windows của curl sẽ tự động tìm kiếm tệp chứng chỉ CA có tên "curl-ca-pack.crt", nằm trong cùng thư mục với curl.exe hoặc trong Thư mục làm việc hiện tại hoặc trong bất kỳ thư mục nào dọc theo PATH của bạn. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. - đường ống Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -f / - fail (HTTP) Không thành công (không có đầu ra nào cả) do lỗi máy chủ. Điều này chủ yếu được thực hiện như thế này để kích hoạt tốt hơn các tập lệnh, v.v. để đối phó tốt hơn với các lần thử không thành công. Trong các trường hợp thông thường khi máy chủ HTTP không gửi được tài liệu, nó sẽ trả về một tài liệu HTML nêu rõ như vậy (thường cũng mô tả lý do và hơn thế nữa). Cờ này sẽ ngăn curl xuất ra và trả về lỗi 22. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa lỗi im lặng. --ftp-account (FTP) Khi máy chủ FTP yêu cầu "dữ liệu tài khoản" sau khi tên người dùng và mật khẩu đã được cung cấp, dữ liệu này sẽ được gửi đi bằng lệnh ACCT. (Đã thêm vào 7.13.0) Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ ghi đè lần sử dụng trước đó. --ftp-create-dirs (FTP) Khi một URL / thao tác FTP sử dụng một đường dẫn hiện không tồn tại trên máy chủ, hành vi tiêu chuẩn của curl sẽ không thành công. Sử dụng tùy chọn này, curl thay vào đó sẽ cố gắng tạo các thư mục bị thiếu ... Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tính năng tạo thư mục. --ftp-method (FTP) Kiểm soát phương thức curl nên sử dụng để truy cập tệp trên máy chủ FTP (S). Đối số phương thức phải là một trong những lựa chọn thay thế sau: multicwd curl thực hiện một thao tác CWD duy nhất cho mỗi phần đường dẫn trong URL đã cho. Đối với cấu trúc phân cấp sâu, điều này có nghĩa là rất nhiều lệnh. Đây là cách RFC1738 nói rằng nó nên được thực hiện. Đây là hành vi mặc định nhưng chậm nhất. Nocwd curl hoàn toàn không có TKT. curl sẽ thực hiện SIZE, RETR, STOR, v.v. và cung cấp một đường dẫn đầy đủ đến máy chủ cho tất cả các lệnh này. Đây là hành vi nhanh nhất. singlecwd curl thực hiện một CWD với thư mục đích đầy đủ và sau đó hoạt động trên tệp "bình thường" (giống như trong trường hợp đa ngôn ngữ). Điều này có phần tuân thủ các tiêu chuẩn hơn so với "nocwd" nhưng không có hình phạt đầy đủ cho "đa dâm". --ftp-pasv (FTP) Sử dụng PASV khi chuyển. PASV là hành vi mặc định nội bộ, nhưng sử dụng tùy chọn này có thể được sử dụng để ghi đè tùy chọn --ftp-port trước đó. (Đã thêm vào 7.11.0) Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. Ftp-thay thế-cho-người dùng Tùy chọn này không có hiệu lực nếu PORT, EPRT hoặc EPSV được sử dụng thay vì PASV. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại sử dụng địa chỉ được đề xuất của máy chủ. --Ftp-ssl (FTP) Cố gắng sử dụng SSL / TLS cho kết nối FTP. Hoàn nguyên về kết nối không an toàn nếu máy chủ không sử dụng " t hỗ trợ SSL / TLS. (Đã thêm vào 7.11.0) Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tùy chọn này. --ftp-ssl-reqd (FTP) Yêu cầu SSL / TLS cho kết nối FTP. Chấm dứt kết nối nếu máy chủ không hỗ trợ SSL / TLS. (Đã thêm vào 7.15.5) Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tùy chọn này. -F / - biểu mẫu Ví dụ, để gửi tệp mật khẩu của bạn đến máy chủ, trong đó "mật khẩu" là tên của trường biểu mẫu mà / etc / passwd sẽ là đầu vào: Để đọc nội dung của tệp từ stdin thay vì tệp, hãy sử dụng - nơi tên tệp nên ở. Điều này áp dụng cho cả @ và< constructs. Bạn cũng có thể cho curl biết Content-Type cần sử dụng bằng cách sử dụng "type =", theo cách tương tự như: Xoăn-F " [email được bảo vệ]; type = text / html "url.com Xoăn-F "name = daniel; type = text / foo" url.com Bạn cũng có thể thay đổi rõ ràng trường tên của phần tải lên tệp bằng cách đặt tên tệp =, như sau: Xoăn-F " [email được bảo vệ]; filename = nameinpost "url.com Xem thêm các ví dụ và chi tiết trong HƯỚNG DẪN. Tùy chọn này có thể được sử dụng nhiều lần. --form-string Nếu được sử dụng kết hợp với -I, thay vào đó, dữ liệu POST sẽ được thêm vào URL với yêu cầu HEAD. Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. -h / - help Trợ giúp về cách sử dụng. -H / - tiêu đề curl sẽ đảm bảo rằng mỗi tiêu đề bạn thêm / thay thế được gửi bằng điểm đánh dấu cuối dòng thích hợp, do đó bạn nên không phải thêm nó như một phần của nội dung tiêu đề: không thêm dòng mới hoặc dấu xuống dòng, chúng sẽ chỉ làm rối tung mọi thứ cho bạn. Xem thêm -A / - tác nhân người dùng và -e / - giới thiệu tùy chọn. Tùy chọn này có thể được sử dụng nhiều lần để thêm / thay thế / loại bỏ nhiều tiêu đề. --ignore-content-length (HTTP) Bỏ qua tiêu đề Content-Length. Điều này đặc biệt hữu ích cho các máy chủ chạy Apache 1.x, sẽ báo cáo Độ dài Nội dung không chính xác cho các tệp lớn hơn 2 gigabyte. -i / - bao gồm (HTTP) Bao gồm tiêu đề HTTP trong đầu ra. Tiêu đề HTTP bao gồm những thứ như tên máy chủ, ngày của tài liệu, phiên bản HTTP và hơn thế nữa ... Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa tiêu đề bao gồm. --giao diện Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -I / - head (HTTP / FTP / FILE) Chỉ tìm nạp tiêu đề HTTP! Máy chủ HTTP có tính năng HEAD lệnh mà lệnh này sử dụng để không lấy gì ngoài tiêu đề của tài liệu. Khi được sử dụng trên tệp FTP hoặc FILE, curl chỉ hiển thị kích thước tệp và thời gian sửa đổi lần cuối. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ chỉ vô hiệu hóa tiêu đề một lần nữa. -j / - junk-session-cookies (HTTP) Khi curl được yêu cầu đọc cookie từ một tệp nhất định, tùy chọn này sẽ khiến nó loại bỏ tất cả "cookie phiên". Điều này về cơ bản sẽ có tác dụng tương tự như khi một phiên mới được bắt đầu. Các trình duyệt điển hình luôn loại bỏ cookie phiên khi chúng "đóng cửa". Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật / tắt tùy chọn này. -k / - không an toàn (SSL) Tùy chọn này rõ ràng cho phép curl thực hiện các kết nối và chuyển giao SSL "không an toàn". Tất cả các kết nối SSL được cố gắng đảm bảo an toàn bằng cách sử dụng gói chứng chỉ CA được cài đặt theo mặc định. Điều này làm cho tất cả các kết nối được coi là "không an toàn" sẽ không thành công trừ khi -k / - không an toànĐược sử dụng. Nếu tùy chọn này được sử dụng hai lần, thì lần thứ hai sẽ vô hiệu hóa nó một lần nữa. --Chìa khóa Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --loại chính Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --krb4 Tùy chọn này yêu cầu thư viện được xây dựng với hỗ trợ kerberos4. Điều này không phải là rất phổ biến. Sử dụng -V / - phiên bảnđể xem liệu lọn tóc của bạn có hỗ trợ nó không. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -K / - cấu hình Chỉ định tên tệp là "-" để curl đọc tệp từ stdin. Lưu ý rằng để có thể chỉ định một URL trong tệp cấu hình, bạn cần chỉ định nó bằng cách sử dụng --url và không chỉ đơn giản là viết URL trên dòng riêng của nó. Vì vậy, nó có thể trông giống như sau: Tùy chọn này có thể được sử dụng nhiều lần. Khi curl được gọi, nó luôn luôn (trừ khi -qđược sử dụng) kiểm tra tệp cấu hình mặc định và sử dụng tệp đó nếu tìm thấy. Tệp cấu hình mặc định được kiểm tra ở những vị trí sau theo thứ tự này: 1) curl cố gắng tìm "home dir": Đầu tiên nó kiểm tra CURL_HOME và sau đó là các biến môi trường HOME. Không thực hiện được, nó sử dụng getpwuid () trên các hệ thống giống unix (trả về dir chính cho người dùng hiện tại trong hệ thống của bạn). Trên Windows, nó sẽ kiểm tra biến APPDATA hoặc cuối cùng là "% USERPROFILE% Application Data". 2) Trên windows, nếu không có tệp _curlrc nào trong tệp home, thì nó sẽ kiểm tra tệp trong cùng tệp mà tệp curl thực thi được đặt. Trên các hệ thống giống unix, nó sẽ chỉ cố gắng tải .curlrc từ dir nhà được xác định. --limit-rate Tốc độ đã cho được đo bằng byte / giây, trừ khi một hậu tố được thêm vào. Thêm "k" hoặc "K" sẽ tính số dưới dạng kilobyte, "m" hoặc M "tạo thành megabyte trong khi" g "hoặc" G "tạo thành gigabyte. Ví dụ: 200K, 3m và 1G. Nếu bạn cũng đang sử dụng -Y / - giới hạn tốc độ tùy chọn, tùy chọn đó sẽ được ưu tiên hơn và có thể làm tê liệt giới hạn tốc độ một chút, để giúp giữ cho logic giới hạn tốc độ hoạt động. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -l / - chỉ danh sách (FTP) Khi liệt kê một thư mục FTP, công tắc này buộc chế độ xem chỉ tên. Đặc biệt hữu ích nếu bạn muốn phân tích cú pháp máy nội dung của một thư mục FTP vì chế độ xem thư mục bình thường không sử dụng giao diện hoặc định dạng tiêu chuẩn. Tùy chọn này sẽ gửi một lệnh FTP NLST. Một số máy chủ FTP chỉ liệt kê các tệp trong phản hồi của chúng với NLST; chúng không bao gồm các thư mục con và các liên kết tượng trưng. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ chỉ tắt danh sách. --local-port Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa vị trí theo sau. - vị trí đáng tin cậy (HTTP / HTTPS) Thích -L / - vị trí, nhưng sẽ cho phép gửi tên + mật khẩu đến tất cả các máy chủ mà trang web có thể chuyển hướng đến. Điều này có thể dẫn đến hoặc không thể dẫn đến vi phạm bảo mật nếu trang web chuyển hướng bạn thực hiện một trang web mà bạn sẽ gửi thông tin xác thực của mình (là bản rõ trong trường hợp xác thực HTTP cơ bản). Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa vị trí theo sau. --Kích thước tệp tối đa LƯU Ý: Kích thước tệp không phải lúc nào cũng được biết trước khi tải xuống và đối với những tệp như vậy, tùy chọn này không có hiệu lực ngay cả khi kết thúc chuyển tệp lớn hơn giới hạn đã cho này. Điều này liên quan đến cả truyền FTP và HTTP. -m / - thời gian tối đa Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -M / - hướng dẫn sử dụng Sách hướng dẫn. Hiển thị văn bản trợ giúp lớn. -n / - netrc Làm cho curl quét .netrc tệp trong thư mục chính của người dùng cho tên đăng nhập và mật khẩu. Điều này thường được sử dụng cho ftp trên unix. Nếu được sử dụng với http, curl sẽ cho phép xác thực người dùng. Xem (4)
hoặc là (1)
để biết chi tiết về định dạng tệp. Curl sẽ không phàn nàn nếu tệp đó không có quyền phù hợp (nó không được phép đọc theo nhóm hoặc thế giới). Biến môi trường "HOME" được sử dụng để tìm thư mục chính. Một ví dụ nhanh chóng và rất đơn giản về cách thiết lập .netrcđể cho phép curl thành ftp vào máy host.domain.com với tên người dùng "tôi" và mật khẩu "bí mật" phải giống như sau: machine host.domain.com đăng nhập bí mật mật khẩu của tôi Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa việc sử dụng netrc. --netrc-option Rất giống với --netrc, nhưng tùy chọn này làm cho việc sử dụng .netrc không bắt buộc và không bắt buộc như --netrc làm. --ne Đàm phán (HTTP) Cho phép xác thực GSS-Đàm phán. Phương pháp GSS-Negotiate được thiết kế bởi Microsoft và được sử dụng trong các ứng dụng web của họ. Nó chủ yếu có nghĩa là hỗ trợ xác thực Kerberos5 nhưng cũng có thể được sử dụng cùng với các phương pháp xác thực khác. Để biết thêm thông tin, hãy xem bản nháp IETF nháp-brezak-spnego-http-04.txt. Tùy chọn này yêu cầu thư viện được xây dựng với sự hỗ trợ của GSSAPI. Điều này không phải là rất phổ biến. Sử dụng -V / - phiên bảnđể xem phiên bản của bạn có hỗ trợ GSS-Negotiate hay không. Khi sử dụng tùy chọn này, bạn cũng phải cung cấp tùy chọn giả mạo -u / - người dùng để kích hoạt mã xác thực đúng cách. Gửi "-u:" là đủ vì tên người dùng và mật khẩu từ tùy chọn -u không được sử dụng thực sự. Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. -N / - no-buffer Vô hiệu hóa bộ đệm của luồng đầu ra. Trong các tình huống công việc bình thường, curl sẽ sử dụng luồng đầu ra có bộ đệm tiêu chuẩn sẽ có tác dụng là nó sẽ xuất dữ liệu theo từng phần, không nhất thiết phải chính xác khi dữ liệu đến. Sử dụng tùy chọn này sẽ vô hiệu hóa bộ đệm đó. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại bật vào bộ đệm. --ntlm (HTTP) Cho phép xác thực NTLM. Phương pháp xác thực NTLM được thiết kế bởi Microsoft và được sử dụng bởi các máy chủ web IIS. Nó là một giao thức độc quyền, được thiết kế bởi những người thông minh và được thực hiện một cách hoàn chỉnh dựa trên những nỗ lực của họ. Loại hành vi này không nên được chứng thực, thay vào đó bạn nên khuyến khích mọi người sử dụng NTLM chuyển sang phương thức xác thực công khai và tài liệu. Chẳng hạn như Digest. Nếu bạn muốn bật NTLM để xác thực proxy của mình, thì hãy sử dụng --proxy-ntlm. Tùy chọn này yêu cầu thư viện được xây dựng với hỗ trợ SSL. Sử dụng -V / - phiên bảnđể xem liệu lọn tóc của bạn có hỗ trợ NTLM hay không. Nếu tùy chọn này được sử dụng nhiều lần, các lần xuất hiện sau không có gì khác biệt. -o / - đầu ra Bạn có thể sử dụng tùy chọn này nhiều lần nếu bạn có số lượng URL. Xem thêm --create-dirs tùy chọn để tạo động các thư mục cục bộ. -O / - tên-từ xa Ghi đầu ra vào tệp cục bộ có tên giống như tệp từ xa mà chúng ta nhận được. (Chỉ phần tệp của tệp từ xa được sử dụng, đường dẫn bị cắt.) Tên tệp từ xa để sử dụng để lưu được trích xuất từ URL đã cho, không có gì khác. Bạn có thể sử dụng tùy chọn này nhiều lần nếu bạn có số lượng URL. --vượt qua Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --proxy-anyauth Cho curl biết để chọn một phương pháp xác thực phù hợp khi giao tiếp với proxy đã cho. Điều này sẽ gây ra thêm một yêu cầu / phản hồi khứ hồi. (Đã thêm vào 7.13.2) Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa việc sử dụng proxy - bất kỳ xác thực nào. --proxy-basic Cho curl sử dụng xác thực HTTP cơ bản khi giao tiếp với proxy đã cho. Sử dụng --nền tảngđể bật HTTP Basic với máy chủ từ xa. Cơ bản là phương pháp xác thực mặc định mà curl sử dụng với proxy. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa xác thực HTTP cơ bản của proxy. --proxy-thông báo cho curl sử dụng xác thực Thông báo HTTP khi giao tiếp với proxy đã cho. Sử dụng --tiêuđể bật Thông báo HTTP với máy chủ từ xa. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa Thông báo HTTP proxy. --proxy-ntlm Cho curl sử dụng xác thực NTLM HTTP khi giao tiếp với proxy đã cho. Sử dụng --ntlmđể bật NTLM với máy chủ từ xa. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa proxy HTTP NTLM. -p / - proxytunnel Khi một proxy HTTP được sử dụng ( -x / - proxy), tùy chọn này sẽ khiến các giao thức không phải HTTP cố gắng chạy đường hầm qua proxy thay vì chỉ sử dụng nó để thực hiện các hoạt động giống như HTTP. Phương pháp tiếp cận đường hầm được thực hiện với yêu cầu KẾT NỐI proxy HTTP và yêu cầu proxy cho phép kết nối trực tiếp với số cổng từ xa mà curl muốn chuyển đường hầm đến. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa đường hầm proxy. -P / - ftp-cổng Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. Vô hiệu hóa việc sử dụng PORT với --ftp-pasv... Tắt nỗ lực sử dụng lệnh EPRT thay vì PORT bằng cách sử dụng --disable-eprt... EPRT thực sự là PORT ++. -q Nếu được sử dụng làm tham số đầu tiên trên dòng lệnh, curlrc tập tin cấu hình sẽ không được đọc và sử dụng. Xem -K / - cấu hìnhđể biết chi tiết về đường dẫn tìm kiếm tệp cấu hình mặc định. -Q / - trích dẫn Tùy chọn này có thể được sử dụng nhiều lần. --random-file (*) = LƯU Ý rằng điều này sẽ khiến máy chủ trả lời bằng phản hồi nhiều phần! Bạn cũng nên biết rằng nhiều máy chủ HTTP / 1.1 không bật tính năng này, vì vậy khi bạn cố gắng lấy một dải ô, thay vào đó bạn sẽ nhận được toàn bộ tài liệu. Tải xuống phạm vi FTP chỉ hỗ trợ cú pháp đơn giản "start-stop" (tùy chọn với một trong các số bị bỏ qua). Nó phụ thuộc vào SIZE lệnh không phải RFC. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. -R / - thời gian từ xa Khi được sử dụng, điều này sẽ làm cho libcurl cố gắng tìm ra dấu thời gian của tệp từ xa và nếu có sẵn, hãy làm cho tệp cục bộ nhận cùng dấu thời gian đó. Nếu tùy chọn này được sử dụng hai lần, lần thứ hai sẽ tắt tùy chọn này một lần nữa. --thử lại Khi curl chuẩn bị thử lại một lần chuyển, trước tiên nó sẽ đợi một giây và sau đó đối với tất cả các lần thử lại sắp tới, thời gian chờ sẽ tăng gấp đôi cho đến khi đạt đến 10 phút, sau đó sẽ là độ trễ giữa các lần thử lại còn lại. Bằng cách sử dụng --retry-delay bạn vô hiệu hóa thuật toán dự phòng theo cấp số nhân này. Xem thêm --retry-max-timeđể giới hạn tổng thời gian được phép thử lại. (Đã thêm vào 7.12.3) Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. --retry-delay Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. --retry-max-time Nếu tùy chọn này được sử dụng nhiều lần, lần xuất hiện cuối cùng sẽ quyết định số tiền. -s / - chế độ im lặng Im lặng. Không hiển thị đồng hồ đo tiến trình hoặc thông báo lỗi. Làm cho Curl tắt tiếng. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa chế độ im lặng. -S / - hiển thị lỗi Khi được sử dụng với -s nó làm cho curl hiển thị thông báo lỗi nếu nó không thành công. Nếu tùy chọn này được sử dụng hai lần, tùy chọn thứ hai sẽ lại vô hiệu hóa lỗi hiển thị. - tất 4 -x / - proxy Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. - tất5 Tùy chọn này ghi đè bất kỳ việc sử dụng nào trước đây của -x / - proxy, vì chúng loại trừ lẫn nhau. Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. (Tùy chọn này trước đây đã bị ghi sai tài liệu và được sử dụng như - tất mà không có số được thêm vào.) --Stderr Nếu tùy chọn này được sử dụng nhiều lần, tùy chọn cuối cùng sẽ được sử dụng. --tcp-gật gù Bật tùy chọn TCP_NODELAY. Xem (3)
trang người đàn ông để biết chi tiết về tùy chọn này. (Đã thêm vào 7.11.2) Nếu tùy chọn này được sử dụng nhiều lần, mỗi lần xuất hiện sẽ bật / tắt tùy chọn này. -t / - tùy chọn telnet TTYPE = XDISPLOC = NEW_ENV = Đặt một biến môi trường. -T / - tải lên-tệp Sử dụng tên tệp "-" (một dấu gạch ngang) để sử dụng stdin thay vì một tệp nhất định. Bạn có thể chỉ định một -T cho mỗi URL trên dòng lệnh. Mỗi cặp URL -T + chỉ định nội dung sẽ tải lên và ở đâu. curl cũng hỗ trợ "globbing" của đối số -T, nghĩa là bạn có thể tải nhiều tệp lên một URL duy nhất bằng cách sử dụng cùng một kiểu URL globbing được hỗ trợ trong URL, như sau: Chúng ta thường phải tải xuống các tệp khác nhau từ Internet, ví dụ: tệp chương trình thực thi, tệp kịch bản, tệp lưu trữ nguồn. Nhưng điều này không phải lúc nào cũng cần được thực hiện thông qua trình duyệt. Trong nhiều tình huống, việc thực hiện tất cả các hành động thông qua thiết bị đầu cuối sẽ dễ dàng hơn nhiều. Bởi vì bằng cách này, bạn có thể tự động hóa quy trình. Mặt khác, quản trị viên web phải kiểm tra khả năng truy cập trang web theo thời gian, kiểm tra tiêu đề được gửi và nhận, v.v. Để giải quyết các vấn đề và nhiệm vụ của một vòng tròn tương tự như vậy, bạn có thể sử dụng tiện ích curl. Nó cho phép bạn giải quyết một loạt các nhiệm vụ, bao gồm cả việc bắt chước các hành động của người dùng trên trang web. Trong bài này, chúng ta sẽ xem xét cách sử dụng curl, nó là gì và tại sao chương trình này lại cần thiết. Trên thực tế, curl không chỉ là một tiện ích dòng lệnh cho Linux hoặc Windows. Nó là một tập hợp các thư viện triển khai khả năng phân trang URL và truyền tệp cơ bản. Thư viện hỗ trợ các giao thức sau: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, cũng như POP3, IMAP và SMTP. Nó rất tốt để mô phỏng các hành động của người dùng trên các trang và các hoạt động URL khác. Hỗ trợ cho thư viện curl đã được thêm vào nhiều ngôn ngữ lập trình và nền tảng khác nhau. Tiện ích curl là một trình bao bọc độc lập xung quanh thư viện này. Đó là tiện ích mà chúng tôi sẽ tập trung vào trong bài viết này. Trước khi chuyển sang mô tả về cách sử dụng lệnh curl linux, chúng ta hãy xem xét bản thân tiện ích và các tùy chọn chính của nó mà chúng ta cần. Cú pháp tiện ích rất đơn giản: liên kết $ curl options Bây giờ chúng ta hãy xem xét các tùy chọn chính: Đây không phải là tất cả các tùy chọn curl linux, nhưng đây là tất cả các tùy chọn cơ bản mà bạn sẽ phải sử dụng. Chúng ta đã đề cập đến mọi thứ liên quan đến lý thuyết làm việc với tiện ích curl, bây giờ đã đến lúc chuyển sang thực hành và xem xét các ví dụ về lệnh curl. Nhiệm vụ phổ biến nhất là này. Nó rất dễ dàng để tải xuống tệp. Để làm điều này, chỉ cần chuyển tên tệp hoặc trang html cho tiện ích trong các tham số: curl https://raw.githubusercontent.com/curl/curl/master/README.md Nhưng ở đây có một điều bất ngờ đang chờ bạn, toàn bộ nội dung của tệp sẽ được chuyển sang đầu ra tiêu chuẩn. Để ghi nó vào một số tệp, hãy sử dụng: curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md Và nếu bạn muốn tệp kết quả được đặt tên giống với tệp trên máy chủ, hãy sử dụng tùy chọn -O: curl -O https://raw.githubusercontent.com/curl/curl/master/README.md curl - # -C - -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz Nếu cần, bạn có thể tải xuống một số tệp bằng một lệnh: curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README Một điều khác có thể hữu ích cho quản trị viên là chỉ tải xuống tệp nếu nó đã được thay đổi: curl -z 21-12-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README Bạn có thể giới hạn tốc độ tải xuống đến giới hạn cần thiết để không làm mạng quá tải với tùy chọn -Y: curl --limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz Ở đây bạn cần chỉ định số kilobyte mỗi giây có thể tải xuống. Bạn cũng có thể ngắt kết nối nếu tốc độ không đủ, để sử dụng tùy chọn -Y: curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md curl -T login.txt ftp://speedtest.tele2.net/upload/ Hoặc hãy kiểm tra việc gửi tệp qua HTTP, vì điều này có một dịch vụ đặc biệt: curl -T ~ / login.txt http://posttestserver.com/post.php Đáp lại, tiện ích sẽ cho bạn biết bạn có thể tìm thấy tệp đã tải xuống ở đâu. Bạn không chỉ có thể gửi tệp mà còn có thể gửi bất kỳ dữ liệu nào bằng phương thức POST. Hãy để tôi nhắc bạn rằng phương pháp này được sử dụng để gửi dữ liệu từ nhiều hình thức khác nhau. Sử dụng tùy chọn -d để gửi một yêu cầu như vậy. Để thử nghiệm, chúng tôi sẽ sử dụng cùng một dịch vụ: curl -d "field1 = val & fileld2 = val1" http://posttestserver.com/post.php Nếu bạn không hài lòng với tùy chọn gửi này, bạn có thể giả vờ rằng bạn đã gửi biểu mẫu. Có một tùy chọn -F cho điều này: cuộn tròn -F " [email được bảo vệ]; type = text / trơn "http://posttestserver.com/post.php Ở đây chúng tôi chuyển một trường mật khẩu trong biểu mẫu, với kiểu văn bản thuần túy, theo cách giống như cách bạn có thể chuyển một số tham số. Cookie hay Cookie được các trang web sử dụng để lưu trữ một số thông tin nhất định về phía người dùng. Ví dụ, điều này có thể cần thiết để xác thực. Bạn có thể nhận và truyền cookie bằng cách sử dụng curl. Để lưu Cookie đã nhận vào một tệp, hãy sử dụng tùy chọn -c: curl -c cookie.txt http://posttestserver.com/post.php Sau đó, bạn có thể gửi lại cookie curl: curl -b cookie.txt http://posttestserver.com/post.php Không phải lúc nào chúng ta cũng cần nội dung của trang. Đôi khi chỉ những tiêu đề có thể được quan tâm. Để chỉ hiển thị chúng, có tùy chọn -I: curl -Tôi https: // trang web Và tùy chọn -H cho phép hoặc một số tùy chọn tới máy chủ, chẳng hạn, bạn có thể gửi tiêu đề If-Modified-Since để trang chỉ được trả lại nếu nó đã được thay đổi: Nếu máy chủ yêu cầu xác thực một trong những kiểu phổ biến, chẳng hạn như HTTP Basic hoặc FTP, thì curl có thể rất dễ dàng đối phó với tác vụ này. Để chỉ định dữ liệu xác thực, chỉ cần chỉ định chúng được phân tách bằng dấu hai chấm trong tùy chọn -u: curl -u ftpuser: ftppass -T - ftp://ftp.testserver.com/myfile_1.txt Xác thực trên máy chủ HTTP sẽ hoạt động theo cách tương tự. Nếu bạn cần sử dụng máy chủ proxy để tải xuống tệp, thì điều này cũng rất dễ dàng. Chỉ cần đặt địa chỉ máy chủ proxy trong tùy chọn -x là đủ: curl -x proxysever.test.com:3128 http://google.co.in Trong bài viết này, chúng ta đã xem xét cách sử dụng curl, tại sao bạn cần tiện ích này và các tính năng chính của nó. Mặc dù chúng giống nhau, chúng rất khác nhau. Lệnh curl linux dành nhiều hơn cho việc phân tích và mô phỏng các hành động khác nhau trên máy chủ, trong khi wget phù hợp hơn để tải xuống tệp và thu thập dữ liệu các trang web. 16/02/2006 Jeff Felling Curl giúp bạn quản lý dữ liệu được lưu trữ trên Web Bài viết này thảo luận về công cụ Curl miễn phí mà bạn có thể sử dụng để gửi và nhận các trang Web từ dòng lệnh. Curl giúp dễ dàng tự động hóa nhiều Bài viết này thảo luận về công cụ Curl miễn phí mà bạn có thể sử dụng để gửi và nhận các trang Web từ dòng lệnh. Curl giúp dễ dàng tự động hóa nhiều hoạt động quản trị và bảo mật, chẳng hạn như truy xuất một trang Web để phân tích hoặc tải xuống bản vá bảo mật từ Web. Curl được bao gồm trong nhiều bản phân phối Unix. Binaries và nguồn có sẵn cho hầu hết các hệ điều hành khác. Ngay cả các lập trình viên PHP mã nguồn mở cũng có thể sử dụng Curl để truy cập an toàn nội dung Web trực tiếp từ các tập lệnh PHP. Curl yêu cầu gói OpenSSL để sử dụng các trang web Lớp cổng bảo mật (SSL). Có hai phiên bản Curl, một phiên bản có SSL và phiên bản khác không có SSL. Tôi đề xuất cái đầu tiên vì SSL bảo vệ dữ liệu một cách đáng tin cậy. Trước khi sử dụng Curl với chức năng SSL, bạn cần tải xuống và cài đặt riêng gói OpenSSL từ web. Có thể tải xuống tệp nhị phân OpenSSL dành cho Windows từ trang web dự án GnuWin32 SourceForge tại. Có rất nhiều công cụ hữu ích khác được chuyển sang Windows trên trang web này. Tải xuống và cài đặt gói OpenSSL, sau đó sao chép hai tệp DLL vào thư mục system32: Sao chép "C: Program FilesGnuWin32 binlibeay32.dll"% windir% system32 copy "C: Program FilesGnuWin32 binlibssl32.dll"% windir% system32 Sau đó, bạn có thể cài đặt Curl. Bạn có thể tìm thấy mã nhị phân Curl tương thích SSL dành cho Windows tại http://curl.haxx.se/latest.cgi?curl=win32-ssl-sspi... Phiên bản mới nhất, curl 7.15.0, có trong win32-ssl-sspi.zip, chứa curl.exe và tài liệu. Sau khi cài đặt Curl, bạn nên đảm bảo rằng nó hoạt động bằng cách nhập lệnh Curl http://isc.sans.org/ infocon.txt Nếu một từ chỉ màu xuất hiện trên màn hình (ví dụ: màu xanh lá cây), thì Curl đang hoạt động. Trong ví dụ đơn giản này, Curl lấy nội dung Infocon từ Trung tâm Bão tố Internet của Viện SANS. Màu xanh lá cây có nghĩa là Internet đang hoạt động bình thường và không có mối đe dọa lớn nào được phát hiện. Nếu, thay vì màu xanh lá cây, các từ màu vàng, cam hoặc đỏ xuất hiện trên màn hình, thì hãy hoãn bài viết này và truy cập trang web http://isc.sans.orgđể tìm hiểu về các tình trạng có nguy cơ cao trên Internet. Trong trường hợp xảy ra lỗi, cần kiểm tra lại tính đúng đắn của thiết lập Curl. Về bản chất, Curl tìm nạp một trang Web và sau đó xuất nguồn HTML của trang đó ra bảng điều khiển. Tuy nhiên, khả năng của tiện ích rộng hơn. Curl được tích hợp chức năng kiểm tra lỗi. Ví dụ, lệnh Cuộn tròn http: // noserverhere ném lỗi Curl: (6) Không thể giải quyết máy chủ: noserverhere; Không tìm thấy máy chủ. Mã lỗi có thể được sử dụng trong các tập lệnh để kiểm tra tính khả dụng của một trang Web hoặc khả năng đáp ứng của máy chủ Web. Ví dụ: nếu bạn sử dụng Curl để truy xuất một trang Web hàng ngày, chẳng hạn như thống kê trang Web hàng ngày, bạn có thể bổ sung tập lệnh bằng mã nguồn tìm kiếm mã lỗi. Nếu Curl đưa ra mã lỗi Curl: (7) không thể kết nối với máy chủ, thì bạn có thể ngay lập tức gửi cảnh báo hoặc gửi email. Một trong những điểm mạnh nhất của Curl là khả năng tương thích SSL. Các trang HTTPS được yêu cầu được truyền qua mạng ở dạng mã hóa và sau đó Curl hiển thị văn bản đã khôi phục. Ngoài ra, Curl kiểm tra các chứng chỉ - ngày hết hạn của chứng chỉ, tên máy chủ khớp với tên máy chủ trong chứng chỉ và mức độ tin cậy của chứng chỉ gốc - và cảnh báo nếu chứng chỉ không hợp lệ. Tham số -cacert cho phép bạn chỉ định một tệp chứng chỉ cụ thể. Kiểm tra chứng chỉ bị hủy bằng cách sử dụng tùy chọn -k. Một cách tiếp cận khác là sử dụng tham số -insecure. Khả năng của Curl vượt xa khả năng truyền tệp đơn giản qua Internet. Curl có thể được sử dụng để liệt kê nhanh các thư mục của một trang FTP: Curl ftp: // myftpsite Để xem các thư mục con của trang web, hãy nhập lệnh Curl ftp: // myftpsite / subir / Để tải xuống tệp từ mạng, bạn chỉ cần chỉ định tên tệp trong URL. Ví dụ sau tải một tệp có tên readme.txt trực tiếp từ dòng lệnh và hiển thị tệp đó trên màn hình: Curl ftp://ftp.microsoft.com/ deskapps / games / readme.txt Việc chuẩn bị một tập lệnh Curl để nhập các tệp FTP thường dễ dàng hơn là sử dụng lệnh FTP một cách tương tác. Theo mặc định, dữ liệu được xuất trực tiếp đến bảng điều khiển, nhưng nó có thể được chuyển hướng đến một tệp bằng cách sử dụng các tùy chọn -o và -O. Để lấy trang và lưu vào đĩa, hãy sử dụng tham số -o. Tùy chọn -O lưu trang kết quả vào một tệp cục bộ và Curl truy xuất tên của tài liệu từ xa. Nếu tên tệp không được chỉ định trong URL, thì thao tác này sẽ không thành công. Nếu bạn sử dụng Curl để gửi yêu cầu đến một trang Web không có tên tệp, nhưng muốn lưu kết quả vào một tệp, bạn có thể chỉ định tên tệp trên dòng lệnh, ví dụ: Curl cung cấp các phương pháp xác thực Cơ bản, Thông báo và Tích hợp. Trên hầu hết các trang web, các trang có xác thực dựa trên biểu mẫu có thể được truy cập bằng cách sử dụng các chức năng gửi của Curl, như được hiển thị bên dưới. Điều này có nghĩa là bạn có thể gửi dữ liệu biểu mẫu, chẳng hạn như tên người dùng và mật khẩu, đến một trang Web từ xa nhắc bạn về thông tin trên một trang Web. Bạn có thể sử dụng tham số -u để chuyển tiếp thông tin đăng nhập hoặc dán chúng vào URL, cách này thường được thực hiện trong FTP, ví dụ: Curl ftp: // tên người dùng: [email được bảo vệ]
Curl có thể được sử dụng để chuyển các kỹ thuật FTP mượn sang HTTP, như trong ví dụ sau: Curl http: // tên người dùng: password @ myhtmlsite / default.htm Curl cũng cung cấp quyền truy cập proxy vào các trang Web. Do đó, Curl có thể được định cấu hình để sử dụng máy chủ proxy cho xác thực Cơ bản, Thông báo và NTLM. Rất khó để trình bày tất cả các chức năng của Curl trong một bài viết, bao gồm tải tệp lên máy chủ (-T) và chỉ xem thông tin trong tiêu đề HTTP (-I) và xem tất cả dữ liệu ở chế độ tiết (-V) và đầu ra ẩn (-s). Tôi khuyên bạn nên xem xét kỹ hơn các chức năng Curl trong hướng dẫn được đăng tại http://curl.haxx.se/docs . Bây giờ bạn đã quen với những điều cơ bản về Curl, hãy xem một ví dụ đơn giản về việc trích xuất dữ liệu từ một trang Web với đầu vào cho trước. Hãy xây dựng một công cụ Whois đơn giản thể hiện sự đơn giản và dễ sử dụng của Curl cũng như cách gửi dữ liệu đến một trang Web bằng cách sử dụng tùy chọn -d. Trong ví dụ này, Curl gửi một địa chỉ IP đến trang web Arin Whois và sau đó lấy kết quả từ trang web đó. Whois tìm kiếm thông tin về chủ sở hữu của một địa chỉ IP. Điều quan trọng là phải khám phá trang web trước khi bạn bắt đầu, vì mã nguồn của mỗi trang web có đặc điểm riêng và Curl không phải lúc nào cũng hoạt động theo cùng một cách với tất cả các trang web. Một chuyến thăm sơ bộ đến trang web cho phép bạn thu thập các thông tin cần thiết để Curl làm việc. Trong ví dụ này, tôi đã sử dụng trình duyệt để truy cập trang web http://www.arin.net/whois/ và thu hút sự chú ý đến thực tế là trang web có một trường nhập dữ liệu duy nhất trong đó khách truy cập chỉ ra địa chỉ IP mà họ quan tâm. Bạn muốn lấy thông tin chi tiết của trường này, là một phần của biểu mẫu Web. Ví dụ này sử dụng tập lệnh formfind.pl Perl ( http://cool.haxx.se/cvs.cgi/curl/perl/contrib/ formfind? rev = HEAD & content-type = text / vnd.viewcvs-markup). Tập lệnh Formfind.pl chuyển đổi dữ liệu biểu mẫu thành đầu ra có thể sử dụng và giúp bạn dễ dàng tìm kiếm dữ liệu trong HTML theo cách thủ công. Tất nhiên, Perl phải được triển khai trên máy tính để chạy Formfind. Một gói Win32 Perl tốt có thể được đặt hàng từ trang web ActiveState ActivePerl tại http://www.activestate.com . Hãy xem xét một ví dụ chi tiết hơn. Đầu tiên, chúng ta chuyển đến một trang Web có chứa một biểu mẫu yêu cầu thông tin: Curl -o whoisOutputFile http://www.arin.net/whois/ Lệnh này trích xuất trang Whois từ http://www.arin.net và lưu nó vào tệp văn bản whoisOutputFile, chứa nguồn HTML mà trình duyệt phát khi trang web được truy cập. Sau đó, bạn cần tìm và chọn dữ liệu biểu mẫu: ./formfind.pl Kết quả đầu ra của Formfind các biến dạng và các giá trị có thể có của chúng. Trong ví dụ này, đầu ra khá đơn giản (xem. màn hình 1). Hãy chú ý đến dữ liệu của Biểu mẫu đầu vào có tên là queryinput. Đây là trường văn bản mà Curl sẽ gửi địa chỉ IP đã tìm kiếm. Địa chỉ IP cụ thể không quan trọng - trong ví dụ này, Microsoft được sử dụng. Sử dụng tham số -d, địa chỉ IP đã tìm kiếm được chuyển tiếp đến trường queryinput: Curl -d "queryinput = 207.46.133.140" http://ws.arin.net/cgibin/ whois.pl Lệnh Curl, với tùy chọn -d, truy xuất dữ liệu trong biểu mẫu, trong trường hợp này là queryinput, là địa chỉ IP cần tìm kiếm. Điều này thay đổi địa chỉ mục tiêu; biểu mẫu phải gửi dữ liệu đến một url mới, được trình bày bởi tập lệnh whois.pl. Bạn có thể thấy địa chỉ đích mới trong đầu ra của formfind trong Hình 1. Ví dụ này cũng truy xuất nguồn HTML của phản hồi Whois, nhưng nó bị ẩn bởi một nhóm thẻ HTML. Theo mặc định, thông báo trạng thái Curl hiển thị kích thước tài liệu, tỷ lệ phần trăm hoàn thành và tốc độ truyền. Đầu ra có thể được làm sạch một chút và lọc theo tên của tổ chức sở hữu địa chỉ IP. Trạng thái cuộn tóc có thể bị vô hiệu hóa bằng cách sử dụng tùy chọn -s. Lệnh sẽ được chạy qua grep để chỉ lấy OrgName: Curl -s -d "queryinput = 207.46.133.140" http://ws.arin.net/cgibin/ whois.pl | grep OrgName Trong ví dụ này, kết quả hiển thị OrgName là Microsoft Corp. @echo off curl -k -s -d "queryinput =% 1" http://ws.arin.net/cgibin/ whois.pl | grep OrgName4. Tải ở tốc độ tối đa
5. Sử dụng proxy để kết nối
6. Kiểm tra URL với phần giới thiệu của tiêu đề
7. Thêm một tiêu đề bổ sung
8. Chỉ mở tiêu đề phản hồi
9. Kết nối HTTPS / SSLURL và bỏ qua mọi lỗi chứng chỉ SSL
10. Kết nối bằng giao thức cụ thể (SSL / TLS)
11. Tải xuống tệp từ máy chủ FTP
Sử dụng cURL trực tuyến
CURL trực tuyến là một công cụ nhẹ để trích xuất url trực tuyến và thêm các tham số sau.
Trình tạo dòng lệnh cURL - Cho phép bạn tạo một lệnh cURL mà bạn có thể sử dụng để nhập thông tin vào giao diện người dùng.
Xoăn
cURL là một chương trình để truyền dữ liệu qua các giao thức khác nhau, tương tự như wget. Sự khác biệt chính là theo mặc định, wget lưu vào một tệp, trong khi cURL in ra dòng lệnh. Điều này giúp bạn dễ dàng xem nội dung của trang web. Ví dụ: đây là cách nhanh chóng lấy IP bên ngoài hiện tại của bạn:
Thông số -tôi(hiển thị tiêu đề) và -TÔI(chỉ hiển thị tiêu đề) làm cho cURL trở thành một công cụ tuyệt vời để gỡ lỗi phản hồi HTTP và phân tích chính xác những gì máy chủ đang gửi cho bạn:
Tham số -L cũng hữu ích, nó làm cho cURL tự động theo các chuyển hướng. cURL hỗ trợ xác thực HTTP, cookie, đường hầm proxy HTTP, cài đặt tiêu đề thủ công và hơn thế nữa.
- một công cụ để kiểm tra căng thẳng. Thêm vào đó, nó có một tùy chọn tiện dụng -g rất giống với curl –iL mà còn hiển thị cho bạn các tiêu đề yêu cầu http. Đây là một ví dụ từ google.com (một số tiêu đề đã bị xóa cho ngắn gọn):
Nhưng những gì Siege thực sự tuyệt vời là thử nghiệm tải. Giống như điểm chuẩn Apache ab, anh ta có thể gửi nhiều yêu cầu đồng thời đến trang web và xem cách anh ta xử lý lưu lượng truy cập. Ví dụ sau cho thấy cách chúng tôi kiểm tra Google với 20 truy vấn trong 30 giây, sau đó nó xuất ra kết quả:
Một trong những tính năng hữu ích nhất của Siege là nó có thể hoạt động không chỉ với một địa chỉ mà còn với danh sách các URL từ một tệp. Điều này rất tốt cho việc kiểm tra tải vì bạn có thể mô phỏng lưu lượng truy cập trong thế giới thực trên trang web của mình, thay vì chỉ lặp đi lặp lại cùng một URL. Ví dụ: đây là cách sử dụng Siege để tải máy chủ bằng địa chỉ từ nhật ký Apache của bạn:
Ngrep
Để phân tích lưu lượng truy cập nghiêm túc, có Wireshark với hàng nghìn cài đặt, bộ lọc và cấu hình. Ngoài ra còn có một phiên bản dòng lệnh tshark... Nhưng đối với các tác vụ đơn giản, tôi coi chức năng của Wireshark là thừa. Vì vậy, miễn là tôi không cần một vũ khí mạnh mẽ, tôi sử dụng. Nó cho phép bạn làm điều tương tự với các gói mạng như grep với các tệp.
Bạn có thể thêm một bộ lọc bổ sung cho các gói, ví dụ: theo máy chủ lưu trữ, địa chỉ IP hoặc cổng nhất định. Đây là bộ lọc cho tất cả lưu lượng truy cập vào và ra vào google.com, cổng 80, chứa từ “tìm kiếm”.TÊN
curl - chuyển một URL TÓM TẮC
Xoăn
SỰ MIÊU TẢ
Xoăn là một công cụ để truyền dữ liệu từ hoặc đến một máy chủ, sử dụng một trong các giao thức được hỗ trợ (HTTP, HTTPS, FTP, FTPS, TFTP, DICT, TELNET, LDAP hoặc FILE). Lệnh được thiết kế để hoạt động mà không cần sự tương tác của người dùng. Url
Cú pháp URL phụ thuộc vào giao thức. Bạn sẽ tìm thấy mô tả chi tiết trong RFC 3986. MÁY ĐO TIẾN ĐỘ
curl thường hiển thị đồng hồ đo tiến trình trong quá trình hoạt động, cho biết lượng dữ liệu đã truyền, tốc độ truyền và thời gian ước tính còn lại, v.v. TÙY CHỌN
-a / - append (FTP) Khi được sử dụng trong quá trình tải lên FTP, điều này sẽ yêu cầu curl thêm vào tệp đích thay vì ghi đè nó. Nếu tệp không tồn tại, nó sẽ được tạo. (SSL) Chỉ định mật mã nào sẽ sử dụng trong kết nối. Danh sách mật mã phải được sử dụng mật mã hợp lệ. Đọc chi tiết danh sách mật mã SSL trên URL này: http://www.openssl.org/docs/apps/ciphers.html
CÁC TẬP TIN
~ / .curlrc Tệp cấu hình mặc định, xem -K / - cấu hìnhđể biết chi tiết. MÔI TRƯỜNG
http Proxy XUẤT MÃ
Tồn tại một loạt các mã lỗi khác nhau và các thông báo lỗi tương ứng của chúng có thể xuất hiện trong điều kiện xấu. Tại thời điểm viết bài này, các mã thoát là: 1 Giao thức không được hỗ trợ. Việc xây dựng curl này không có hỗ trợ cho giao thức này. 2 Không khởi tạo được. 3 URL không đúng định dạng. Cú pháp không đúng. 4 URL người dùng không đúng định dạng. Phần người dùng của cú pháp URL không đúng. 5 Không thể giải quyết proxy. Không thể giải quyết máy chủ proxy đã cho. 6 Không thể giải quyết máy chủ. Máy chủ từ xa đã cho không được giải quyết. 7 Không kết nối được với máy chủ. 8 phản hồi máy chủ lạ FTP. Máy chủ đã gửi dữ liệu không thể phân tích cú pháp. 9 Từ chối truy cập FTP. Máy chủ đã từ chối đăng nhập hoặc từ chối quyền truy cập vào tài nguyên hoặc thư mục cụ thể mà bạn muốn truy cập. Thông thường, bạn cố gắng thay đổi thành thư mục không tồn tại trên máy chủ ... 10 Người dùng / mật khẩu FTP không chính xác. Máy chủ không chấp nhận một hoặc cả hai. 11 FTP trả lời PASS kỳ lạ. Curl không thể phân tích cú pháp câu trả lời được gửi tới yêu cầu PASS. 12 FTP trả lời lạ của USER. Curl không thể phân tích cú pháp câu trả lời được gửi tới yêu cầu của USER. 13 FTP trả lời PASV kỳ lạ, Curl không thể phân tích cú pháp trả lời được gửi đến yêu cầu PASV. 14 Định dạng FTP 227 kỳ lạ. Curl không thể phân tích cú pháp dòng 227 mà máy chủ đã gửi. 15 FTP không thể nhận được máy chủ. Không thể giải quyết IP máy chủ mà chúng tôi nhận được trong dòng 227. 16 FTP không thể kết nối lại. Không thể kết nối với máy chủ lưu trữ mà chúng tôi nhận được trong dòng 227. 17 FTP không thể đặt hệ nhị phân. Không thể thay đổi phương thức truyền sang hệ nhị phân. 18 Tập tin một phần. Chỉ một phần của tệp đã được chuyển. 19 FTP không thể tải xuống / truy cập tệp đã cho, lệnh RETR (hoặc tương tự) không thành công. 20 Lỗi ghi FTP. Quá trình truyền được máy chủ báo cáo là không hợp lệ. 21 Lỗi trích dẫn FTP. Lệnh trích dẫn trả về lỗi từ máy chủ. 22 Trang HTTP không được truy xuất. Không tìm thấy url được yêu cầu hoặc trả về một lỗi khác với mã lỗi HTTP là 400 trở lên. Mã trả lại này chỉ xuất hiện nếu -f / - thất bại Được sử dụng. 23 Lỗi ghi. Curl không thể ghi dữ liệu vào hệ thống tệp cục bộ hoặc hệ thống tệp tương tự. 24 Người dùng không đúng định dạng. Tên người dùng được chỉ định sai. 25 FTP không thể "t tệp STOR. Máy chủ đã từ chối hoạt động STOR, được sử dụng để tải lên FTP. 26 Lỗi đọc. Các vấn đề đọc khác nhau. 27 Hết bộ nhớ. Yêu cầu cấp phát bộ nhớ không thành công. 28 Thời gian chờ hoạt động. Đã đạt đến khoảng thời gian chờ được chỉ định theo các điều kiện. 29 FTP không thể đặt ASCII. Máy chủ trả về một câu trả lời không xác định. 30 FTP PORT không thành công. Lệnh PORT không thành công. Không phải tất cả các máy chủ FTP đều hỗ trợ lệnh PORT, hãy thử thực hiện chuyển bằng PASV thay thế! 31 FTP cann "t sử dụng REST. Lệnh REST không thành công. Lệnh này được sử dụng để truyền FTP được tiếp tục. 32 FTP không thể sử dụng SIZE. Lệnh SIZE không thành công. Lệnh này là phần mở rộng của lỗi phạm vi HTTP RFC 959.33 HTTP thông số FTP ban đầu. Phạm vi "lệnh" không hoạt động ". 34 Lỗi bài đăng HTTP. Lỗi tạo sau yêu cầu nội bộ. 35 Lỗi kết nối SSL. Bắt tay SSL không thành công. 36 Tiếp tục tải xuống FTP không hợp lệ. Không thể tiếp tục quá trình tải xuống bị hủy bỏ trước đó. 37 FILE không thể đọc tệp. Không mở được tệp. Quyền hạn? 38 LDAP không thể ràng buộc. Thao tác liên kết LDAP không thành công. 39 Tìm kiếm LDAP không thành công. 40 Không tìm thấy thư viện. Thư viện LDAP không được tìm thấy. 41 Không tìm thấy chức năng. Không tìm thấy chức năng LDAP bắt buộc. 42 Bị hủy bỏ bởi cuộc gọi lại. Một ứng dụng yêu cầu curl hủy bỏ hoạt động. 43 Lỗi nội bộ. Một hàm đã được gọi với một tham số không hợp lệ. 44 Lỗi nội bộ. Một hàm đã được gọi theo thứ tự xấu. 45 Lỗi giao diện. Không thể sử dụng giao diện gửi đi đã chỉ định. 46 Đã nhập mật khẩu không hợp lệ. Đã xảy ra lỗi khi nhập mật khẩu. 47 Quá nhiều chuyển hướng. Khi thực hiện theo các chuyển hướng, curl đạt mức tối đa. 48 Tùy chọn TELNET không xác định được chỉ định. 49 Tùy chọn telnet không đúng định dạng. 51 Chứng chỉ SSL ngang hàng từ xa không "ổn" 52 Máy chủ không trả lời bất kỳ điều gì, điều này được coi là lỗi. 53 Không tìm thấy công cụ mật mã SSL 54 Không thể đặt công cụ mật mã SSL làm mặc định 55 Không gửi được dữ liệu mạng 56 Không thành công trong nhận dữ liệu mạng 57 Đang sử dụng chia sẻ (lỗi nội bộ) 58 Sự cố với chứng chỉ cục bộ 59 Không thể sử dụng mật mã SSL được chỉ định 60 Sự cố với chứng chỉ CA (đường dẫn? quyền?) 61 Mã hóa truyền không được công nhận 62 URL LDAP không hợp lệ 63 Kích thước tệp tối đa vượt quá 64 Mức SSL FTP yêu cầu không thành công 65 Gửi dữ liệu yêu cầu tua lại không thành công 66 Không thể khởi chạy SSL Engine 67 Không chấp nhận người dùng, mật khẩu hoặc mật khẩu tương tự và không thể đăng nhập được 68 Không tìm thấy tệp trên máy chủ TFTP 69 Sự cố quyền trên máy chủ TFTP 70 Hết dung lượng ổ đĩa trên máy chủ TFTP 71 Hoạt động TFTP bất hợp pháp 72 ID truyền TFTP không xác định 73 Đã tồn tại tệp (TFTP) 74 Không có người dùng như vậy (TFTP) 75 Chuyển đổi ký tự không thành công 76 Yêu cầu các chức năng chuyển đổi ký tự không mong muốn XX Sẽ có nhiều mã lỗi hơn ở đây trong các bản phát hành trong tương lai. Những cái hiện có có nghĩa là không bao giờ thay đổi. Lệnh Curl
Làm thế nào để sử dụng uốn tóc?
Giới hạn tốc độ
Chuyển tập tin
Gửi dữ liệu POST
Truyền và nhận cookie
Truyền và phân tích cú pháp các tiêu đề
Xác thực cuộn tròn
Sử dụng proxy
kết luận
Curl giúp bạn quản lý dữ liệu được lưu trữ trên Web
Cài đặt Curl
Trích xuất dữ liệu được mã hóa
Không chỉ cho WWW
Xác thực
Đọc tài liệu
Ví dụ về cuộn