- Best Command Line HTTP Clients for Linux
- 1. HTTPie
- 2. HTTP Prompt 2
- 3. Curl
- 4. Wget
- 5. Aria2
- Команда Curl в Linux с примерами
- Установка Curl
- Установите Curl в Ubuntu и Debian
- Установите Curl на CentOS и Fedora
- Как использовать Curl
- Сохранить вывод в файл
- Скачать несколько файлов
- Возобновить загрузку
- Получить HTTP-заголовки URL-адреса
- Проверьте, поддерживает ли веб-сайт HTTP / 2
- Следить за перенаправлениями
- Сменить User-Agent
- Укажите максимальную скорость передачи
- Передача файлов через FTP
- Отправить файлы cookie
- Использование прокси
- Выводы
Best Command Line HTTP Clients for Linux
HTTP clients are utility software that enables you to download files over the Internet. Apart from being able to download files remotely, these command line tools can be used for other tasks such as debugging and interacting with web servers.
Today, check out our list of the best HTTP clients created for use in the Linux Command Line.
1. HTTPie
HTTPie is an open source command line HTTP client for interacting with HTTP servers, web services, and RESTful APIs. HTTPie pronounced “aych-tee-tee-pie” and its aim is to simplify human interaction with web services via the command line, so most people use it for Wget-like downloads.
Its other features include a type-based colorized syntax, custom headers, persistent sessions, support for plugins, built-in support for JSON, etc.
2. HTTP Prompt 2
HTTP Prompt is an interactive command-line HTTP client built on prompt_toolkit and HTTPie with 20+ themes. Its feature highlights include auto-complete, syntax highlighting, auto cookies, Unix-like pipelines, compatibility with HTTpie, http-prompt persists in-between sessions, and OpenAPI/Swagger integration.
3. Curl
Curl is an open source command line utility and library for transferring files over a network using URL syntax over any of several supported protocols including SCP, SMTPS, HTTPS, IMAP, LDAP, POP3, etc.
Curl is a very popular utility used in not only terminals and scripts to transfer data but also in routers, printers, tablets, mobile phones, set-top boxes, audio equipment, media players, etc. It has a long feature list which includes support for IPv6 and socks5, custom output results after completion, no URL length limit, asynchronous name resolving.
4. Wget
Wget is an open source command-line utility for retrieving content from web servers via HTTP proxies as well as HTTP, HTTPS, and FTP protocols. Its function is recursive downloading which entails that it follows the links in HTML pages and create local versions of remote websites.
Wget boasts several features including the ability to function excellently even when your network connection is slow or unstable, support for HTTP proxies and cookies, resume aborted downloads using REST and RANGE APIs, NLS-based message files for different languages, etc.
5. Aria2
Aria2 is a lightweight open source command-line download utility with support for HTTP & HTTPS, FTP & SFTP, Metalink, and BitTorrent. Its features include automatic validation for files like BitTorrent, parallel file downloads from HTTP(S)/(S)FTP and BitTorrent at the same, Ntrc support, disk caching to reduce disk activity, IPv6 support with Happy Eyeballs, etc.
Are there any awesome command line HTTP clients that are not listed above? Feel free to add your suggestions and reasons in the discussion box below.
Команда Curl в Linux с примерами
curl — это утилита командной строки для передачи данных с сервера или на сервер, предназначенная для работы без взаимодействия с пользователем. С помощью curl вы можете загружать или выгружать данные, используя один из поддерживаемых протоколов, включая HTTP, HTTPS, SCP , SFTP и FTP . curl предоставляет ряд параметров, позволяющих возобновить передачу, ограничить полосу пропускания, поддержку прокси, аутентификацию пользователя и многое другое.
В этом руководстве мы покажем вам, как использовать инструмент завивки, на практических примерах и подробных объяснениях наиболее распространенных вариантов завивки.
Установка Curl
Сегодня пакет curl предустановлен в большинстве дистрибутивов Linux.
Чтобы проверить, установлен ли пакет Curl в вашей системе, откройте консоль, введите curl и нажмите Enter. Если у вас установлен curl , система напечатает curl: try ‘curl —help’ or ‘curl —manual’ for more information . В противном случае вы увидите что-то вроде curl command not found .
Если curl не установлен, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите Curl в Ubuntu и Debian
sudo apt update
sudo apt install curl
Установите Curl на CentOS и Fedora
Как использовать Curl
Синтаксис команды curl следующий:
В простейшей форме при вызове без каких-либо параметров curl выводит указанный ресурс на стандартный вывод.
Например, чтобы получить домашнюю страницу example.com вы должны запустить:
Команда напечатает исходный код домашней страницы example.com в окне вашего терминала.
Если протокол не указан, curl пытается угадать протокол, который вы хотите использовать, и по умолчанию будет использовать HTTP .
Сохранить вывод в файл
Чтобы сохранить результат команды curl , используйте параметр -o или -O .
vue-v2.6.10.js -o сохраняет файл с предопределенным именем файла, которым в приведенном ниже примере является vue-v2.6.10.js :
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Верхний регистр -O сохраняет файл с исходным именем:
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Скачать несколько файлов
Чтобы загрузить сразу несколько файлов, используйте несколько параметров -O , за которыми следует URL-адрес файла, который вы хотите загрузить.
В следующем примере мы загружаем iso-файлы Arch Linux и Debian:
curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
-O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
Возобновить загрузку
Вы можете возобновить загрузку, используя параметр -C — . Это полезно, если ваше соединение прерывается во время загрузки большого файла, и вместо того, чтобы начинать загрузку с нуля, вы можете продолжить предыдущую.
Например, если вы загружаете iso-файл Ubuntu 18.04 с помощью следующей команды:
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
и внезапно ваше соединение прерывается, вы можете возобновить загрузку с помощью:
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Получить HTTP-заголовки URL-адреса
Заголовки HTTP — это пары ключ-значение, разделенные двоеточиями, содержащие такую информацию, как пользовательский агент, тип контента и кодировка. Заголовки передаются между клиентом и сервером с запросом или ответом.
Используйте параметр -I чтобы получить только HTTP-заголовки указанного ресурса:
curl -I --http2 https://www.ubuntu.com/
Проверьте, поддерживает ли веб-сайт HTTP / 2
Чтобы проверить, поддерживает ли конкретный URL новый протокол HTTP / 2 , —http2 заголовки HTTP с помощью -I вместе с параметром —http2 :
curl -I --http2 -s https://linuxize.com/ | grep HTTP
Параметр -s указывает curl работать в автоматическом (тихом) режиме и скрывать индикатор выполнения и сообщения об ошибках.
Если удаленный сервер поддерживает HTTP / 2, curl печатает HTTP/2.0 200 :
В противном случае ответ будет HTTP/1.1 200 :
Если у вас curl версии 7.47.0 или новее, вам не нужно использовать параметр —http2 поскольку HTTP / 2 включен по умолчанию для всех соединений HTTPS.
Следить за перенаправлениями
По умолчанию curl не следует за заголовками HTTP Location.
Если вы попытаетесь получить версию google.com без www, вы заметите, что вместо получения источника страницы вы будете перенаправлены на версию с www:
Параметр -L указывает curl следовать любому перенаправлению, пока не достигнет конечного пункта назначения:
Сменить User-Agent
Иногда при загрузке файла удаленный сервер может быть настроен так, чтобы блокировать пользовательский агент Curl или возвращать различное содержимое в зависимости от устройства посетителя и браузера.
В подобных ситуациях для эмуляции другого браузера используйте параметр -A .
Например, для эмуляции Firefox 60 вы должны использовать:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
Укажите максимальную скорость передачи
Параметр —limit-rate позволяет ограничить скорость передачи данных. Значение может быть выражено в байтах, килобайтах с суффиксом k , мегабайтах с суффиксом m и гигабайтах с суффиксом g .
В следующем примере curl загрузит двоичный файл Go и ограничит скорость загрузки до 1 МБ:
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Эта опция полезна для предотвращения использования curl всей доступной полосы пропускания.
Передача файлов через FTP
Чтобы получить доступ к защищенному FTP-серверу с помощью curl , используйте параметр -u и укажите имя пользователя и пароль, как показано ниже:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
После входа в систему команда выводит список всех файлов и каталогов в домашнем каталоге пользователя.
Вы можете загрузить один файл с FTP-сервера, используя следующий синтаксис:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
Чтобы загрузить файл на FTP-сервер, используйте -T за которым следует имя файла, который вы хотите загрузить:
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Отправить файлы cookie
Иногда вам может потребоваться выполнить HTTP-запрос с определенными файлами cookie для доступа к удаленному ресурсу или для отладки проблемы.
По умолчанию при запросе ресурса с помощью curl файлы cookie не отправляются и не сохраняются.
Чтобы отправить файлы cookie на сервер, используйте переключатель -b за которым следует имя файла, содержащего файлы cookie, или строку.
Например, чтобы загрузить rpm-файл Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm вам необходимо передать файл cookie с именем oraclelicense со значением a :
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm
Использование прокси
curl поддерживает различные типы прокси, включая HTTP, HTTPS и SOCKS. Для передачи данных через прокси-сервер используйте параметр -x ( —proxy ), за которым следует URL-адрес прокси.
Следующая команда загружает указанный ресурс с помощью прокси на 192.168.44.1 порт 8888 :
curl -x 192.168.44.1:8888 http://linux.com/
Если прокси-сервер требует аутентификации, используйте параметр -U ( —proxy-user ), за которым следует имя пользователя и пароль, разделенные двоеточием ( user:password ):
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
Выводы
curl — это инструмент командной строки, который позволяет передавать данные с удаленного хоста или на него. Это полезно для устранения неполадок, загрузки файлов и многого другого.
Примеры, показанные в этом руководстве, просты, но демонстрируют наиболее часто используемые параметры curl и призваны помочь вам понять, как работает команда curl .
Для получения дополнительной информации о curl посетите страницу документации по Curl .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.