Jump to content

Wget

Wget
Оригинальный автор(ы) Хрвое Никшич
Разработчик(и) Джузеппе Скривано, Тим Рюсен, Даршит Шах
Первоначальный выпуск январь 1996 г .; 28 лет назад ( 1996-01 )
Стабильная версия
1.24.5 [1]  Отредактируйте это в Викиданных / 10 марта 2024 г.
Репозиторий
Написано в С
Платформа Кросс-платформенный
Тип FTP-клиент / HTTP-клиент
Лицензия GPL-3.0 или новее [а] [2]
Веб-сайт www .gnu .org /программное обеспечение /wget /

GNU Wget (или просто Wget , ранее Geturl , также пишется как имя пакета wget ) — это компьютерная программа , которая извлекает контент с веб-серверов . Это часть проекта GNU . Его название происходит от слов « Всемирная паутина » и « получить ». Он поддерживает загрузку через HTTP , HTTPS и FTP .

Его функции включают рекурсивную загрузку, преобразование ссылок для автономного просмотра локального HTML и поддержку прокси. Он появился в 1996 году, что совпало с бумом популярности Интернета, что привело к его широкому использованию среди пользователей Unix и распространению с большинством основных дистрибутивов Linux . Wget написан на портативном языке C и может быть легко установлен в любой Unix-подобной системе. Wget портирован на Microsoft Windows , macOS , OpenVMS , HP-UX , AmigaOS , MorphOS и Solaris . Начиная с версии 1.14, Wget может сохранять выходные данные в стандартном формате веб-архивирования WARC . [3]

Wget происходит от более ранней программы Geturl того же автора. [4] разработка которого началась в конце 1995 года. Название было изменено на Wget после того, как автору стало известно о более ранней программе Amiga под названием GetURL, написанной Джеймсом Бертоном в AREXX .

Wget заполнил пробел в нестабильном программном обеспечении для загрузки из Интернета, доступном в середине 1990-х годов. Ни одна программа не может надежно использовать одновременно HTTP и FTP для загрузки файлов. Существующие программы либо поддерживали FTP (например, NcFTP и dl), либо были написаны на Perl , который еще не получил повсеместного распространения. Хотя Wget был вдохновлен функциями некоторых существующих программ, он поддерживал как HTTP, так и FTP и мог быть создан с использованием только стандартных инструментов разработки, имеющихся в каждой системе Unix.

В то время многие пользователи Unix сталкивались с чрезвычайно медленными университетскими и коммутируемыми подключениями к Интернету , что привело к растущей потребности в агенте загрузки, который мог бы справляться с временными сбоями сети без помощи человека-оператора.

Надежность

[ редактировать ]

Wget был разработан для обеспечения устойчивости при медленных или нестабильных сетевых соединениях. Если загрузка не завершается из-за проблем с сетью , Wget автоматически попытается продолжить загрузку с того места, где она остановилась, и повторять это до тех пор, пока не будет получен весь файл. Это был один из первых клиентов, воспользовавшихся новой на тот момент технологией. Range HTTP-заголовок для поддержки этой функции.

Рекурсивная загрузка

[ редактировать ]

Wget может при желании работать как веб-сканер , извлекая ресурсы, связанные с HTML- страницами , и загружая их последовательно, рекурсивно повторяя процесс до тех пор, пока все страницы не будут загружены или пока не будет достигнута максимальная глубина рекурсии, указанная пользователем. Загруженные страницы сохраняются в структуре каталогов, аналогичной структуре на удаленном сервере. Эта «рекурсивная загрузка» обеспечивает частичное или полное зеркалирование веб-сайтов через HTTP. Ссылки на загруженных HTML-страницах можно настроить так, чтобы они указывали на локально загруженный материал для просмотра в автономном режиме . При выполнении такого рода автоматического зеркалирования веб-сайтов Wget поддерживает стандарт исключения роботов (если не включена опция -e robots=off используется).

работает с FTP , где Wget выдает Рекурсивная загрузка также LIST команда, чтобы найти дополнительные файлы для загрузки, повторяя этот процесс для каталогов и файлов под тем, который указан в верхнем URL-адресе . Подстановочные знаки, подобные оболочке, поддерживаются при запросе загрузки URL-адресов FTP.

