ѕодписывайтесь на наш YouTube - канал :)

ћерион Ќетворкс

4 минуты чтени€

¬ середине 1990-х годов, когда »нтернет еще только начинал развиватьс€, шведский программист по имени ƒаниэль —тенберг начал проект, который в конечном итоге превратилс€ в то, что мы сегодн€ знаем, как Curl. ѕервоначально он стремилс€ разработать бота, который бы периодически загружал курсы валют с веб-страницы и предоставл€л пользовател€м IRC эквиваленты шведских крон в долларах —Ўј. ѕроект процветал, добавл€лись новые протоколы и функции, и в конце концов мы получили тот функционал, который имеем сейчас.


ѕосмотреть версию curl

ќпции -V или --version будут возвращать не только версию, но также поддерживаемые протоколы и функции в текущей версии.

$ curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets

—качать файл

≈сли вы хотите загрузить файл, вы можете использовать curl с опци€ми -O или -o. ѕервый сохранит файл в текущем рабочем каталоге с тем же именем, что и в удаленном местоположении, тогда как второй позвол€ет вам указать другое им€ файла и/или местоположение.

$ curl -O http://merionet.ru/yourfile.tar.gz # Save as yourfile.tar.gz
$ curl -o newfile.tar.gz http:// merionet.ru /yourfile.tar.gz # Save as newfile.tar.gz

¬озобновить прерванную загрузку

≈сли загрузка по какой-либо причине была прервана (например, с помощью Ctrl + c), вы можете возобновить ее очень легко. »спользование -C - (тире C, пробел, тире) указывает curl возобновить загрузку с того места, где она остановилась.

$ curl -C - -O http://merionet.ru/yourfile.tar.gz

—качать несколько файлов

— помощью следующей команды вы сразу загрузите info.html и about.html с http://merionet.ru и http://wiki.merionet.ru соответственно.

$ curl -O http://merionet.ru/info.html -O http://wiki.merionet.ru/about.html

—качать URL из файла

≈сли вы комбинируете curl с xargs, вы можете загружать файлы из списка URL-адресов в файле.

$ xargs -n 1 curl -O < listurls.txt

»спользовать прокси с аутентификацией или без нее

≈сли вы находитесь за прокси-сервером, прослушивающим порт 8080 на proxy.yourdomain.com, сделайте это:

$ curl -x proxy.merionet.ru:8080 -U user:password -O http://merionet.ru/yourfile.tar.gz

где вы можете пропустить -U user: пароль, если ваш прокси не требует аутентификации.


«аголовки запроса HTTP

«аголовки HTTP позвол€ют удаленному веб-серверу отправл€ть дополнительную информацию о себе вместе с фактическим запросом. Ёто предоставл€ет клиенту подробную информацию о том, как обрабатываетс€ запрос.

„тобы запросить заголовки HTTP с сайта, выполните:

$ curl -I www.merionet.ru

Ёта информаци€ также доступна в инструментах разработчика вашего браузера.


—делать запрос POST с параметрами

—ледующа€ команда отправит параметры firstName и lastName вместе с соответствующими значени€ми на https://merionet.ru/info.php.

$ curl --data "firstName=John&lastName=Doe" https://merionet.ru/info.php.

¬ы можете использовать этот совет дл€ имитации поведени€ обычной формы HTML.


«агрузка файлов с FTP-сервера с аутентификацией или без нее

≈сли удаленный FTP-сервер ожидает подключени€ по адресу ftp://yourftpserver, следующа€ команда загрузит yourfile.tar.gz в текущий рабочий каталог.

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz

где вы можете пропустить -u username: password, если FTP-сервер разрешает анонимный вход.


«агрузить файлы на FTP-сервер с аутентификацией или без

„тобы загрузить локальный файл mylocalfile.tar.gz в ftp://yourftpserver с помощью curl, выполните:

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

”казание пользовательского агента

ѕользовательский агент €вл€етс€ частью информации, котора€ отправл€етс€ вместе с HTTP-запросом. Ёто указывает, какой браузер клиент использовал, чтобы сделать запрос.

$ curl -I http://localhost --user-agent "New web browser"

’ранение Cookies

’отите узнать, какие файлы cookie загружаютс€ на ваш компьютер, когда вы заходите на https://www.cnn.com? »спользуйте следующую команду, чтобы сохранить их в cnncookies.txt. «атем вы можете использовать команду cat дл€ просмотра файла.

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

ќтправить файлы cookie сайта

¬ы можете использовать файлы cookie, полученные в последнем совете, при последующих запросах к тому же сайту.

$ curl --cookie cnncookies.txt https://www.cnn.com

»зменить разрешение имени

≈сли вы веб-разработчик и хотите протестировать локальную версию merionet.ru, прежде чем запускать ее в живую версию, вы можете настроить разрешение curl http://www.merionet.ru дл€ своего локального хоста следующим образом:

$ curl --resolve www.merionet.ru:80:localhost http://www.merionet.ru/

“аким образом, запрос к http://www.merionet.ru скажет curl запрашивать сайт у localhost вместо использовани€ DNS или файла /etc /hosts.


ќграничить скорость загрузки

„тобы предотвратить потерю пропускной способности, вы можете ограничить скорость загрузки до 100  Ѕ/с следующим образом.

$ curl --limit-rate 100K http://merionet.ru/yourfile.tar.gz -O

ѕолезна ли ¬ам эта стать€?