Bản phát hành ổn định đầu tiên của tiện ích tải xuống nội dung web GNU Wget2

Sau ba năm rưỡi phát triển, bản phát hành ổn định đầu tiên của dự án GNU Wget2 đã được trình bày, phát triển một phiên bản được thiết kế lại hoàn toàn của chương trình để tự động tải xuống đệ quy nội dung GNU Wget. GNU Wget2 được thiết kế và viết lại từ đầu và đáng chú ý là đã chuyển chức năng cơ bản của máy khách web vào thư viện libwget, thư viện này có thể được sử dụng riêng trong các ứng dụng. Tiện ích này được cấp phép theo GPLv3+ và thư viện được cấp phép theo LGPLv3+.

Thay vì làm lại dần dần cơ sở mã hiện có, họ quyết định làm lại mọi thứ từ đầu và thành lập một nhánh Wget2 riêng để thực hiện các ý tưởng tái cấu trúc, tăng cường chức năng và thực hiện các thay đổi phá vỡ tính tương thích. Ngoại trừ việc không dùng nữa giao thức FTP và định dạng WARC, wget2 có thể hoạt động như một sự thay thế minh bạch cho tiện ích wget cổ điển trong hầu hết các trường hợp.

Điều đó đang được nói, wget2 có một số khác biệt được ghi lại trong hành vi, cung cấp khoảng 30 tùy chọn bổ sung và ngừng hỗ trợ hàng tá tùy chọn. Bao gồm việc xử lý các tùy chọn như “-ask-password”, “-header”, “-exclude-directories”, “-ftp*”, “-warc*”, “-limit-rate”, “-relative” đã được đã dừng " và "--unlink".

Những đổi mới quan trọng bao gồm:

  • Di chuyển chức năng sang thư viện libwget.
  • Chuyển sang kiến ​​trúc đa luồng.
  • Khả năng thiết lập nhiều kết nối song song và tải xuống nhiều luồng. Cũng có thể song song việc tải xuống một tệp được chia thành các khối bằng cách sử dụng tùy chọn “-chunk-size”.
  • Hỗ trợ giao thức HTTP/2.
  • Sử dụng tiêu đề HTTP If-Modified-Since để chỉ tải xuống dữ liệu đã sửa đổi.
  • Chuyển sang sử dụng các bộ giới hạn băng thông bên ngoài như nhỏ giọt.
  • Hỗ trợ tiêu đề Accept-Encoding, truyền dữ liệu nén và các thuật toán nén brotli, zstd, lzip, gzip, deflate, lzma và bzip2.
  • Hỗ trợ TLS 1.3, OCSP (Giao thức trạng thái chứng chỉ trực tuyến) để kiểm tra các chứng chỉ bị thu hồi, cơ chế HSTS (HTTP Strict Transport Security) để buộc chuyển hướng sang HTTPS và HPKP (Ghim khóa công khai HTTP) để liên kết chứng chỉ.
  • Khả năng sử dụng GnuTLS, WolfSSL và OpenSSL làm phụ trợ cho TLS.
  • Hỗ trợ mở nhanh các kết nối TCP (TCP FastOpen).
  • Hỗ trợ định dạng Metalink tích hợp.
  • Hỗ trợ tên miền quốc tế hóa (IDNA2008).
  • Khả năng hoạt động đồng thời thông qua một số máy chủ proxy (một luồng sẽ được tải qua một proxy và luồng thứ hai sẽ được tải qua một proxy khác).
  • Hỗ trợ tích hợp cho các nguồn cấp tin tức ở định dạng Atom và RSS (ví dụ: để quét và tải xuống các liên kết). Dữ liệu RSS/Atom có ​​thể được tải xuống từ tệp cục bộ hoặc qua mạng.
  • Hỗ trợ trích xuất URL từ Sơ đồ trang web. Có sẵn các trình phân tích cú pháp để trích xuất các liên kết từ các tệp CSS và XML.
  • Hỗ trợ lệnh 'bao gồm' trong các tệp cấu hình và phân phối cài đặt trên nhiều tệp (/etc/wget/conf.d/*.conf).
  • Cơ chế lưu trữ truy vấn DNS tích hợp.
  • Khả năng mã hóa lại nội dung bằng cách thay đổi mã hóa tài liệu.
  • Tính toán tệp “robots.txt” trong quá trình tải xuống đệ quy.
  • Chế độ ghi đáng tin cậy với lệnh gọi fsync() sau khi lưu dữ liệu.
  • Khả năng tiếp tục các phiên TLS bị gián đoạn, cũng như lưu vào bộ đệm và lưu các tham số phiên TLS vào một tệp.
  • Chế độ "--input-file-" để tải URL đi qua luồng đầu vào tiêu chuẩn.
  • Kiểm tra phạm vi của Cookie dựa vào thư mục hậu tố miền công cộng (Danh sách hậu tố công cộng) để tách biệt với các trang web khác nhau được lưu trữ trong cùng một miền cấp hai (ví dụ: “a.github.io” và “b.github. io”).
  • Hỗ trợ tải xuống phát trực tuyến ICEcast/SHOUTcast.

Nguồn: opennet.ru

Thêm một lời nhận xét