Чтобы отправить HTTP-заголовок с запросом Curl, вы можете использовать параметр командной строки -H и передать имя и значение заголовка в формате "Key: Value". Если вы не укажете значение заголовка, это приведет к удалению стандартного заголовка, который Curl отправил бы в противном случае. Количество HTTP-заголовков неограниченно.
Вы можете добавить столько заголовков в запрос Curl, сколько вам нужно.
1 2 3 4 | curl https://example.com/echo/post/json -H 'X-Custom-Header: value' -H 'Content-Type: application/json' -d '{"Id": 1}' |
В этом примере Curl-заголовков мы отправляем заголовки запроса X-Custom-Header и Content-Type на адрес example.com.
Что такое Curl?
Curl (расшифровывается как Client URL) - это популярный инструмент командной строки, который можно использовать для передачи данных на сервер или с сервера по различным сетевым протоколам, включая HTTP, HTTPS и FTP. Разработчики могут использовать библиотеку проекта Curl (libcurl) для выполнения HTTP-запросов непосредственно из своих приложений.
Что такое HTTP-заголовок?
HTTP-заголовки - это пары ключ/значение, которые передают дополнительные данные между клиентом и сервером. В HTTP заголовки используются для передачи данных в обоих направлениях. Клиент может использовать HTTP-заголовки для передачи таких данных, как имя User-Agent, список поддерживаемых языков и тип данных в теле сообщения запроса при отправке HTML-форм. В свою очередь, сервер использует HTTP-заголовки, чтобы сообщить клиенту размер и тип данных в теле ответа, используемый метод сжатия, директивы кэширования и CORS-заголовки.
Могу ли я отправлять пользовательские HTTP-заголовки с помощью Curl?
Да, вы можете добавить любой пользовательский HTTP-заголовок в запрос Curl с помощью параметра командной строки -H и отправить его на сервер. До 2011 года рекомендовалось называть пользовательские HTTP-заголовки с префиксом X-, чтобы подчеркнуть, что используется нестандартный HTTP-заголовок. Однако в июне 2012 года эта рекомендация была отменена, и теперь в RFC 6648 указано, что создатели новых параметров заголовков НЕ ДОЛЖНЫ добавлять в имена заголовков префикс "X-" или аналогичные префиксы.
1 | curl [URL] -H "Accept: application/json" |
Могу ли я отправлять заголовки Curl с HTTP POST-запросом?
Да, вы можете отправлять любое количество дополнительных HTTP-заголовков при POST-запросе. Например, при отправке JSON на сервер вы можете указать тип данных в теле запроса с помощью заголовка Content-Type: application/json и сообщить серверу, что клиент Curl ожидает JSON с помощью Accept: application/json. Если вы не передадите эти дополнительные заголовки в POST-запросе Curl, сервер может неправильно интерпретировать данные запроса или вернуть ответ в другом формате.
1 2 3 4 | curl [URL] -H "Content-Type: application/json" -H "Accept: application/json" -d "[json data]" |
Могу ли я получить только HTTP-заголовки с помощью Curl?
Да, опция командной строки Curl -I или --head позволяет вам получать только HTTP-заголовки с сервера, отправляя HTTP-запрос HEAD. Метод запроса HEAD идентичен методу GET, за исключением того, что при запросе HEAD сервер не возвращает тело сообщения.
1 | curl -I https://example.com/ |
Как отправить пользовательские заголовки с помощью Curl?
Ниже приведен пример отправки JSON-данных на сервер с дополнительными HTTP-заголовками Accept и Content-Type.
1 2 3 4 | curl -X POST https://example.com/echo/post/json -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"id": "12345"}' |
Как вывести заголовки запросов с помощью Curl?
Вы можете использовать аргумент командной строки -v или --verbose для просмотра заголовков запроса. Это позволит вывести множество отладочной информации о том, как Curl выполняет запрос, включая HTTP-заголовки, отправленные на сервер и полученные от него.
1 | curl -v https://example.com/ |
Как передать несколько заголовков в Curl?
Чтобы передать несколько заголовков в запросе Curl, используйте аргумент командной строки -H столько раз, сколько вам нужно.
1 2 3 | curl https://example.com/echo/get/json -H "X-Custom-Header: value" -H "Content-Type: application/json" |
Как удалить стандартный заголовок запроса из запроса Curl?
Чтобы удалить стандартный HTTP-заголовок из запроса Curl, например, имя User-Agent, добавьте имя HTTP-заголовка без значения с помощью параметра командной строки -H.
1 | curl -H "User-Agent:" https://example.com/ |
Как вывести заголовки ответов сервера с помощью Curl?
Аргумент командной строки -i или --include указывает Curl на необходимость печати заголовков HTTP-ответов в своем выводе. Заголовки HTTP-ответов обычно содержат такую информацию, как тип MIME и размер ресурса в теле HTTP-сообщения, список cookies, инструкции по кэшированию и т. д.
1 | curl -i https://example.com/ |