Something that I do often at work is to check HTTP headers for random things such as redirects, cache headers, proxies, ssl, etc.

A common way this is done is by using the -I (--header) switch:

$ curl -I http://example.com/
HTTP/1.1 200 OK
Content-Encoding: gzip
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Wed, 27 Jun 2018 22:03:57 GMT
Etag: "1541025663+gzip"
Expires: Wed, 04 Jul 2018 22:03:57 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (atl/FC94)
X-Cache: HIT
Content-Length: 606

The downside to this is that it uses an HTTP HEAD request, which can sometimes return different headers or different information than a standard GET request.  This can be fixed by using the -X (--request) switch.  This overrides the default HEAD request with whatever you choose:

$ curl -I -XGET http://example.com/
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Wed, 27 Jun 2018 22:07:47 GMT
Etag: "1541025663"
Expires: Wed, 04 Jul 2018 22:07:47 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (atl/FC90)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1270

I like to just combine them into one quick command: curl -IXGET http://example.com/

Leave a comment

Leave a Reply

%d bloggers like this: