Wget
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2023 г. ) |
![]() Скриншот Wget, работающего в Ubuntu . | |
Оригинальный автор(ы) | Хрвое Никшич |
---|---|
Разработчик(и) | Джузеппе Скривано, Тим Рюсен, Даршит Шах |
Первоначальный выпуск | январь 1996 г |
Стабильная версия | 1.24.5 [1] ![]() |
Репозиторий | |
Написано в | С |
Платформа | Кросс-платформенный |
Тип | FTP-клиент / HTTP-клиент |
Лицензия | GPL-3.0 или новее [а] [2] |
Веб-сайт | www |
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.1.0 [13] ![]() |
Репозиторий | gitlab |
Лицензия | GPL-3.0 или новее [14] |
Веб-сайт | www |
GNU Wget2 2.0.0 был выпущен 26 сентября 2021 года. Он распространяется по лицензии GPL-3.0 или более поздней версии и основан на Libwget, которая находится под лицензией LGPL-3.0 или более поздней версии . [14] Он имеет множество улучшений по сравнению с Wget, в частности, во многих случаях Wget2 загружается намного быстрее, чем Wget1.x, благодаря поддержке следующих протоколов и технологий: [15]
- HTTP/2 ,
- HTTP-сжатие ,
- параллельные соединения,
- использование If-Modified-Since , HTTP-заголовка
- TCP Быстрое открытие .
Связанные работы
[ редактировать ]GWget
[ редактировать ]GWget — это бесплатный графический пользовательский интерфейс для Wget. Он разработан Дэвидом Седеньо Фернандесом на основе программного стека GNOME . GWget поддерживает все основные функции Wget, а также параллельную загрузку. [16]
Клигет
[ редактировать ]Cliget — это загрузчик дополнений Firefox с открытым исходным кодом , который использует Curl , Wget и Aria2. Он разработан Заидом Абдуллой. [17] [18] [19]
Клоны
[ редактировать ]Существуют клоны GNU Wget, предназначенные для встраиваемых систем , которые часто ограничены в памяти и хранилище. Они поддерживают самые базовые возможности, обычно ограничивающиеся загрузкой.
См. также
[ редактировать ]- КУЛЬ
- HTTrack
- лфтп
- Веб-сканер
- Команда PowerShell iwr Invoke-WebRequest
Примечания
[ редактировать ]- ^ GPL-3.0 или новее с исключением OpenSSL.
Ссылки
[ редактировать ]- ^ Даршит Шах (10 марта 2024 г.). «Выпущен wget-1.24.5 [стабильный]» . Проверено 22 марта 2024 г.
- ^ Перейти обратно: а б «Файл README» . Проверено 1 декабря 2014 г.
- ^ Перейти обратно: а б Скривано, Джузеппе (6 августа 2012 г.). «Выпущен GNU wget 1.14» . Выпущена GNU wget 1.14 . Фонд свободного программного обеспечения, Inc. Проверено 25 февраля 2016 г.
- ^ Перейти обратно: а б «GNU Wget NEWS – история видимых пользователем изменений» . Svn.dotsrc.org. 20 марта 2005 г. Архивировано из оригинала 13 марта 2007 г. Проверено 8 декабря 2012 г.
Wget 1.4.0 [ранее известный как Geturl] представляет собой обширную переработку Geturl.
- ^ «Wget — Проект GNU» . 30 ноября 2018 года . Проверено 30 ноября 2018 г.
- ^ «Почему FSF получает права передачи авторских прав от участников — Проект GNU — Фонд свободного программного обеспечения (FSF)» . Gnu.org . Проверено 8 декабря 2012 г.
- ^ Перейти обратно: а б «Гмане Лум» . Новости.gmane.org. Архивировано из оригинала 9 января 2013 года . Проверено 8 декабря 2012 г.
- ^ «Руководство по исправлению — The Wget Wgiki» . Wget.addictivecode.org. 22 сентября 2009 года . Проверено 8 декабря 2012 г.
- ^ «Доступ к репозиторию» . 31 июля 2012 года . Проверено 7 июня 2013 г.
- ^ «Доступ к репозиторию» . 22 мая 2010 года . Проверено 20 июня 2010 г.
- ^ Никшич, Хрвое (24 июня 1996 г.). «Geturl: Программное обеспечение для неинтерактивной загрузки» . comp.infosystems.www.announce . Проверено 17 ноября 2016 г. .
- ^ "/wget/trunk: содержимое NEWS в версии 2608" . bzr.savannah.gnu.org .
- ^ Тим Рюсен (31 августа 2023 г.). «Выпущен wget2-2.1.0» . Проверено 31 августа 2023 г.
- ^ Перейти обратно: а б «Выпущен GNU Wget2 2.0.0» . gnu.org . 26 сентября 2021 г.
- ^ "wget2" . ГитЛаб .
- ^ «Домашняя страница GWget» . 22 марта 2013 г.
- ^ "заидка/клигет" . Гитхаб . Проверено 25 августа 2016 г.
- ^ «Знакомьтесь с разработчиком cliget :: Дополнения для Firefox» . addons.mozilla.org . Архивировано из оригинала 21 сентября 2016 года . Проверено 25 августа 2016 г.
- ^ «клигет» . addons.mozilla.org . Проверено 25 августа 2016 г.
- ^ «git.openwrt.org Git — project/uclient.git/summary» . git.openwrt.org . Архивировано из оригинала 6 октября 2021 года . Проверено 6 октября 2021 г.
- ^ Перейти обратно: а б «Лэндли/ящик для игрушек» . 6 октября 2021 г. – через GitHub.
Внешние ссылки
[ редактировать ]
- Официальный сайт
- Различные параметры CLI Wget/Wget2
- Стенберг, Дэниел (9 ноября 2021 г.) [2007 г.]. «Сравнение cURL и wget» .
- программное обеспечение 1996 года
- Программное обеспечение командной строки
- Кроссплатформенное бесплатное программное обеспечение
- Менеджеры загрузок
- Бесплатные FTP-клиенты
- Бесплатные веб-сканеры
- Программное обеспечение проекта GNU
- Клиенты протокола передачи гипертекста
- Портативное программное обеспечение
- Текстовый режим
- Веб-архивирование
- Парсинг веб-страниц