При рекурсивной загрузке через HTTP или FTP Wget можно поручить проверять временные метки локальных и удаленных файлов и загружать только удаленные файлы, более новые, чем соответствующие локальные файлы. Это позволяет легко зеркалировать сайты HTTP и FTP , но считается неэффективным и более подверженным ошибкам по сравнению с программами, разработанными для зеркалирования с нуля, такими как rsync . С другой стороны, Wget не требует для этой задачи специального серверного программного обеспечения.

Неинтерактивность

[ редактировать ]

Wget неинтерактивен в том смысле, что после запуска он не требует взаимодействия с пользователем и не требует управления TTY , имея возможность записывать свой прогресс в отдельный файл для последующей проверки. Пользователи могут запустить Wget и выйти из системы , оставив программу без присмотра. Напротив, большинство с графическим или текстовым пользовательским интерфейсом веб-браузеров требуют, чтобы пользователь оставался в системе и вручную перезапускал неудачные загрузки, что может быть большим препятствием при передаче большого количества данных.

Портативность

[ редактировать ]

Написанный в легко переносимом стиле C с минимальными зависимостями от сторонних библиотек, Wget требует немного больше, чем компилятор C и BSD-подобный интерфейс для работы в сети TCP/IP . [ нужна ссылка ] Разработанная как программа Unix, вызываемая из оболочки Unix , программа была портирована на многочисленные Unix-подобные среды и системы, включая Microsoft Windows через Cygwin и macOS . Он также доступен как встроенная программа Microsoft Windows в виде одного из пакетов GnuWin .

Другие особенности

[ редактировать ]
  • Wget поддерживает загрузку через прокси-серверы , которые широко используются для обеспечения веб-доступа внутри брандмауэров компании , а также для кэширования и быстрой доставки часто используемого контента.
  • Там, где это возможно, используются постоянные соединения HTTP .
  • IPv6 поддерживается в системах, включающих соответствующие интерфейсы.
  • SSL/TLS поддерживается для зашифрованных загрузок с использованием библиотеки OpenSSL или GnuTLS .
  • Файлы размером более 2 ГиБ поддерживаются в 32 - разрядных системах, включающих соответствующие интерфейсы.
  • Скорость загрузки может быть ограничена , чтобы избежать использования всей доступной полосы пропускания .
  • Может сохранять выходные данные в стандартном формате веб-архивирования WARC , при необходимости дедуплицируя связанный файл CDX. [3]
[ редактировать ]

GNU Wget был написан Хрвое Никшичем при участии многих других людей, включая Дэна Харклесса, Яна Эбботта и Мауро Тортонеси. Значительные вклады зачислены в файл AUTHORS , включенный в дистрибутив, а все остальные задокументированы в журналах изменений , также включенных в программу. Wget в настоящее время поддерживают Джузеппе Скривано, Тим Рюсен и Даршит Шах. [5]

Авторские права на Wget принадлежат Фонду свободного программного обеспечения , политика которого требует передачи авторских прав на все нетривиальные вклады в программное обеспечение GNU. [6]

Лицензия

[ редактировать ]

GNU Wget распространяется на условиях GNU General Public License версии 3 или новее, за особым исключением , которое позволяет распространять двоичные файлы, связанные с библиотекой OpenSSL . Текст исключения следующий: [2]

Дополнительное разрешение в соответствии с GNU GPL версии 3, раздел 7.

Если вы измените эту программу или любую защищенную работу, связав или объединив ее с библиотекой OpenSSL проекта OpenSSL (или модифицированной версией этой библиотеки), содержащей части, на которые распространяются условия лицензий OpenSSL или SSLeay, Фонд свободного программного обеспечения предоставляет Вам дополнительное разрешение на передачу полученной работы. Соответствующий исходный код для формы такой комбинации, не являющейся исходным кодом, должен включать исходный код используемых частей OpenSSL, а также код рассматриваемой работы.

