Разное

Curl cmd: Run cURL commands from Windows console

Содержание

11 примеров использование команд cURL в режиме реального времени

cURL — инструмент командной строки для получения или отправки данных с использованием синтаксиса URL.

Если вы работаете в службе поддержки, то должны уметь использовать команды cURL для устранения неполадок веб-приложений. cURL — кроссплатформенная утилита для Windows, MAC и UNIX.
Ниже приведены некоторые часто используемые примеры синтаксиса.

Если вы работаете в UNIX-системе и пытаетесь подключиться к внешнему URL-адресу, то сначала проверьте наличие доступа к ресурсу через curl. Для этого используйте следующую команду:

Если нужно сохранить содержимое URL или URI в конкретном файле, используйте следующий синтаксис:

# curl yoururl.com > yoururl.html

Например:

[root@localhost]# curl 74.125.68.100 >/tmp/google.html

Приведенный выше пример сохранит все содержимое с хоста 74.125.68.100 в файл /tmp/google.html.

Если хотите удостовериться, что получаете ожидаемый заголовок запроса и ответа, используйте следующую команду:

например:

[root@localhost  ]# curl -v 74.125.68.100   
* About to connect() to 74.125.68.100 port 80 (#0)   
*   Trying 74.125.68.100...   
* Connected to 74.125.68.100 (74.125.68.100) port 80 (#0)   
> GET / HTTP/1.1   
> User-Agent: curl/7.29.0   
>Host: 74.125.68.100   
>Accept: */*   
>< HTTP/1.1 200 OK   
<Date: Sun, 18 Jan 2015 06:02:58 GMT   
<Expires: -1   
< Cache-Control: private, max-age=0   
< Content-Type: text/html; charset=ISO-8859-1   
< Set-Cookie: NID=67=EZH_o3sPvCSnxzVatz21OHv_; 
expires=Mon, 20-Jul-2015 06:02:58 GMT; 
path=/; 
domain=.; HttpOnly
< P3P: CP="This is not a P3P policy! 
See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for moreinfo."   
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN   
<Alternate-Protocol: 80:quic,p=0.02   
<Accept-Ranges: none
<Vary: Accept-Encoding
<Transfer-Encoding: chunked

Если нужно узнать, сколько времени требуется для загрузки с определенной скоростью, то используйте следующую команду:

# curl –-limit-rate 2000B

например:

# curl –-limit-rate 2000B 74.125.68.100

Если необходимо проверить, можно ли использовать прокси-сервер, примените следующий синтаксис:

# curl --proxyyourproxy:port http://yoururl.com

Для устранения конкретной проблемы можно использовать Curl, чтобы вставить в header свои данные. Рассмотрим следующий пример запроса с Content-Type:

# curl --header 'Content-Type: application/json' http://yoururl.com

Мы просим curl передать Content-Type в качестве application / json в заголовок запроса.

Вы можете добавить заголовок к запросу с помощью синтаксиса — header.

# curl –-header “X-CustomHeader: GeekFlare” http://yoururl.com

например:

[root@localhost]# curl -v --header "X-CustomHeader: GeekFlare" 74.125.68   
* About to connect() to 74.125.68.100 port 80 (#0)   
*   Trying 74.125.68.100...   
* Connected to 74.125.68.100 (74.125.68.100) port 80 (#0)   
> GET / HTTP/1.1   
> User-Agent: curl/7.29.0   
>Host: 74.125.68.100   
>Accept: */*   
> X-CustomHeader: GeekFlare
>< HTTP/1.1 200 OK   
<Date: Sun, 18 Jan 2015 08:30:25 GMT   
<Expires: -1   
< Cache-Control: private, max-age=0   
< Content-Type: text/html; charset=ISO-8859-1   
< Set-Cookie: NID=67=CkzDX-zTtWA0d9M1QVG4O3Im; 
expires=Mon, 20-Jul-2015 08:30:25 GMT; 
path=/; domain=.; HttpOnly
< P3P: CP="This is not a P3P policy! 
See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for moreinfo."   
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN   
<Alternate-Protocol: 80:quic,p=0.02   
<Accept-Ranges: none
<Vary: Accept-Encoding
<Transfer-Encoding: chunked

Если вы хотите быстро проверить заголовок ответа, то для этого можно использовать следующий синтаксис.

# curl --head http://yoururl.com

Пример:

[root@localhost]# curl -I 74.125.68.100   
HTTP/1.1 200 OK   
Date: Sun, 18 Jan 2015 08:31:22 GMT   
Expires: -1   
Cache-Control: 
private, max-age=0   
Content-Type: text/html; charset=ISO-8859-1   
Set-Cookie: NID=67=SpnXKTDUhw7QGakIeLxmDSF; 
expires=Mon, 20-Jul-2015 08:31:22 GMT; path=/; domain=.; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for moreinfo."   
Server: gws   X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN   
Alternate-Protocol: 80:quic,p=0.02   
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding
[root@localhost  ]#

Если необходимо получить доступ к https URL-адресу, который выдает ошибку сертификата из-за несоответствия имени хоста, можно использовать следующий синтаксис.

curl --insecure https://yoururl.com

Чтобы подключиться к URL- адресу только по протоколу SSL V2 / V3 или TLS,используйте следующий синтаксис.

Для подключения с использованием SSLV2:

# curl --sslv2 https://yoururl.com

Для подключения с использованием SSLV3:

# curl --sslv3 https://yoururl.com

Для подключения через TLS:

# curl --tlsv1 https://yoururl.com

С помощью cURL можно загрузить файл с ftp-сервера, указав имя пользователя и пароль.

# curl -u user:password -O ftp://ftpurl/style.css

Всегда можно использовать «-v» с любым синтаксисом для вывода в подробном режиме.

Да, это возможно. Вы можете выполнить cURL удаленно с помощью следующих инструментов.
Online CURL — компактный инструмент для извлечения URL-адреса онлайн и добавления следующих параметров.

--connect-timeout
--cookie
--data
--header
--head
--location
--max-time
--proxy
--request
--user
--url
--user-agent

Пример вывода:

cURL command line builder–позволяет создать команду cURL, с помощью которой можно ввести информацию в пользовательский интерфейс.

cURL — полезная утилита для устранения проблем с подключением в режиме реального времени.

Данная публикация представляет собой перевод статьи «11 cURL Command Usage with Real-Time Example» , подготовленной дружной командой проекта Интернет-технологии.ру

телеграм канал. Подпишись, будет полезно!

Установка cURL в Windows

1- Download cURL

Чтобы скачать 
cURL вам нужно перейти по следующему адресу:

  • https://curl.haxx.se/download.html

Существует много разных версий 
cURL для разных операционных систем, он может вас запутать с выбором версий. Вам стоит нажать на ссылку 
«curl Download Wizard», которая поможет вам легко найти подходящую версию (Смотрите изображение ниже).

Далее нажмите на ссылку 
«curl executable».

если ваша операционная система это 
Windows 64bit выберите 
Win64 и нажмите на 
Select, наоборот если ваш 
Windows является 
32bit выберите 
Windows/Win32.

Wizard отображает для вас список подходящих версий. Здесь я скачиваю первую версию в списке.

Результат скачивания:

2- Установка cURL

После того, как вы скачали 
cURL, вам не нужно его устанавливать, нужно просто извлечь его в определенную папку.

Открыть папку 
bin в 
cURL, и запустить файл 
curl-ca-bundle.crt для установки сертификата безопасности (Security Certificate).

3- Использование cURL

Открыть окно 
CMD и
CD к папке 
bin у
cURL.

Выполнить следующую команду на 
cURL чтобы получить информацию страницы 
google.com.


curl   google.com

Смотреть детальную инструкцию использования 
cURL:

  • TODO Link!

4- Объявить переменную среды для cURL

5 основных примеров команды Curl

cURL очень полезный инструмент командной строки для передачи данных от или к серверу. Curl поддерживает различные протоколы, такие как FILE, HTTP, HTTPS, IMAP, IMAPS, LDAP, DICT, LDAPS, TELNET, FTP, FTPS, GOPHER, RTMP, RTSP, SCP, SFTP, POP3, POP3S, SMB, SMBS, SMTP, SMTPS, и TFTP.

cURL может быть использован самыми различными и интересными способами. С помощью этого инструмента вы можете скачать, загрузить файлы и управлять ими, проверить свой адрес электронной почты, или даже обновлять свой статус на некоторых веб – сайтах социальных медиа или проверить погоду на улице. В этой статье мы рассмотрим пять наиболее полезных и основных видов использования инструмента cURL на любой Linux VPS.

1. Проверьте URL

Одним из наиболее распространенных и простейших применений cURL печатает саму команду, а затем URL, который вы хотите проверить

curl https://domain.ru

 

Эта команда будет отображать содержимое URL на вашем терминале

2. Сохраните вывод URL в файл

Выход команды cURL может легко сохранить в файл, добавив опцию -o в команде, как показано ниже

curl -o website https://domain.ru

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 41793    0 41793    0     0   275k      0 --:--:-- --:--:-- --:--:--  2.9M

 

В этом примере, вывод будет сохранен в файл с именем ‘website’ в текущем рабочем каталоге.

3. Загрузка файлов с помощью Curl

Вы можете скачивать файлы при помощи Curl, путем добавления опции -o к команде. Он используется для сохранения файлов на локальном сервере с теми же именами, как и на удаленном сервере

curl -O https://domain.ru/file.zip

 

В этом примере архив ‘file.zip’ будет загружен в текущий рабочий каталог.

Вы также можете загрузить файл с другим именем, добавив опцию -o к cURL.

curl -o archive.zip https://domain.ru/file.zip

 

Таким образом, архив ‘file.zip’ будет загружен и сохранен как ‘Archive.zip’.

cURL может быть также использован для загрузки нескольких файлов одновременно, как показано в приведенном ниже примере

curl -O https://domain.ru/file.zip -O https://domain.com/file2.zip

 

Curl также можно использовать для загрузки файлов надежно через SSH с помощью следующей команды

curl -u user sftp://server.domain.ru/path/to/file

 

Обратите внимание, что вы должны использовать полный путь к файлу, который требуется загрузить

4. Взять информацию из заголовка HTTP веб-сайта

Вы можете легко получить информацию заголовка HTTP из любого веб-сайта, добавив опцию -I (‘i’) к cURL.

curl -I http://domain.ru

HTTP/1.1 200 OK
Date: Sun, 16 Oct 2016 23:37:15 GMT
Server: Apache/2.4.23 (Unix)
X-Powered-By: PHP/5.6.24
Connection: close
Content-Type: text/html; charset=UTF-8

 

5. Доступ к FTP-серверу

Чтобы получить доступ к FTP-серверу с помощью Curl, надо использовать следующую команду

curl ftp://ftp.domain.ru --user username:password

 

Curl будет подключаться к FTP-серверу и выведет список всех файлов и каталогов в домашнем каталоге пользователя

Вы можете скачать файл с помощью FTP

curl ftp://ftp.domain.ru/file.zip --user username:password

 

и загрузить файл на сервер FTP

curl -T file.zip ftp://ftp.domain.ru/ --user username:password

 

Вы можете проверить страницу Curl вручную, чтобы увидеть все доступные опции cURL и его функциональные возможности

man curl

 

PS. Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях с помощью кнопок ниже или просто оставьте комментарий. Благодарю.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Инструменты командной строки для веб-разработчика / Хабр

Жизнь веб-разработчика омрачена сложностями. Особенно неприятно, когда источник этих сложностей неизвестен. То ли это проблема с отправкой запроса, то ли с ответом, то ли со сторонней библиотекой, то ли внешний API глючит? Существует куча различных прилад, способных упростить нам жизнь. Вот некоторые инструменты командной строки, которые лично я считаю бесценными.

cURL
cURL — программа для передачи данных по различным протоколам, похожая на wget. Основное отличие в том, что по умолчанию wget сохраняет в файл, а cURL выводит в командную строку. Так можно очень просто посмотреть контент веб-сайта. Например, вот как быстро получить свой текущий внешний IP:

$ curl ifconfig.me
93.96.141.93

Параметры -i (показывать заголовки) и -I (показывать только заголовки) делают cURL отличным инструментом для дебаггинга HTTP-ответов и анализа того, что конкретно сервер вам отправляет:

$ curl -I habrahabr.ru
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 18 Aug 2011 14:15:36 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-alive: timeout=25

Параметр -L тоже полезный, он заставляет cURL автоматически следовать по редиректам. cURL поддерживает HTTP-аутентификацию, cookies, туннелирование через HTTP-прокси, ручные настройки в заголовках и многое, многое другое.

Siege
Siege — инструмент для нагрузочного тестирования. Плюс, у него есть удобная опция -g, которая очень похожа на curl –iL, но вдобавок показывает вам ещё и заголовки http-запроса. Вот пример с google.com (некоторые заголовки удалены для краткости):

$ siege -g www.google.com
GET / HTTP/1.1
Host: www.google.com
User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)
Connection: close
 
HTTP/1.1 302 Found
Location: http://www.google.co.uk/
Content-Type: text/html; charset=UTF-8
Server: gws
Content-Length: 221
Connection: close
 
GET / HTTP/1.1
Host: www.google.co.uk
User-Agent: JoeDog/1.00 [en] (X11; I; Siege 2.70)
Connection: close
 
HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
X-XSS-Protection: 1; mode=block
Connection: close

Но для чего Siege действительно великолепно подходит, так это для нагрузочного тестирования. Как и апачевский бенчмарк ab, он может отправить множество параллельных запросов к сайту и посмотреть, как он справляется с трафиком. В следующем примере показано, как мы тестируем Google с помощью 20 запросов в течение 30 секунд, после чего выводится результат:

$ siege -c20 www.google.co.uk -b -t30s
...
Lifting the server siege...      done.
Transactions:                    1400 hits
Availability:                 100.00 %
Elapsed time:                  29.22 secs
Data transferred:              13.32 MB
Response time:                  0.41 secs
Transaction rate:              47.91 trans/sec
Throughput:                     0.46 MB/sec
Concurrency:                   19.53
Successful transactions:        1400
Failed transactions:               0
Longest transaction:            4.08
Shortest transaction:           0.08

Одна из самых полезных функций Siege — то, что он может работать не только с одним адресом, но и со списком URL’ов из файла. Это отлично подходит для нагрузочного тестирования, потому что можно моделировать реальный трафик на сайте, а не просто жать один и тот же URL снова и снова. Например, вот как использовать Siege, чтобы нагрузить сервер, используя адреса из вашего лога Apache:

$ cut -d ' ' -f7 /var/log/apache2/access.log > urls.txt
$ siege -c<concurreny rate> -b -f urls.txt

Ngrep
Для серьёзного анализа трафика существует Wireshark с тысячами настроек, фильтров и конфигураций. Есть также версия для командной строки tshark. Но для простых задач функционал Wireshark я считаю избыточным. Так что до тех пор, пока мне не нужно мощное оружие, я использую ngrep. Он позволяет делать с сетевыми пакетами то же самое, что grep делает с файлами.

Для веб-трафика вы почти всегда захотите использовать параметр -W, чтобы сохранить форматирование строк, а также параметр -q, который скрывает избыточную информацию о неподходящих пакетах. Вот пример команды, которая перехватывает все пакеты с командой GET или POST:

ngrep -q -W byline "^(GET|POST) .*"

Вы можете добавить дополнительный фильтр для пакетов, например, по заданному хосту, IP-адресу или порту. Вот фильтр для всего входящего и исходящего трафика на google.com, порт 80, который содержит слово “search”.

ngrep -q -W byline "search" host www.google.com and port 80

Введение в curl и его установка

Toggle navigation

  Курс по документированию API

  • Nav
  • GitHub
  • Original course
  • Feedback

    • ‘,
      noResultsText: »,
      limit: 10,
      fuzzy: true,
      })

    • Learnapidoc-ru 2.0
    • Release notes

      • Release notes
    • Введение в REST API

      • О модуле
      • Коротко о курсе
      • Обзор курса
      • Для чего этот курс
      • Об авторе курса
      • Знакомство с документацией REST API
      • Что такое REST API
      • Видео презентации
      • Презентации курса
      • Практические занятия
      • Практика «Определение цели»
    • Используем API как разработчики

      • О модуле
      • Сценарий использования API сервиса прогноза погоды
      • Получение ключей авторизации
      • Отправка запросов в Postman
      • Введение и установка curl
      • Создание curl запроса
      • Понимание curl
      • Использование методов с curl
      • Анализ JSON ответов
      • Изучение полезных данных JSON ответа
      • Доступ и вывод на страницу определенного значения JSON
      • Погружение в точечную нотацию
    • Документирование конечных точек

      • О модуле
      • Документирование новой конечной точки
      • Обзор пошагового описания API ссылки
      • Шаг 1 «Описание ресурса»
      • Шаг 2 «Конечные точки и методы»
      • Шаг 3 «Параметры»
      • Шаг 4 «Пример запроса»
      • Шаг 5 «Пример и схема ответа»
      • Собираем все вместе
      • Практическое занятие «Что не так в разделе API?»
      • Практическое занятие «Поиск open-source проекта»
      • Практическое занятие «Оценка ключевых элементов API документации»
    • Спецификация OpenAPI и Swagger

      • О модуле
      • Обзор форматов спецификаций REST API
      • Знакомство со спецификациями OpenAPI и Swagger
      • Работа в YAML
      • Обзор руководства OpenAPI 3.0
      • Шаг 1 «Объект openapi»
      • Шаг 2 «Объект info»
      • Шаг3 «Объект servers»

    curl — Как использовать

    НАЗВАНИЕ

    curl — передать URL-адрес

    ОБЗОР

    curl [параметры / URL]

    ОПИСАНИЕ

    curl — это инструмент для передачи данных с сервера или на сервер с использованием одного из поддерживаемых протоколов (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP. , RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET и TFTP). Команда предназначена для работы без взаимодействия с пользователем.

    curl предлагает множество полезных трюков, таких как поддержка прокси, аутентификация пользователей, загрузка FTP, HTTP-сообщения, SSL-соединения, файлы cookie, возобновление передачи файлов, Metalink и многое другое.Как вы увидите ниже, от количества функций у вас закружится голова!

    curl поддерживается libcurl для всех функций, связанных с передачей данных. Подробности смотрите в libcurl (3).

    URL

    Синтаксис URL-адреса зависит от протокола. Вы найдете подробное описание в RFC 3986.

    Вы можете указать несколько URL-адресов или частей URL-адресов, написав наборы частей в фигурных скобках и указав URL-адрес в кавычках, как в:

    «http: // site. {One, two, three} .com»

    или вы можете получить последовательности буквенно-цифровых серий, используя [] как в:

    «ftp: // ftp.example.com/file[1-100 visible.txt »

    «ftp://ftp.example.com/file[001-100 impression.txt» (с ведущими нулями)

    «ftp://ftp.example.com/file[a-zpting.txt»

    Вложенные последовательности не поддерживаются, но вы можете использовать несколько рядом друг с другом:

    «http://example.com/archive[1996–1999–/vol[1–4 ]/part{a,b,c}.html»

    В командной строке можно указать любое количество URL-адресов. Они будут извлекаться последовательно в указанном порядке. Вы можете указать параметры командной строки и URL-адреса в любом порядке в командной строке.

    Вы можете указать счетчик шагов для диапазонов, чтобы получать каждое N-е число или букву:

    «http://example.com/file[1-100:10 impression.txt»

    «http://example.com/file[a-z:2 impression.txt»

    При использовании последовательностей [] или {} при вызове из командной строки вам, вероятно, придется заключить полный URL-адрес в двойные кавычки, чтобы оболочка не мешала ему. То же самое относится и к другим специальным символам, например, ‘&’, ‘?’ а также ‘*’.

    Укажите индекс зоны IPv6 в URL-адресе с экранированным знаком процента и именем интерфейса.Как в

    «http: // [fe80 :: 3% 25eth0] /»

    Если вы укажете URL без префикса protocol: //, curl попытается угадать, какой протокол вам нужен. Затем он по умолчанию будет использовать HTTP, но попробуйте другие протоколы на основе часто используемых префиксов имени хоста. Например, для имен хостов, начинающихся с «ftp». curl предполагает, что вы хотите говорить по FTP.

    curl сделает все возможное, чтобы использовать то, что вы ему передаете, в качестве URL-адреса. Он никоим образом не пытается подтвердить его как синтаксически правильный URL, но вместо этого очень либерален в отношении того, что он принимает.

    curl будет пытаться повторно использовать соединения для передачи нескольких файлов, так что получение большого количества файлов с одного сервера не приведет к многократным соединениям / рукопожатиям. Это увеличивает скорость. Конечно, это делается только для файлов, указанных в одной командной строке, и не может использоваться между отдельными вызовами curl.

    ПРОТОКОЛЫ

    curl поддерживает множество протоколов или в терминах URL: схем. Ваша конкретная сборка может не поддерживать их все.

    DICT

    Позволяет искать слова с помощью онлайн-словарей.

    ФАЙЛ

    Чтение или запись локальных файлов. curl не поддерживает удаленный доступ к URL-адресу file: //, но при работе в Microsoft Windows с использованием собственного UNC-подхода будет работать.

    FTP (S)

    curl поддерживает протокол передачи файлов с множеством настроек и рычагов. С использованием TLS или без него.

    Гофер

    Получить файлы.

    HTTP (S)

    curl поддерживает HTTP с множеством опций и вариаций. Он может говорить по протоколу HTTP версии 0.9, 1.0, 1.1, 2 и 3 в зависимости от параметров сборки и правильных параметров командной строки.

    IMAP (S)

    Используя протокол чтения почты, curl может «загружать» письма за вас. С использованием TLS или без него.

    LDAP (S)

    curl может выполнять поиск в каталогах за вас, с TLS или без него.

    млн. Кв.

    curl поддерживает MQTT версии 3. Загрузка через MQTT равняется «подписке» на тему, в то время как загрузка / публикация равняется «публикации» в теме. Поддержка MQTT является экспериментальной, а MQTT на основе TLS не поддерживается (пока).

    POP3 (S)

    Скачивание с сервера pop3 означает получение почты. С использованием TLS или без него.

    RTMP (S)

    Протокол обмена сообщениями в реальном времени в основном используется для потоковой передачи мультимедиа на сервер, и curl может его загрузить.

    RTSP

    curl поддерживает загрузку RTSP 1.0.

    SCP

    curl поддерживает передачу scp по SSH версии 2.

    SFTP

    curl поддерживает SFTP (черновик 5) через SSH версии 2.

    SMB (S)

    curl поддерживает SMB версии 1 для загрузки и скачивания.

    SMTP (S)

    Загрузка содержимого на SMTP-сервер означает отправку электронного письма. С TLS или без него.

    ТЕЛНЕТ

    Указание curl получить URL-адрес telnet запускает интерактивный сеанс, в котором он отправляет прочитанное на стандартный ввод и выводит то, что отправляет сервер.

    TFTP

    curl может выполнять загрузки и выгрузки по TFTP.

    СЧЕТЧИК ПРОГРЕССА

    curl обычно отображает индикатор выполнения во время операций, показывая объем переданных данных, скорость передачи, приблизительное оставшееся время и т. Д.Индикатор выполнения отображает количество байтов, а скорость указывается в байтах в секунду. Суффиксы (k, M, G, T, P) имеют размер 1024. Например, 1 КБ — 1024 байта. 1M составляет 1048576 байт.

    curl отображает эти данные на терминал по умолчанию, поэтому, если вы вызываете curl для выполнения операции, и он собирается записать данные в терминал, он отключает индикатор выполнения, поскольку в противном случае он испортит индикатор выполнения микширования вывода и ответ данные.

    Если вам нужен индикатор выполнения для запросов HTTP POST или PUT, вам необходимо перенаправить вывод ответа в файл, используя перенаправление оболочки (>), -o, —output или подобное.

    Это не тот случай загрузки по FTP, поскольку эта операция не передает никаких данных ответа на терминал.

    Если вы предпочитаете индикатор выполнения вместо обычного индикатора, — #, —progress-bar — ваш друг. Вы также можете полностью отключить индикатор выполнения с помощью параметра -s, —silent.

    ОПЦИИ

    Опции начинаются с одного или двух тире. Многие параметры требуют рядом с собой дополнительного значения.

    Короткая форма опций с одним дефисом, например -d, может использоваться с пробелом или без него между ним и его значением, хотя пробел является рекомендуемым разделителем.Например, длинная форма с двойным тире, -d, —data, требует пробела между ней и ее значением.

    Параметры короткой версии, которые не нуждаются в дополнительных значениях, могут использоваться непосредственно рядом друг с другом, например, вы можете указать все параметры -O, -L и -v одновременно как -OLv.

    Как правило, все логические параметры включаются с помощью —option и снова отключаются с помощью —no-option. То есть вы используете то же имя опции, но с префиксом «no-». Однако в этом списке мы в основном перечисляем и показываем их версию —option.(Эта концепция с параметрами —no была добавлена ​​в 7.19.0. Ранее большинство параметров включались / выключались при повторном использовании одного и того же параметра командной строки.)

    —abstract-unix-socket <путь>

    (HTTP) Подключение через абстрактный сокет домена Unix вместо использования сети. Примечание: netstat показывает путь к абстрактному сокету с префиксом ‘@’, однако аргумент не должен иметь этого ведущего символа.

    Добавлено в 7.53.0.

    —alt-svc <имя файла>

    (HTTPS) ВНИМАНИЕ: это экспериментальная опция.Не использовать в производстве.

    Эта опция включает синтаксический анализатор alt-svc в curl. Если имя файла указывает на существующий файл кэша alt-svc, он будет использован. После завершения передачи кеш будет снова сохранен с именем файла, если он был изменен.

    Укажите «» имя файла (нулевой длины), чтобы избежать загрузки / сохранения, и пусть curl просто обрабатывает кеш в памяти.

    Если эта опция используется несколько раз, curl загрузит содержимое из всех файлов, но последний из них будет использоваться для сохранения.

    Добавлено в 7.64.1.

    —аньяут

    (HTTP) Сообщает curl, чтобы он сам определил метод аутентификации и использовал наиболее безопасный, поддерживаемый удаленным сайтом. Для этого сначала выполняется запрос и проверяются заголовки ответов, что, возможно, вызывает дополнительный круговой обход сети. Это используется вместо установки определенного метода аутентификации, который вы можете сделать с помощью —basic, —digest, —ntlm и —negotiate.

    Использование —anyauth не рекомендуется, если вы выполняете загрузку со стандартного ввода, поскольку для этого может потребоваться двойная отправка данных, а затем клиент должен иметь возможность перемотки назад.Если возникнет необходимость при загрузке со стандартного ввода, операция загрузки завершится ошибкой.

    Используется вместе с -u, —user.

    См. Также —proxy-anyauth, —basic и —digest.

    -a, —append

    (FTP SFTP) При использовании при загрузке curl добавляется к целевому файлу вместо его перезаписи. Если удаленного файла не существует, он будет создан. Обратите внимание, что этот флаг игнорируется некоторыми серверами SFTP (включая OpenSSH).

    — базовый

    (HTTP) Указывает curl использовать базовую аутентификацию HTTP с удаленным хостом.Это значение по умолчанию, и эта опция обычно бессмысленна, если вы не используете ее для переопределения ранее установленной опции, которая устанавливает другой метод аутентификации (например, —ntlm, —digest или —negotiate).

    Используется вместе с -u, —user.

    См. Также —proxy-basic.

    —cacert <файл>

    (TLS) Указывает curl использовать указанный файл сертификата для проверки однорангового узла. Файл может содержать несколько сертификатов CA. Сертификат (ы) должен быть в формате PEM. Обычно curl создается для использования для этого файла по умолчанию, поэтому этот параметр обычно используется для изменения этого файла по умолчанию.

    curl распознает переменную среды с именем «CURL_CA_BUNDLE», если она установлена, и использует данный путь в качестве пути к набору сертификатов CA. Эта опция переопределяет эту переменную.

    Версия curl для Windows будет автоматически искать файл сертификатов CA с именем ´curl-ca-bundle.crt´, либо в том же каталоге, что и curl.exe, либо в текущем рабочем каталоге, либо в любой папке по пути PATH .

    Если curl построен на основе библиотеки NSS SSL, модуль NSS PEM PKCS # 11 (libnsspem.поэтому) должен быть доступен для правильной работы этой опции.

    (только для iOS и macOS) Если curl создан для Secure Transport, то этот параметр поддерживается для обратной совместимости с другими механизмами SSL, но не должен быть установлен. Если этот параметр не установлен, то curl будет использовать сертификаты в системе и пользовательскую цепочку ключей для проверки однорангового узла, что является предпочтительным методом проверки цепочки сертификатов однорангового узла.

    (только Schannel) Эта опция поддерживается для Schannel в Windows 7 или новее с libcurl 7.60 или новее. Эта опция поддерживается для обратной совместимости с другими механизмами SSL; вместо этого рекомендуется использовать хранилище корневых сертификатов Windows (по умолчанию для Schannel).

    Если эта опция используется несколько раз, будет использован последний.

    —capath <каталог>

    (TLS) Указывает curl использовать указанный каталог сертификатов для проверки однорангового узла. Можно указать несколько путей, разделив их знаком «:» (например, «путь2: путь3: путь4»). Сертификаты должны быть в формате PEM, и если curl построен на OpenSSL, каталог должен быть обработан с помощью утилиты c_rehash, поставляемой с OpenSSL.Использование —capath может позволить curl на основе OpenSSL устанавливать SSL-соединения намного эффективнее, чем использование —cacert, если файл —cacert содержит много сертификатов CA.

    Если этот параметр установлен, значение capath по умолчанию будет проигнорировано, а если оно используется несколько раз, будет использоваться последнее.

    —серт-статус

    (TLS) Сообщает curl о необходимости проверки состояния сертификата сервера с помощью расширения TLS запроса состояния сертификата (также известного как сшивание OCSP).

    Если эта опция включена, и сервер отправляет недопустимый (например.г. expired), если ответ предполагает, что сертификат сервера был отозван или ответ вообще не получен, проверка не выполняется.

    В настоящее время это реализовано только в бэкэндах OpenSSL, GnuTLS и NSS.

    Добавлено в версии 7.41.0.

    —сертификационный <тип>

    (TLS) Сообщает curl, какой тип предоставлен c

    .

    Curl GET в строке CMD с пробелами в имени файла

    Переполнение стека

    1. Около
    2. Продукты

    3. Для команд
    1. Переполнение стека
      Общественные вопросы и ответы

    2. Переполнение стека для команд
      Где разработчики и технологи делятся частными знаниями с коллегами

    3. Вакансии
      Программирование и связанные с ним технические возможности карьерного роста

    4. Талант
      Нанимайте технических специалистов и создавайте свой бренд работодателя

    5. Реклама
      Обратитесь к разработчикам и технологам со всего мира

    6. О компании

    Загрузка…

    .

    curl — Урок

    Простое использование

    Получить главную страницу с веб-сервера Netscape:

      локон http://www.netscape.com/
      

    Получите файл README из домашнего каталога пользователя на ftp-сервере funet:

      curl ftp://ftp.funet.fi/README
      

    Получить веб-страницу с сервера через порт 8000:

      завиток http://www.weirdserver.com:8000/
      

    Получить список каталогов FTP-сайта:

      curl ftp: // cool.haxx.se/
      

    Найдите определение слова curl из словаря:

      завиток dict: //dict.org/m: завиток
      

    Получить два документа одновременно:

      curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/
      

    Получить файл с сервера FTPS:

      curl ftps: //files.are.secure.com/secrets.txt
      

    или используйте более подходящий способ FTPS для получения того же файла:

      curl --ftp-ssl ftp: // файлы.are.secure.com/secrets.txt
      

    Получить файл с SSH-сервера с помощью SFTP:

      curl -u имя пользователя sftp: //example.com/etc/issue
      

    Получить файл с SSH-сервера, используя SCP, используя закрытый ключ (не
    защищен паролем) для аутентификации:

      curl -u имя пользователя: --key ~ / .ssh / id_rsa scp: //example.com/~/file.txt
      

    Получить файл с SSH-сервера, используя SCP, используя закрытый ключ
    (защищен паролем) для аутентификации:

      curl -u имя пользователя: --key ~ /.ssh / id_rsa --pass private_key_password
    scp: //example.com/~/file.txt
      

    Получить главную страницу с веб-сервера IPv6:

      curl "http: // [2001: 1890: 1112: 1 :: 20] /"
      

    Получить файл с SMB-сервера:

      curl -u "домен \ имя пользователя: пароль" smb: //server.example.com/share/file.txt
      

    Загрузить в файл

    Получить веб-страницу и сохранить в локальном файле с определенным именем:

      curl -o thatpage.html http: // www.netscape.com/
      

    Получить веб-страницу и сохранить в локальном файле, сделать так, чтобы локальный файл получил имя
    удаленный документ (если в URL-адресе не указана часть имени файла, это будет
    не удалось):

      curl -O http://www.netscape.com/index.html
      

    Извлечь два файла и сохранить их с удаленными именами:

      curl -O www.haxx.se/index.html -O curl.haxx.se/download.html
      

    Использование паролей

    FTP

    Для ftp-файлов, используя имя + пароль, включите их в URL-адрес, например:

      curl ftp: // name: passwd @ machine.домен: порт / полный / путь / к / файлу
      

    или укажите их с помощью флага -u, например

      curl -u имя: passwd ftp: //machine.domain: порт / полный / путь / к / файлу
      

    FTPS

    Это похоже на FTP, но вы также можете указать и использовать специфичный для SSL
    варианты сертификатов и др.

    Обратите внимание, что использование префикса FTPS: // является «неявным» способом, как описано в
    стандартов, в то время как рекомендуемый «явный» способ выполняется с использованием FTP: // и
    --ftp-ssl опция.

    SFTP / SCP

    Это похоже на FTP, но вы можете использовать опцию --key , чтобы указать
    закрытый ключ для использования вместо пароля. Обратите внимание, что закрытый ключ может сам
    быть защищенным паролем, который не связан с паролем входа в
    удаленная система; этот пароль задается с помощью опции --pass .
    Обычно curl автоматически извлекает открытый ключ из закрытого.
    файл, но в тех случаях, когда curl не имеет надлежащей поддержки библиотеки,
    соответствующий файл открытого ключа должен быть указан с помощью параметра --pubkey .

    HTTP

    Curl также поддерживает пользователя и пароль в URL-адресах HTTP, поэтому вы можете выбрать файл
    нравится:

      curl http: // имя: [email protected]/full/path/to/file
      

    или указать пользователя и пароль отдельно, как в

      curl -u имя: пароль http: //machine.domain/full/path/to/file
      

    HTTP предлагает множество различных методов аутентификации и поддерживает curl.
    несколько: базовый, дайджест, NTLM и согласование (SPNEGO). Не говоря уже о том, какой
    по умолчанию используется метод curl.Вы также можете попросить curl выбрать наиболее
    безопасные из тех, которые сервер принимает для данного URL, с помощью
    используя --anyauth .

    Примечание ! Согласно спецификации URL, URL-адреса HTTP не могут содержать пользователя
    и пароль, поэтому этот стиль не будет работать при использовании curl через прокси, даже
    хотя curl позволяет это в другое время. При использовании прокси вы должны использовать
    -u Стиль для пользователя и пароля.

    HTTPS

    Вероятно, наиболее часто используется с частными сертификатами, как описано ниже.

    Прокси

    curl поддерживает прокси-серверы HTTP и SOCKS с дополнительной аутентификацией.
    Он не имеет специальной поддержки для прокси-серверов FTP, так как нет
    стандарты для них, но все еще можно заставить работать со многими из них. Вы
    также может использовать прокси HTTP и SOCKS для передачи файлов на FTP и обратно
    серверы.

    Получите ftp-файл с помощью HTTP-прокси с именем my-proxy, который использует порт 888:

      curl -x my-proxy: 888 ftp://ftp.leachsite.com/README
      

    Получите файл с HTTP-сервера, который требует имени пользователя и пароля, используя
    тот же прокси, что и выше:

      curl -u пользователь: passwd -x my-proxy: 888 http: // www.взять это/
      

    Некоторые прокси требуют специальной аутентификации. Укажите с помощью -U, как указано выше:

      curl -U пользователь: passwd -x my-proxy: 888 http: //www.get.this/
      

    Список хостов и доменов, которые не используют прокси, через запятую, может быть
    указано как:

      curl --noproxy localhost, get.this -x my-proxy: 888 http: //www.get.this/
      

    Если прокси указан с --proxy1.0 вместо --proxy или -x , то
    curl будет использовать HTTP / 1.0 вместо HTTP / 1.1 для любых попыток CONNECT .

    curl также поддерживает прокси SOCKS4 и SOCKS5 с --socks4 и --socks5 .

    См. Также переменные среды, которые поддерживает Curl, которые предлагают дополнительные прокси.
    контроль.

    Большинство прокси-серверов FTP настроены так, чтобы они отображались как обычный FTP-сервер с
    с точки зрения клиента, со специальными командами для выбора удаленного FTP-сервера.
    curl поддерживает параметры -u , -Q и --ftp-account , которые можно использовать для
    настроить передачи через множество FTP-прокси.Например, файл можно загрузить
    на удаленный FTP-сервер с помощью FTP-прокси Blue Coat с параметрами:

      curl -u "[email protected] Имя пользователя-прокси: Remote-Pass"
      --ftp-account Proxy-Password --upload-file local-file
      ftp: //my-ftp.proxy.server: 21 / удаленный / загрузка / путь /
      

    См. Руководство для вашего FTP-прокси, чтобы определить форму, которую он ожидает настроить.
    передачи и параметр curl -v , чтобы точно узнать, что отправляет curl.

    Диапазоны

    HTTP 1.1 введены байтовые диапазоны. Используя это, клиент может запросить только
    одна или несколько частей указанного документа. Curl поддерживает это с помощью -r
    флаг.

    Получить первые 100 байт документа:

      curl -r 0-99 http: //www.get.this/
      

    Получить последние 500 байт документа:

      curl -r -500 http: //www.get.this/
      

    Curl также поддерживает простые диапазоны для файлов FTP. Тогда ты можешь только
    укажите начальную и конечную позицию.

    Получить первые 100 байт документа с помощью FTP:

      curl -r 0-99 ftp: //www.get.this/README
      

    Загрузка

    FTP / FTPS / SFTP / SCP

    Загрузить все данные со стандартного ввода на указанный сервер:

      curl -T - ftp://ftp.upload.com/myfile
      

    Загрузить данные из указанного файла, логин с пользователем и паролем:

      curl -T uploadfile -u пользователь: passwd ftp://ftp.upload.com/myfile
      

    Загрузите локальный файл на удаленный сайт и используйте имя локального файла в
    удаленный сайт тоже:

      curl -T uploadfile -u пользователь: passwd ftp: // ftp.upload.com/
      

    Загрузите локальный файл для добавления к удаленному файлу:

      curl -T локальный файл -a ftp://ftp.upload.com/remotefile
      

    Curl также поддерживает загрузку ftp через прокси, но только если прокси
    настроен для разрешения такого туннелирования. Если это так, вы можете запустить curl в
    мода похож на:

      curl --proxytunnel -x прокси: порт -T локальный файл ftp.upload.com
      

    SMB / SMBS

      curl -T файл.txt -u "домен \ имя пользователя: пароль"
      smb: //server.example.com/share/
      

    HTTP

    Загрузить все данные со стандартного ввода на указанный HTTP-сайт:

      curl -T - http://www.upload.com/myfile
      

    Обратите внимание, что HTTP-сервер должен быть настроен на прием PUT до этого.
    можно сделать успешно.

    Чтобы узнать о других способах загрузки данных HTTP, см. Раздел POST ниже.

    Подробная информация / отладка

    Если curl не работает там, где этого не должно быть, если серверы не пропускают вас, если
    вы не можете понять ответы: используйте флаг -v , чтобы получить подробную информацию
    получение.Curl будет выводить много информации и то, что он отправляет и получает в
    чтобы пользователь мог видеть все взаимодействия клиент-сервер (но он не покажет вам
    фактические данные).

      curl -v ftp://ftp.upload.com/
      

    Чтобы получить более подробную информацию и информацию о том, что делает curl, попробуйте использовать
    --trace или --trace-ascii с заданным именем файла для входа, например
    это:

      curl --trace trace.txt www.haxx.se
      

    Подробная информация

    Различные протоколы предоставляют разные способы получения подробной информации
    о конкретных файлах / документах.Чтобы завиток отображал подробную информацию о
    один файл, вы должны использовать опцию -I / --head . Он отображает все доступные
    информация об одном файле для HTTP и FTP. Информация HTTP — это намного больше
    обширный.

    Для HTTP вы можете получить информацию заголовка (то же, что и -I )
    показано перед данными с использованием -i / --include . Curl понимает
    -D / --dump-header опция при получении файлов как с FTP, так и с HTTP, и это
    затем сохранит заголовки в указанном файле.

    Сохраните заголовки HTTP в отдельном файле (в примере — headers.txt):

      curl --dump-header headers.txt curl.haxx.se
      

    Обратите внимание, что заголовки, хранящиеся в отдельном файле, могут быть очень полезны в более позднее время.
    если вы хотите, чтобы curl использовал файлы cookie, отправленные сервером. Подробнее об этом в
    раздел куки.

    POST (HTTP)

    С помощью curl легко публиковать данные. Это делается с помощью опции -d <данные> .
    Данные сообщения должны быть закодированы.

    Разместите простую гостевую книгу «имя» и «телефон».

      curl -d "name = Rafael% 20Sagula & phone = 3320780" http://www.where.com/guest.cgi
      

    Как разместить форму с помощью curl, урок №1:

    Найдите все теги в форме, которую вы хотите заполнить.

    Если есть «нормальный» пост, для поста используйте -d . -d занимает полный пост
    строка », имеющая формат

      <переменная1> = <данные1> & <переменная2> = <данные2> &...
      

    Имена ‘переменных’ — это имена, заданные с помощью "name =" в тегах ,
    а данные — это содержимое, которое вы хотите заполнить для входных данных. Данные
    должен быть правильно закодирован URL-адресом . Это означает, что вы заменяете пробел на + и что
    вы заменяете странные буквы на% XX, где XX — шестнадцатеричное представление
    кода ASCII письма.

    Пример:

    (страница расположена по адресу http://www.formpost.com/getthis/ )

      
    <имя входа = тип передачи = размер пароля = 10>

    Мы хотим войти в пользователя ‘foobar’ с паролем ‘12345’.

    Для публикации в это введите командную строку curl, например:

      curl -d "user = foobar & pass = 12345 & id = blablabla & ding = submit"
      http://www.formpost.com/getthis/post.cgi
      

    В то время как -d использует mime-тип application / x-www-form-urlencoded, обычно
    понимается CGI и подобными, curl также поддерживает более способные
    multipart / form-data тип.Последний тип поддерживает такие вещи, как загрузка файлов.

    -F принимает такие параметры, как -F "name = contents" . Если вы хотите, чтобы содержимое
    быть прочитанным из файла, используйте в качестве содержимого @filename . При указании файла вы
    также можно указать тип содержимого файла, добавив ; type = к
    имя файла. Вы также можете разместить содержимое нескольких файлов в одном поле. За
    Например, имя поля «coolfiles» используется для отправки трех файлов с
    различные типы контента с использованием следующего синтаксиса:

      curl -F "coolfiles = @ fil1.gif; type = image / gif, fil2.txt, fil3.html "
      http://www.post.com/postit.cgi
      

    Если тип содержимого не указан, curl попытается угадать из файла
    расширение (знает лишь несколько) или использовать ранее указанный тип (из
    более ранний файл, если в списке указано несколько файлов), иначе он будет использовать
    тип по умолчанию ‘application / octet-stream’.

    Эмулируйте форму для заполнения с помощью -F . Допустим, вы заполнили три поля в
    форма. Одно поле — это имя файла для публикации, одно поле — ваше имя, второе —
    поле — описание файла.Мы хотим опубликовать написанный нами файл с именем
    «cooltext.txt». Чтобы позволить curl публиковать эти данные вместо ваших
    любимый браузер, вы должны прочитать исходный HTML-код страницы формы и найти
    имена полей ввода. В нашем примере имена полей ввода
    «файл», «ваше имя» и «описание файла».

      curl -F "[email protected]" -F "yourname = Daniel"
      -F "filedescription = Классный текстовый файл с классным текстом внутри"
      http://www.post.com/postit.cgi
      

    Отправить два файла в одном сообщении можно двумя способами:

    Отправлять несколько файлов в одном «поле» с одним именем поля:

      curl -F "pictures = @ dog.gif, cat.gif "$ URL
      

    Отправить два поля с двумя именами полей

      curl -F "[email protected]" -F "[email protected]" $ URL
      

    Чтобы отправить значение поля буквально без интерпретации начального @ или <, или
    встроенный ; type = , используйте --form-string вместо -F . Это рекомендуется
    когда значение получено от пользователя или другого непредсказуемого
    источник. В этих условиях использование -F вместо --form-string может
    позволить пользователю обманом заставить curl загрузить файл.

    Реферер

    HTTP-запрос может включать информацию о том, какой адрес
    сослался на реальную страницу. Curl позволяет указать реферер, который будет
    используется в командной строке. Особенно полезно дурачить или дурачить
    серверы или сценарии CGI, которые полагаются на доступность этой информации, или
    содержат определенные данные.

      curl -e www.coolsite.com http://www.showme.com/
      

    Пользовательский агент

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

    Пример:

      curl -A 'Mozilla / 3.0 (Win95; I)' http://www.nationsbank.com/
      

    Другие распространенные струны:

    • Mozilla / 3.0 (Win95; I) - Netscape версии 3 для Windows 95
    • Mozilla / 3.04 (Win95; U) - Netscape версии 3 для Windows 95
    • Mozilla / 2.02 (OS / 2; U) - Netscape версии 2 для OS / 2
    • Mozilla / 4.04 [en] (X11; U; AIX 4.2; Nav) - Netscape для AIX
    • Mozilla / 4.05 [en] (X11; U; Linux 2.0.32 i586) - Netscape для Linux

    Обратите внимание, что Internet Explorer изо всех сил старается быть совместимым во всех отношениях:

    • Mozilla / 4.0 (совместимый; MSIE 4.01; Windows 95) - MSIE для W95

    Mozilla - не единственное возможное имя User-Agent:

    • Konqueror / 1.0 - Настольный клиент KDE File Manager
    • Lynx / 2.7.1 libwww-FM / 2.14 - браузер командной строки Lynx

    Файлы cookie

    Файлы cookie

    обычно используются веб-серверами для хранения информации о состоянии
    на стороне клиента. Сервер устанавливает файлы cookie, отправляя строку ответа в
    заголовки, которые выглядят как Set-Cookie: , где часть данных затем
    обычно содержит набор из пар NAME = VALUE (разделенных точкой с запятой ;
    например NAME1 = VALUE1; ИМЯ2 = ЗНАЧЕНИЕ2; ).Сервер также может указать, по какому пути
    "cookie" должен использоваться для (путем указания пути = значение ), когда

    .

    curl - Урок

    Фон

    Этот документ предполагает, что вы знакомы с HTML и общими сетями.

    Растущее количество приложений, перемещающихся в Интернет, сделало "HTTP
    Сценарии "чаще запрашиваются и требуются. Чтобы иметь возможность автоматически
    извлекать информацию из Интернета, фальсифицировать пользователей, публиковать или загружать данные в
    веб-серверы - это все важные задачи сегодня.

    Curl - это инструмент командной строки для выполнения всевозможных манипуляций с URL-адресами и
    переводы, но этот конкретный документ будет посвящен тому, как его использовать, когда
    выполнение HTTP-запросов для развлечения и прибыли.Я предполагаю, что вы знаете, как
    вызовите curl --help или curl --manual , чтобы получить основную информацию о нем.

    Curl создан не для того, чтобы делать все за вас. Он делает запросы, он получает
    данные, он отправляет данные и извлекает информацию. Тебе наверное понадобится
    склеить все вместе, используя какой-то скриптовый язык или повторить
    ручные вызовы.

    Протокол HTTP

    HTTP - это протокол, используемый для получения данных с веб-серверов.Это очень просто
    протокол, построенный на TCP / IP. Протокол также позволяет информации
    будут отправлены на сервер от клиента, используя несколько разных методов, а также
    быть показано здесь.

    HTTP - это простые текстовые строки ASCII, отправляемые клиентом на сервер для
    запросить конкретное действие, а затем сервер отвечает несколькими текстовыми строками
    до того, как фактическое запрошенное содержимое будет отправлено клиенту.

    Клиент curl отправляет HTTP-запрос. Запрос содержит метод (например,
    GET, POST, HEAD и т. Д.), Несколько заголовков запроса, а иногда и запрос
    тело.HTTP-сервер отвечает строкой состояния (указывающей,
    ну), заголовки ответа и чаще всего также тело ответа. Часть "тела"
    это обычные данные, которые вы запрашивали, например, фактический HTML или изображение и т. д.

    См. Протокол

    Использование опции curl --verbose
    ( -v как короткий вариант) покажет, какие команды curl отправляет в
    server, а также несколько других информационных текстов.

    --verbose - самый полезный параметр, когда дело доходит до отладки или даже
    понять взаимодействие сервера curl <->.

    Иногда даже -verbose недостаточно. потом
    - трассировка и
    --trace-ascii
    предлагают еще более подробную информацию, поскольку они показывают все, что отправляет curl и
    получает. Используйте это так:

      curl --trace-ascii debugdump.txt http://www.example.com/
      

    Посмотреть время

    Часто вы можете задаться вопросом, что именно занимает все время, или вы просто
    хотите узнать количество миллисекунд между двумя точками передачи.За
    те и другие подобные ситуации,
    - опция отслеживания времени
    это то, что вам нужно. Он добавит время к каждой строке вывода трассировки:

      curl --trace-ascii d.txt --trace-time http://example.com/
      

    См. Ответ

    По умолчанию curl отправляет ответ на стандартный вывод. Вам нужно его перенаправить
    где-то, чтобы этого избежать, чаще всего это делается с -o или -O .

    Спецификация

    Формат Uniform Resource Locator - это способ указания адреса
    конкретный ресурс в Интернете.Вы знаете это, вы видели такие URL-адреса, как
    https://curl.haxx.se или https://yourbank.com миллион раз. RFC 3986 - это
    каноническая спец. И да, формальное имя - это не URL, а URI.

    Хост

    Имя хоста обычно разрешается с помощью DNS или вашего файла / etc / hosts в IP.
    адрес, и это то, с чем будет связываться curl. В качестве альтернативы вы указываете
    IP-адрес прямо в URL-адресе вместо имени.

    Для разработки и других пробных ситуаций вы можете указать другой
    IP-адрес для имени хоста, отличный от того, который использовался бы в противном случае, с помощью curl
    - разрешить вариант:

      curl --resolve www.example.org:80:127.0.0.1 http://www.example.org/
      

    Номер порта

    Каждый протокол, поддерживаемый curl, работает с номером порта по умолчанию, будь то TCP
    или в некоторых случаях UDP. Обычно вам не нужно это учитывать
    рассмотрение, но иногда вы запускаете тестовые серверы на других портах или
    аналогичный. Затем вы можете указать номер порта в URL-адресе с двоеточием и
    номер сразу после имени хоста. Как при использовании HTTP для порта
    1234:

      curl http: // www.example.org:1234/
      

    Номер порта, который вы указываете в URL-адресе, - это номер, который сервер использует для
    Предлагаю свои услуги. Иногда вы можете использовать локальный прокси, а затем вы можете
    необходимо указать номер порта этого прокси отдельно для того, что нужно curl
    подключиться к локально. Как при использовании HTTP-прокси на порту 4321:

      curl --proxy http://proxy.example.org:4321 http://remote.example.org/
      

    Имя пользователя и пароль

    Некоторые службы настроены так, чтобы требовать аутентификацию HTTP, и тогда вам необходимо
    укажите имя и пароль, которые затем передаются на удаленный сайт в
    различными способами в зависимости от конкретного используемого протокола аутентификации.

    Вы можете выбрать либо вставить пользователя и пароль в URL-адрес, либо вы можете
    предоставить их отдельно:

      curl http: // user: [email protected]/
      

    или

      curl -u пользователь: пароль http://example.org/
      

    Следует обратить внимание, что такая HTTP-аутентификация - это не то,
    в наши дни обычно делается и запрашивается на сайтах, ориентированных на пользователя. Они склонны
    вместо этого использовать формы и файлы cookie.

    Часть пути

    Часть пути просто отправляется на сервер, чтобы запросить отправку обратно
    связанный ответ.Путь - это то, что находится справа от косой черты
    который следует за именем хоста и, возможно, номером порта.

    ПОЛУЧИТЬ

    Самый простой и наиболее распространенный запрос / операция, выполняемая с использованием HTTP, - это ПОЛУЧЕНИЕ
    URL. Сам URL-адрес может относиться к веб-странице, изображению или файлу. Клиент
    отправляет запрос GET на сервер и получает запрошенный документ.
    Если вы вводите командную строку

      завиток https://curl.haxx.se
      

    , вы получаете веб-страницу, возвращаемую в окно терминала.Весь HTML-документ
    что этот URL-адрес.

    Все ответы HTTP содержат набор заголовков ответов, которые обычно скрыты,
    используйте curl --include ( -i )
    возможность отображать их, а также остальную часть документа.

    ГОЛОВА

    Вы можете запросить у удаленного сервера ТОЛЬКО заголовки, используя
    - головка ( -I ) вариант, который
    заставит curl выдать запрос HEAD. В некоторых особых случаях серверы отклоняют
    HEAD, в то время как другие по-прежнему работают, что вызывает особое раздражение.

    Метод HEAD определен и сделан так, чтобы сервер возвращал заголовки.
    точно так же, как это было бы для GET, но без тела. Значит, ты
    может видеть Content-Length: в заголовках ответа, но не должно быть
    фактическое тело в ответе HEAD.

    Несколько URL-адресов в одной командной строке

    Одна командная строка curl может включать один или несколько URL-адресов. Самый частый случай
    вероятно, просто использовать один, но вы можете указать любое количество URL-адресов.да
    любой. Без ограничений. Затем вы будете получать запросы, повторяющиеся снова и снова для всех
    данные URL.

    Пример, отправьте два GET:

      curl http://url1.example.com http://url2.example.com
      

    Если вы используете --data to POST to
    URL-адрес, использование нескольких URL-адресов означает, что вы отправляете один и тот же POST на все
    данные URL.

    Пример, отправьте два POST:

      curl --data name = curl http://url1.example.com http://url2.example.com
      

    Несколько методов HTTP в одной командной строке

    Иногда вам нужно работать с несколькими URL-адресами в одной командной строке и
    разные методы HTTP для каждого.Для этого вам понравится
    - следующий вариант . Это в основном
    разделитель, который отделяет несколько вариантов от следующего. Все URL
    до - следующий получит тот же метод и все данные POST
    слились в один.

    Когда curl достигает значения --next в командной строке, он как бы сбрасывает
    метод и данные POST и разрешить новый набор.

    Возможно, лучше всего это показать на нескольких примерах. Чтобы отправить сначала HEAD, а затем
    GET:

      curl -I http: // example.com --next http://example.com
      

    Чтобы сначала отправить POST, а затем GET:

      curl -d score = 10 http://example.com/post.cgi --next http://example.com/results.html
      

    Формы объяснены

    Формы

    - это общий способ, которым веб-сайт может представить HTML-страницу с полями для
    пользователь, в который нужно ввести данные, а затем нажать что-то вроде «ОК» или «Отправить»
    кнопку, чтобы получить эти данные, отправленные на сервер. Затем сервер обычно использует
    опубликованные данные, чтобы решить, как действовать.Как использовать введенные слова для поиска
    в базе данных или чтобы добавить информацию в систему отслеживания ошибок, отобразите
    введенный адрес на карте или использование информации в качестве приглашения для входа в систему, подтверждающее, что
    пользователю разрешено видеть то, что он собирается увидеть.

    Конечно, на сервере должна быть какая-то программа для получения
    данные, которые вы отправляете. Вы не можете просто изобрести что-то из воздуха.

    ПОЛУЧИТЬ

    Форма GET использует метод GET, как указано в HTML, например:

      

    В вашем любимом браузере появится эта форма с текстовым полем для заполнения
    и нажмите кнопку с надписью «ОК». Если вы введете «1905» и нажмете ОК
    , ваш браузер создаст для вас новый URL-адрес. URL будет
    получить junk.cgi? Birthyear = 1905 и нажать = OK добавлено к части пути
    предыдущий URL.

    Если оригинал был виден на странице www.example.com/when/birth.html ,
    вторая страница, которую вы получите, станет
    www.example.com/when/junk.cgi?birthyear=1905&press=OK .

    Большинство поисковых систем работают именно так.

    Чтобы curl выполнял за вас сообщение формы GET, просто введите ожидаемый созданный
    URL:

      curl "http://www.example.com/when/junk.cgi?birthyear=1905&press=OK"
      

    ПОСТ

    Метод GET заставляет все имена полей ввода отображаться в поле URL-адреса
    ваш браузер.Как правило, это хорошо, когда вы хотите иметь возможность
    добавить в закладки эту страницу с вашими данными, но это очевидный недостаток, если
    вы ввели секретную информацию в одно из полей или если есть большой
    количество полей, создающих очень длинный и нечитаемый URL.

    Затем протокол HTTP предлагает метод POST. Таким образом, клиент отправляет
    данные, отделенные от URL-адреса, и поэтому вы не увидите их в URL-адресе
    адресное поле.

    Форма будет очень похожа на предыдущую:

      

    И чтобы использовать curl для публикации этой формы с теми же данными, что и раньше, мы
    мог бы сделать это так:

      curl --data "Birthyear = 1905 & press =% 20OK% 20" http://www.example.com/when.cgi
      

    Этот вид POST будет использовать Content-Type
    application / x-www-form-urlencoded и является наиболее широко используемым типом POST.

    Данные, которые вы отправляете на сервер, ДОЛЖНЫ быть уже правильно закодированы, curl будет
    не делай этого за тебя.Например, если вы хотите, чтобы данные содержали пробел,
    вам необходимо заменить это пространство на% 20 и т. д. Несоблюдение этого требования приведет к
    скорее всего, приведет к неправильному получению ваших данных и их искажению.

    Последние версии curl могут фактически кодировать данные POST для вас, например:

      curl --data-urlencode "name = Я Даниэль" http://www.example.com
      

    Если вы повторите --data несколько раз в командной строке, curl будет
    объедините все заданные части данных - и поместите символы и между каждым
    сегмент данных.

    Загрузка файла POST

    Еще в конце 1995 года они определили дополнительный способ отправки данных через HTTP. Это
    задокументирован в RFC 1867, поэтому этот метод иногда называют
    RFC1867-публикация.

    Этот метод в основном разработан для лучшей поддержки загрузки файлов. Форма, которая
    позволяет пользователю загружать файл, который можно записать в HTML так:

      
    <тип ввода = имя файла = загрузка>

    Это ясно показывает, что Content-Type, который будет отправлен,
    multipart / form-data .

    Чтобы отправить сообщение в такую ​​форму с помощью curl, введите командную строку, например:

      curl --form upload = @ localfilename --form press = OK [URL]
      

    Скрытые поля

    Очень распространенный способ передачи информации о состоянии приложениями на основе HTML.
    между страницами заключается в добавлении скрытых полей в формы. Скрытые поля уже есть
    заполнены, они не отображаются для пользователя и просто передаются
    как и все остальные поля.

    Аналогичный пример формы с одним видимым полем, одним скрытым полем и одним
    кнопка отправки может выглядеть так:

      

    Чтобы отправить это сообщение с помощью curl, вам не нужно думать о том,
    скрыто или нет. Для завивки они все одинаковые:

      curl --data "Birthyear = 1905 & press = OK & person = daniel" [URL]
      

    Определите, как выглядит POST

    Когда вы собираетесь заполнить форму и отправить ее на сервер, используя вместо этого curl
    браузера, вы, конечно, очень заинтересованы в отправке POST именно того
    так, как это делает ваш браузер.

    Самый простой способ увидеть это - сохранить HTML-страницу с формой на
    ваш локальный диск, измените 'метод' на GET и нажмите кнопку отправки
    (вы также можете изменить URL-адрес действия, если хотите).

    После этого вы увидите, как данные добавляются к URL-адресу, разделенные
    ? -буквенное обозначение, как предполагается в формах GET.

    PUT

    Возможно, лучший способ загрузить данные на HTTP-сервер - использовать PUT. потом
    опять же, это, конечно, требует, чтобы кто-то поместил программу или сценарий на
    конец сервера, который знает, как получить поток HTTP PUT.

    Поместите файл на HTTP-сервер с помощью curl:

      curl - файл загрузки файла загрузки http://www.example.com/receive.cgi
      

    Базовая проверка подлинности

    HTTP-аутентификация - это возможность сообщить серверу ваше имя пользователя и
    пароль, чтобы он мог подтвердить, что вам разрешено выполнить запрос, который вы
    делаю. Обычная проверка подлинности, используемая в HTTP (это тип, который curl использует
    default) - это простой текст на основе , что означает отправку имени пользователя и пароля.
    только слегка запутанный, но все же полностью читаемый любым, кто нюхает
    сеть между вами и удаленным сервером.

    Чтобы указать curl использовать пользователя и пароль для аутентификации:

      curl - имя пользователя: пароль http://www.example.com
      

    Другая проверка подлинности

    Для сайта может потребоваться другой метод аутентификации (проверьте заголовки
    возвращается сервером), а затем
    --ntlm ,
    - дайджест ,
    - договориться или даже
    - анйут может быть
    варианты, которые вам подходят.

    Аутентификация прокси

    Иногда ваш доступ HTTP доступен только через использование HTTP
    прокси.Кажется, это особенно характерно для различных компаний. HTTP-прокси
    может потребовать своего собственного пользователя и пароля, чтобы клиент мог получить доступ к
    интернет. Чтобы указать их с помощью curl, введите что-то вроде:

      curl --proxy-user proxyuser: proxypassword curl.haxx.se
      

    Если ваш прокси-сервер требует, чтобы аутентификация выполнялась с использованием метода NTLM,
    используйте --proxy-ntlm ,

    .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *