Get a Single Header with cURL

By  on  

Debugging third party apps can be difficult for a variety of reasons.  You take for granted that the third party has not only properly coded their app but that their server is also serving files properly.  As more a developer than a sysadmin I tend to spend a long time on the code before I ensure the server stuff is correct.  One mistake often made on the server side is not sending correct Content-Type headers with content, especially audio and video files, and that can cause a real problem for the app or codec trying to do something with the content.  These days I check response headers before I do anything else.

Getting complete response headers with cURL is easy:

#  Get response headers
curl -I https://davidwalsh.name

#  Result:
#  HTTP/1.1 301 Moved Permanently
#  Date: Wed, 03 Feb 2016 17:29:51 GMT
#  Content-Type: text/html; charset=iso-8859-1
#  Connection: keep-alive
#  Set-Cookie: __cfduid=dab1e532a38b35ce7d764344217ddd8dc1454520590; expires=Thu, 02-Feb-17 17:29:50 GMT; path=/; domain=.davidwalsh.name; HttpOnly
#  Location: https://davidwalsh.name/
#  Cache-Control: max-age=1
#  Expires: Wed, 03 Feb 2016 17:29:52 GMT
#  Vary: Accept-Encoding
#  Server: cloudflare-nginx
#  CF-RAY: 26efdc3d2aa841ef-MSP

But that's a lot of info to sift through if you only want the one header.  Here's how you can retrieve just one header:

#  Get single header only
#  curl {url} -I | grep -Fi {header_name}
curl https://davidwalsh.name -I | grep -Fi Content-Type

#  Result:
#  Content-Type: text/html; charset=iso-8859-1

With the extra grep above you'll only get the one header back.  Simple!

Recent Features

  • By
    CSS Filters

    CSS filter support recently landed within WebKit nightlies. CSS filters provide a method for modifying the rendering of a basic DOM element, image, or video. CSS filters allow for blurring, warping, and modifying the color intensity of elements. Let's have...

  • By
    Write Better JavaScript with Promises

    You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the big deal? In this article, we'll...

Incredible Demos

  • By
    Fade Images with MooTools LazyLoad

    I recently received an email from a MooTools developer asking a great question about my LazyLoad class: "I'm using your LazyLoad MooTools plugin (which is great, by the way). I have been trying to figure out how to modify it so that once an image scrolls into...

  • By
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

Discussion

  1. Lev Nar

    this is the best answer that I found with my problem, but the only question i have is how to do this is curl php

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!