Get a Single Header with cURL
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!
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