Ako zobraziť hlavičky požiadaviek pomocou príkazového riadku curl

Príkazový riadok curl dokáže zobraziť hlavičku odpovede pomocou možnosti -D, ale ja chcem vidieť, akú hlavičku požiadavky posiela. Ako to môžem urobiť?

Voľba curl'-v alebo --verbose okrem iného zobrazuje hlavičky HTTP požiadaviek. Tu je niekoľko ukážok výstupu:

$ 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
< 
<meta http-equiv="content-type" content="text/html;charset=utf-8">
301 Moved
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.

* Connection #0 to host google.com left intact
* Closing connection #0
Komentáre (2)

Domnievam sa, že prepínač príkazového riadku, ktorý hľadáte na odovzdanie curlu, je -I.

Príklad použitia:

$ 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

Okrem toho, ak sa stretnete so stavovým kódom HTTP odpovede 301, môžete odovzdať aj prepínač argumentov -L, ktorý povie curl, aby sledoval presmerovanie URL a v tomto prípade vypísal hlavičky všetkých stránok (vrátane presmerovania URL), ako je znázornené nižšie:

$ 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
Komentáre (4)

Možnosť verbose je užitočná, ale ak chcete vidieť všetko, čo curl robí (vrátane prenášaného tela HTTP, nielen hlavičiek), odporúčam použiť jednu z nasledujúcich možností:

  • --trace-ascii - # stdout
  • --trace-ascii output_file.txt # súbor
Komentáre (1)