bobbybouwmann bobbybouwmann - 3 months ago 13
Linux Question

Curl show Content-Type only

I was wondering if it is possible to use curl to only show the content-type of the response header.

I want to check if the content-type is text/html for example before downloading instate of downloading the file and then find out it is application/pdf.

I used the example below in the hope that it would return the document if it is valid for me and else do nothing or something! The sample below just prints the full content of the page.

curl -F "type=text/html" www.google.nl


But If i do something like the example below it still downloads the whole thing, and I don't think that is right...

curl -F "type=text/html" http://www.axmag.com/download/pdfurl-guide.pdf


Many thanks :D

Answer

Option -F is for forms. Instead you want to send a HEAD request for retrieving only the response header without the response body by using option -I.

To display an URL's content type:

curl -s -I www.google.nl | grep "^Content-Type:"

Here option -s is added for silent mode for excluding the progress meter and error messages.

You can also specify the Accept header in your HTTP request. This header is used to accept only specific content types:

curl -s -H "Accept: text/html" http://www.axmag.com/download/pdfurl-guide.pdf

But the disadvantage is that most webservers will serve you an error page which also has the content type text/html. Hence you will still get a HTML file.