Ожидается [ кем? ] что предложение об исключении будет удалено, как только Wget будет изменен для связи с библиотекой GnuTLS .

Wget Документация в виде справочного руководства Texinfo распространяется на условиях лицензии GNU Free Documentation License версии 1.2 или более поздней. Страница руководства, обычно распространяемая в Unix-подобных системах, автоматически создается на основе подмножества руководства Texinfo и подпадает под условия той же лицензии.

Разработка

[ редактировать ]

Wget разрабатывается открытым способом, большинство проектных решений обычно обсуждаются в общедоступном списке рассылки. [7] за которыми следуют пользователи и разработчики. Отчеты об ошибках и исправления передаются в один и тот же список.

Источник вклада

[ редактировать ]

Предпочтительный метод внесения изменений в код и документацию Wget — обновление исходного кода в виде текстовых исправлений , создаваемых утилитой diff . Патчи, предназначенные для включения в Wget, отправляются в список рассылки. [7] где они проверяются сопровождающими. Патчи, прошедшие проверку сопровождающих, устанавливаются в исходные коды. Инструкции по созданию патчей, а также рекомендации по стилю изложены в вики проекта. [8]

Исходный код также можно отслеживать через удаленный репозиторий контроля версий , в котором хранится история изменений, начиная с версии 1.5.3. В настоящее время в репозитории работает Git . [9] До этого исходный код размещался на (в обратном порядке): Bazaar , [10] Mercurial , Subversion и через CVS .

Выпускать

[ редактировать ]

Когда в ходе разработки накапливается достаточное количество функций или исправлений ошибок, Wget выпускается для широкой публики через FTP-сайт GNU и его зеркала. Поскольку проект полностью управляется добровольцами, он не требует внешнего давления с целью выпуска релиза и не имеет установленных сроков выпуска.

Релизы нумеруются как версии major.minor [.revision] , например Wget 1.11 или Wget 1.8.2 . Увеличение основного номера версии означает большие и, возможно, несовместимые изменения в поведении Wget или радикальный пересмотр базы кода. Увеличение младшего номера версии означает добавление новых функций и исправление ошибок. Новая редакция означает выпуск, который по сравнению с предыдущей редакцией содержит только исправления ошибок. Нулевая версия опущена, что означает, что, например, Wget 1.11 аналогичен версии 1.11.0. Wget не использует соглашение о нечетно-четном номере выпуска, популяризированное Linux.

[ редактировать ]

Вгет появляется в Columbia Pictures кинофильме 2010 года «Социальная сеть» . Главный герой, несколько вымышленная версия Facebook соучредителя Марка Цукерберга , использует Wget для сбора фотографий студентов из различных Гарвардского университета каталогов жилья .

Известные релизы

[ редактировать ]

