Программирование

curl

Что такое curl?

curl — команда проекта cURL Дэниела Стенберга. Первый открытый выпуск около 1997 года. В имя входит URL. Команда соединяется с этим адресом и печатает байты, которые приходят. Чаще всего это HTTP и HTTPS, но сам curl — не HTTP. HTTP — имя правила. curl — инструмент, который говорит по этому правилу. Браузер превращает HTML в страницу. curl показывает текст как есть.

Для чего нужен curl?

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

  • Прочитать ответ одного адреса
  • Увидеть только заголовки
  • Отправить JSON и получить ответ
  • Скачать файл в папку

Что можно делать с curl?

Через curl отправляют GET и POST. Видно статус и тело. Кнопку он не рисует и JavaScript не выполняет. Если страница наполняется только скриптом, curl может показать пустой или половинный текст. Если ключ или пароль остаётся внутри команды, он может остаться в истории.

Сложно ли освоить curl?

Открыть один адрес легко. Трудность в заголовке и методе. Отправить POST как GET делает на сервере другую работу. Ошибка сертификата останавливает соединение. Эту проверку не выключают, потому что имя может быть другим сайтом. Если ответ большой, терминал заполняется.

Плюсы и ограничения

Плюс: ответ виден без браузера, команда кладётся в скрипт, заголовок читается отдельно. Ограничение: по странице как человек он не ходит. curl — не сам HTTP и не браузер.

Основные понятия

Адрес говорит, куда идёт. Метод говорит, чего ты хочешь. Ответ состоит из статуса и тела.

  • curl без адреса никуда не идёт
  • -I просит только заголовок
  • -d отправляет тело
  • Статус 200 значит, что получено

Короткий пример

Эта команда печатает текст ответа одного адреса. Страницу в окне она не открывает.

curl https://nibrascode.com

Частые вопросы

  • curl и браузер — одно и то же? Нет. Браузер рисует страницу. curl показывает текст ответа.
  • curl и HTTP — одно и то же? Нет. HTTP — имя правила. curl — команда, которая шлёт запрос по этому правилу.
  • JavaScript выполняется? Нет. curl скрипт не запускает. Он только показывает текст, который пришёл.