Linux curl head запрос

How to display request headers with command line curl

Command line curl can display response header by using -D option, but I want to see what request header it is sending. How can I do that?

Note on using —head / -I : not all servers respond exactly the same to HEAD requests (for example, Content-Encoding would be missing if you were attempting to verify that the body would be gzipped) and not all servers support HEAD . -v is usually the safer choice.

I didn’t get it since any modification in order to fulfill OP’s request (pun wasn’t intended) requires changes on the command (i.e. curl and its arguments) and since command sets the request headers you already see those. AFAIK the request is all in or nothing, so either all the headers will be sent, or none. Am I missing something?

9 Answers 9

curl’s -v or —verbose option shows the HTTP request headers, among other things. Here is some sample output:

$ curl -v http://google.com/ * About to connect() to google.com port 80 (#0) * Trying 66.102.7.104. connected * Connected to google.com (66.102.7.104) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.16.4 (i386-apple-darwin9.0) libcurl/7.16.4 OpenSSL/0.9.7l zlib/1.2.3 > Host: google.com > Accept: */* > < HTTP/1.1 301 Moved Permanently < Location: http://www.google.com/ < Content-Type: text/html; charset=UTF-8 < Date: Thu, 15 Jul 2010 06:06:52 GMT < Expires: Sat, 14 Aug 2010 06:06:52 GMT < Cache-Control: public, max-age=2592000 < Server: gws < Content-Length: 219 < X-XSS-Protection: 1; mode=block <  301 Moved 

301 Moved

The document has moved here. * Connection #0 to host google.com left intact * Closing connection #0

@jacobsimeon I thinks that’s because it shows not only the Request headers but also the Response headers and Response body.

A popular answer for displaying response headers, but OP asked about request headers.

curl -s -D - -o /dev/null http://example.com 
  • -s : Avoid showing progress bar
  • -D — : Dump headers to a file, but — sends it to stdout
  • -o /dev/null : Ignore response body
Читайте также:  Команда cat linux ubuntu

This is better than -I as it doesn’t send a HEAD request, which can produce different results.

It’s better than -v because you don’t need so many hacks to un-verbose it.

Even though this question asks for request headers, google is directing everybody here who is looking for response headers so we are all glad this answer is here. And this answer is the best for getting response headers. Thanks.

I believe the command line switch you are looking for to pass to curl is -I .

$ curl -I http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287 HTTP/1.1 301 Moved Permanently Date: Sat, 29 Dec 2012 15:22:05 GMT Server: Apache Location: http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287/ Content-Type: text/html; charset=iso-8859-1 

Additionally, if you encounter a response HTTP status code of 301, you might like to also pass a -L argument switch to tell curl to follow URL redirects, and, in this case, print the headers of all pages (including the URL redirects), illustrated below:

$ curl -I -L http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287 HTTP/1.1 301 Moved Permanently Date: Sat, 29 Dec 2012 15:22:13 GMT Server: Apache Location: http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287/ Content-Type: text/html; charset=iso-8859-1 HTTP/1.1 302 Found Date: Sat, 29 Dec 2012 15:22:13 GMT Server: Apache Set-Cookie: UID=b8c37e33defde51cf91e1e03e51657da Location: noaccess.php Content-Type: text/html HTTP/1.1 200 OK Date: Sat, 29 Dec 2012 15:22:13 GMT Server: Apache Content-Type: text/html 

Источник

Отправка HTTP HEAD запроса с помощью Curl

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

Что такое HTTP HEAD?

HTTP HEAD — это один из 9 стандартных методов запроса, поддерживаемых протоколом HTTP. При запросе HEAD сервер отправляет ответ, идентичный запросу GET, но без тела ответа. Запросы HEAD используются для получения мета-информации о ресурсе, такой как тип и размер ресурса. Поскольку сервер не возвращает тело ресурса при запросе HEAD (в отличие от запроса GET), это делает запрос HEAD идеальным методом для проверки страницы на наличие битых ссылок. Метод HTTP HEAD должен быть доступен только для чтения (сервер не должен изменять свое состояние) и должен быть идемпотентным, что означает, что несколько одинаковых запросов HEAD должны иметь тот же эффект, что и один запрос.

Отправка HTTP-запроса HEAD с помощью Curl

Чтобы отправить запрос HEAD с помощью Curl, вы должны передать параметр —head (-I) в вызове Curl. Альтернативным способом отправки HEAD-запроса с помощью Curl является передача аргумента командной строки -X HEAD вместо -I. Обратите внимание, что некоторые серверы могут отклонять запросы HEAD, но при этом отвечать на запросы GET. Метод HEAD определен таким образом, что сервер должен возвращать заголовки так же, как и при GET-запросе, но без тела. Это означает, что вы можете увидеть заголовки Content-Type и Content-Length в ответе сервера, но сам ответ не будет содержать тела сообщения.