Следующие выпуски представляют собой важные вехи в развитии Wget. Функции, перечисленные рядом с каждым выпуском, отредактированы для краткости и не представляют собой исчерпывающую информацию о выпуске, которая доступна в файле NEWS , распространяемом вместе с Wget. [4]

  • Geturl 1.0, выпущенный в январе 1996 года, был первым общедоступным выпуском. Первое объявление на английском языке можно найти в новостной публикации Usenet, которая, вероятно, относится к Geturl 1.3.4, выпущенному в июне. [11]
  • Wget 1.4.0, выпущенная в ноябре 1996 года, была первой версией, в которой использовалось имя Wget . Это был также первый выпуск, распространяемый на условиях GNU GPL , Geturl распространялся по специальной безгарантийной лицензии .
  • Wget 1.4.3, выпущенная в феврале 1997 года, была первой версией, выпущенной в рамках проекта GNU , авторские права которой были переданы FSF .
  • Wget 1.5.3, выпущенный в сентябре 1998 года, стал важной вехой в популярности программы. Эта версия была включена во многие дистрибутивы на базе Linux , что сделало программу доступной для гораздо более широкой аудитории.
  • Wget 1.6, выпущенный в декабре 1999 года, включал множество исправлений ошибок для (к тому времени устаревшей) версии 1.5.3, во многом благодаря усилиям Дэна Харклесса.
  • В Wget 1.7, выпущенном в июне 2001 года, появилась поддержка SSL , файлов cookie и постоянных соединений .
  • В Wget 1.8, выпущенном в декабре 2001 года, добавлено регулирование пропускной способности гиперссылок в ширину , новые индикаторы прогресса и обход графа .
  • Wget 1.9, выпущенный в октябре 2003 года, включал экспериментальную поддержку IPv6 и возможность отправлять данные POST на HTTP-серверы.
  • В версии Wget 1.10, выпущенной в июне 2005 г., появилась поддержка больших файлов , поддержка IPv6 в двухсемейных системах, авторизация NTLM и улучшения SSL . Техническое обслуживание взял на себя Мауро Тортонеси.
  • Wget 1.11, выпущенный в январе 2008 года, перешел на версию 3 Стандартной общественной лицензии GNU и добавил предварительную поддержку Content-Disposition заголовок, который часто используется сценариями CGI для указания имени файла для загрузки. Улучшения, связанные с безопасностью, также были внесены в код аутентификации HTTP. Мика Коуэн взял на себя сопровождение проекта.
  • В Wget 1.12, выпущенном в сентябре 2009 года, добавлена ​​поддержка анализа URL-адресов из CSS- контента в Интернете, а также обработка интернационализированных идентификаторов ресурсов .
  • Wget 1.13, выпущенный в августе 2011 года, поддерживает HTTP/1.1, исправляет некоторые проблемы с переносимостью и по умолчанию использует библиотеку GnuTLS для безопасных соединений. [12]
  • В Wget 1.14, выпущенном в августе 2012 г., улучшена поддержка TLS и добавлена ​​поддержка Аутентификация доступа к дайджесту RFC   2617 .
  • Добавлена ​​версия Wget 1.15, выпущенная в январе 2014 года: только https и поддержка Perfect-Forward Secrecy.
  • Wget 1.16, выпущенный в октябре 2014 г., изменил вывод индикатора выполнения по умолчанию, закрыл CVE - 2014-4877 добавлена ​​поддержка libpsl для проверки доменов cookie и введена функция start-pos, позволяющая начинать загрузку с указанной позиции.
  • В Wget 1.17, выпущенном в ноябре 2015 года, пассивный FTP переведен в активный резервный вариант из соображений конфиденциальности, добавлена ​​поддержка FTPS и — если изменено — с тех пор.
  • Wget 1.18, выпущенный в июне 2016 г., устранил проблему CVE : 2016-4971 и добавлены параметры «--bind-dns-address» и «--dns-servers».
  • В Wget 1.19, выпущенную в феврале 2017 года, добавлены новые возможности обработки файла Metalink; В версии 1.19.1 добавлена ​​опция —retry-on-http-error, позволяющая повторить загрузку, если веб-сервер отвечает заданным кодом состояния HTTP.
  • Wget 1.20, выпущенный в ноябре 2018 г., добавлен --retry-on-host-error для большей надежности и --accept-regex, --reject-regex опции для рекурсивного получения данных по FTP.
Wget2
Первоначальный выпуск 26 сентября 2021 г .; 2 года назад ( 26.09.2021 )
Стабильная версия
2.1.0 [13]  Отредактируйте это в Викиданных / 31 августа 2023 г.
Репозиторий gitlab /gnuwget /wget2
Лицензия GPL-3.0 или новее [14]
Веб-сайт www .gnu .org /программное обеспечение /wget /

GNU Wget2 2.0.0 был выпущен 26 сентября 2021 года. Он распространяется по лицензии GPL-3.0 или более поздней версии и основан на Libwget, которая находится под лицензией LGPL-3.0 или более поздней версии . [14] Он имеет множество улучшений по сравнению с Wget, в частности, во многих случаях Wget2 загружается намного быстрее, чем Wget1.x, благодаря поддержке следующих протоколов и технологий: [15]

[ редактировать ]
Снимок экрана GWget 1.0.4 в Fedora v12 с GNOME v2.28.2 установленным

GWget — это бесплатный графический пользовательский интерфейс для Wget. Он разработан Дэвидом Седеньо Фернандесом на основе программного стека GNOME . GWget поддерживает все основные функции Wget, а также параллельную загрузку. [16]

