Чтобы сделать GET-запрос с помощью Curl, выполните команду curl, за которой следует целевой URL. Curl автоматически выбирает метод запроса HTTP GET, если вы не используете опцию командной строки -X, --request или -d. Целевой URL передается в качестве первого параметра командной строки.
Чтобы добавить дополнительные HTTP-заголовки, используйте опцию командной строки -H. Curl автоматически добавляет заголовок запроса Accept: */*, если не переданы дополнительные заголовки, что говорит серверу, что клиент Curl может принимать данные в любом формате.
Что такое Curl?
Curl означает Client for URLs, и это популярный инструмент командной строки для Linux, Windows и macOS для передачи данных по сети с использованием протоколов HTTP, HTTPS, FTP и SFTP. Вы можете выполнять запросы GET, POST и HEAD к серверу, получать HTTP-заголовки, загружать HTML-страницы, загружать файлы, отправлять формы и многое другое.
Примеры отправки GET запросов в CURL
Пример простого GET-запроса Curl
Curl прост в использовании, и этот базовый пример Curl демонстрирует, как легко сделать GET-запрос к целевому серверу с помощью Curl.
Пример базового GET-запроса Curl
Запустите
1 | curl https://example.com/ |
Ответ сервера на наш запрос Curl:
1 2 3 4 5 | HTTP/1.1 200 OK Content-Type: text/html Content-Length: 643 [html-код] |
Как отправить HTTP-заголовки с помощью GET-запроса Curl?
Чтобы сделать GET-запрос с HTTP-заголовками, используйте параметр командной строки -H. Вы можете передать столько HTTP-заголовков с запросом Curl GET, сколько захотите, используя опцию -H в командной строке несколько раз.
Пример GET-запроса Curl с пользовательскими HTTP-заголовками
1 | curl https://example.com/ -H "Cache-Control: must-revalidate" -H "Pragma: no-cache" -H "Expires: 0" |
Как получить только заголовки HTTP с помощью Curl?
Чтобы получить только заголовки HTTP, используйте параметр командной строки -I. В этом случае Curl будет использовать метод HTTP HEAD вместо метода запроса GET и не будет загружать тело ответного сообщения HTTP.
1 | curl -I https://example.com/ |
Как проверить, поддерживает ли целевой URL HTTP/2 с помощью Curl?
Отправив запрос Curl HEAD вместе с параметром командной строки --http2, вы можете проверить, поддерживает ли целевой URL протокол HTTP/2.
Проверка поддержки HTTP/2 с помощью Curl
Запустите
1 | curl -I --http2 https://example.com/ |
В ответе вы увидите строку состояния HTTP/2 200, если ваш сервер поддерживает протокол HTTP/2, или HTTP/1.1 200 в противном случае.
Как указать Curl следовать перенаправлениям?
По умолчанию Curl не следит за перенаправлениями 300x. Вы можете заставить Curl следовать перенаправлениям, указанным в заголовке Location, используя опцию командной строки -L.
1 | curl -L https://example.com/ |
Как получить определенный диапазон байт из ресурса с помощью Curl?
Вы можете использовать опцию командной строки -r, чтобы получить определенный диапазон байт ресурса из целевого URL.
1 | curl https://example.com/ -r 0-15000 |
Как отправить cookies вместе с GET-запросом с помощью Curl?
Вы можете отправить cookies на сервер, используя опцию командной строки -b, за которой следует строка с cookie или имя файла, содержащего cookies.
1 | curl https://example.com/ -b "session=eJflzj1wMQG4eO6Z" |
Как получить JSON с помощью Curl?
В этом примере Curl get JSON мы используем заголовок "Accept: application/json", потому что без этого заголовка сервер может вернуть данные в другом формате.
1 | curl https://example.com/echo/get/json -H "Accept: application/json". |
Ограничение максимальной скорости передачи данных для запросов Curl GET
С помощью параметра командной строки --limit-rate вы можете ограничить максимальную скорость передачи данных для загрузки и выгрузки файлов. Скорость измеряется в байтах в секунду, если не указано иное с помощью суффикса K (килобайты), M (мегабайты) или G (гигабайты).
1 | curl https://example.com/ --limit-rate 50K |