Читайте также:  Astra linux capabilities parsec

Примеры запросов HEAD в Curl

Ниже приведены примеры отправки запросов HEAD:

Curl HEAD-запрос с использованием параметра -I

Ниже приведен пример отправки запроса HEAD на эхо-адрес ReqBin с использованием параметра командной строки -I:
Curl HEAD запрос с параметром -I Пример
Запустите

curl -I https://example.com/echo

Запрос HEAD с использованием параметра —head

Ниже приведен пример отправки запроса HEAD на эхо-адрес ReqBin с использованием параметра командной строки —head:
Curl HEAD rRequest с параметром —head Пример
Запустите

curl --head https://example.com/echo

Запрос curl HEAD с использованием параметра -X HEAD

Ниже приведен пример отправки запроса HEAD на эхо-адрес ReqBin с использованием параметра командной строки -X HEAD:
Curl HEAD Запрос с параметром -X HEAD Пример
Запустите

curl -X HEAD https://example.com/echo

Какой метод лучше использовать -I или -X HEAD?

Curl рекомендует использовать метод -I. Метод -X HEAD не отображает заголовки по умолчанию, а для просмотра заголовков при использовании метода -X HEAD необходимо также передать Curl параметр командной строки -i (строчный). Следовательно, -I является правильным способом получения заголовков.

Похожие записи:

Источник

Sending HTTP HEAD Request with Curl

To make an HTTP HEAD request with Curl, you need to use the -I or —head command-line parameter. The -I command-line parameter tells Curl to send an HTTP HEAD request to receive only HTTP headers. The HEAD request is very similar to a GET request, except that the server only returns HTTP headers without a response body. In this Curl HEAD request example, we send a HEAD request to the ReqBin echo URL. Click Run to execute the Curl HTTP HEAD Request Example online and see the results.

curl -I https://reqbin.com/echo

What is Curl?

Curl is an open-source command-line tool and cross-platform library (libcurl) for transferring data between clients and servers that run on almost all platforms and hardware. Curl supports all popular Internet protocols and is used wherever you need to send or receive data over the network.

What is HTTP HEAD?

HTTP HEAD is one of 9 standard request methods supported by the HTTP protocol. For HEAD requests, the server sends a response that is identical to the GET request but without the response body. HEAD requests are used to get meta-information about a resource, such as a type and size of the resource. Since the server does not return a resource body for a HEAD request (as opposed to a GET request), this makes a HEAD request an ideal method for checking a page for broken links. The HTTP HEAD method must be read-only (the server must not change its state) and must be idempotent, which means that multiple identical HEAD requests must have the same effect as a single request.

Читайте также:  Ноутбуки на arm linux

Sending an HTTP HEAD request with Curl

To send a HEAD request using Curl, you must pass the —head (-I) parameter to the Curl call. An alternative way to send a HEAD request using Curl is to pass the -X HEAD command-line argument instead of -I. Please note that some servers may reject HEAD requests but still respond to GET requests. The HEAD method is defined so that the server should return headers in the same way as for a GET request but without a body. This means that you can see the Content-Type and Content-Length headers in the server response, but the response will not contain the message body itself.

Curl HEAD Request Syntax

Curl HEAD Request Examples

The following are examples of sending HEAD requests:

Curl HEAD request using -I parameter

The following is an example of sending a HEAD request to the ReqBin echo URL using the -I command line option:

curl -I https://reqbin.com/echo
Curl HEAD request using —head parameter

The following is an example of sending a HEAD request to the ReqBin echo URL using the —head command line option:

curl --head https://reqbin.com/echo
Curl HEAD request using -X HEAD parameter

The following is an example of sending a HEAD request to the ReqBin echo URL using the -X HEAD command line option:

curl -X HEAD https://reqbin.com/echo

Which method is better to use -I or -X HEAD?

Curl recommends using the -I method. The -X HEAD method does not display headers by default, and to view the headers when using the -X HEAD method, you also need to pass the -i (lowercase) command line parameter to Curl. Hence -I is the correct way to get headers.

See also

Generate Code Snippets for Curl HEAD Request Example

Convert your Curl HEAD Request request to the PHP, JavaScript/AJAX, Node.js, Curl/Bash, Python, Java, C#/.NET code snippets using the ReqBin code generator.

Источник

Оцените статью
Adblock
detector