Cliget — это загрузчик дополнений Firefox с открытым исходным кодом , который использует Curl , Wget и Aria2. Он разработан Заидом Абдуллой. [17] [18] [19]

Существуют клоны GNU Wget, предназначенные для встраиваемых систем , которые часто ограничены в памяти и хранилище. Они поддерживают самые базовые возможности, обычно ограничивающиеся загрузкой.

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ GPL-3.0 или новее с исключением OpenSSL.
  1. ^ Даршит Шах (10 марта 2024 г.). «Выпущен wget-1.24.5 [стабильный]» . Проверено 22 марта 2024 г.
  2. ^ Перейти обратно: а б «Файл README» . Проверено 1 декабря 2014 г.
  3. ^ Перейти обратно: а б Скривано, Джузеппе (6 августа 2012 г.). «Выпущен GNU wget 1.14» . Выпущена GNU wget 1.14 . Фонд свободного программного обеспечения, Inc. Проверено 25 февраля 2016 г.
  4. ^ Перейти обратно: а б «GNU Wget NEWS – история видимых пользователем изменений» . Svn.dotsrc.org. 20 марта 2005 г. Архивировано из оригинала 13 марта 2007 г. Проверено 8 декабря 2012 г. Wget 1.4.0 [ранее известный как Geturl] представляет собой обширную переработку Geturl.
  5. ^ «Wget — Проект GNU» . 30 ноября 2018 года . Проверено 30 ноября 2018 г.
  6. ^ «Почему FSF получает права передачи авторских прав от участников — Проект GNU — Фонд свободного программного обеспечения (FSF)» . Gnu.org . Проверено 8 декабря 2012 г.
  7. ^ Перейти обратно: а б «Гмане Лум» . Новости.gmane.org. Архивировано из оригинала 9 января 2013 года . Проверено 8 декабря 2012 г.
  8. ^ «Руководство по исправлению — The Wget Wgiki» . Wget.addictivecode.org. 22 сентября 2009 года . Проверено 8 декабря 2012 г.
  9. ^ «Доступ к репозиторию» . 31 июля 2012 года . Проверено 7 июня 2013 г.
  10. ^ «Доступ к репозиторию» . 22 мая 2010 года . Проверено 20 июня 2010 г.
  11. ^ Никшич, Хрвое (24 июня 1996 г.). «Geturl: Программное обеспечение для неинтерактивной загрузки» . comp.infosystems.www.announce . Проверено 17 ноября 2016 г. .
  12. ^ "/wget/trunk: содержимое NEWS в версии 2608" . bzr.savannah.gnu.org .
  13. ^ Тим Рюсен (31 августа 2023 г.). «Выпущен wget2-2.1.0» . Проверено 31 августа 2023 г.
  14. ^ Перейти обратно: а б «Выпущен GNU Wget2 2.0.0» . gnu.org . 26 сентября 2021 г.
  15. ^ "wget2" . ГитЛаб .
  16. ^ «Домашняя страница GWget» . 22 марта 2013 г.
  17. ^ "заидка/клигет" . Гитхаб . Проверено 25 августа 2016 г.
  18. ^ «Знакомьтесь с разработчиком cliget :: Дополнения для Firefox» . addons.mozilla.org . Архивировано из оригинала 21 сентября 2016 года . Проверено 25 августа 2016 г.
  19. ^ «клигет» . addons.mozilla.org . Проверено 25 августа 2016 г.
  20. ^ «git.openwrt.org Git — project/uclient.git/summary» . git.openwrt.org . Архивировано из оригинала 6 октября 2021 года . Проверено 6 октября 2021 г.
  21. ^ Перейти обратно: а б «Лэндли/ящик для игрушек» . 6 октября 2021 г. – через GitHub.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 259cad4342dd6383f7ab63976b5f58da__1716697260
URL1:https://arc.ask3.ru/arc/aa/25/da/259cad4342dd6383f7ab63976b5f58da.html
Заголовок, (Title) документа по адресу, URL1:
Wget - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)