One of the functions of CloudFlare is to act as CDN (Content Delivery Network) that automatically caches selected file types of static content by way of extension, and then serves the subsequent requests to the cached objects directly from its global CDN servers.
CloudFlare CDN works slightly different from other CDN services because CloudFlare essentially serves as the proxy for the website, where all content passes through CloudFlare’s server before it’s hitting visitor’s web browser. Likewise for the requests to the website.
As the result, CloudFlare able to act as CDN by automatically caching static content such as CSS, JS, BMP, JPG, JPEG, TIFF, GIF, ICO, PDF, SWF, SVG, PNG, WEBP, and more, transparently without any user interaction. While this makes setting up to use CloudFlare as CDN extremely easy and straightforward, it’s harder to know for certain if CloudFlare actually caches the static content file types of your website, and serves them from the CDN when requested.
CloudFlare does provide a way to check whether Cloudflare is caching the site or a specific file, by checking the responses shown in the “CF-Cache-Status” header. There are multiple ways to check the response code for “CF-Cache-Status” in response header, as detailed below.
Method 1: CloudFlare Analytics
If you just want to know if CloudFlare caching is working for your website generally, the Analytics on CloudFlash domain dashboard can provide a quick confirmation. Login to CloudFlare account, select the domain that you have enabled the DNS and HTTP proxy (CDN), then go to Analytics. Verify that Cached Requests (under Requests tab) and/or Cached Bandwidth are meaningful number that commensurate with the website traffic.
Method 2: Check Response Header with Web Browser’s Developer Tools
Open Developer Tools in the web browser such as Chrome, Internet Explorer, Firefox or Edge by pressing F12 key. Then go to Network tab.
Now, open the web page that you want to check whether any of its resources are cached by CloudFlare, or press F5 or Refresh button to reload the web page, so that all network requests and their response results are populated. Note that different web browsers may have different design of the output.
Select the request for the resource that you want to analyze and check for caching in CloudFlare, and look for the status value of CF-Cache-Status in response header, which indicates specifically if the file was from the CloudFlare CDN cache or not. If most cases, HIT status means that the object is in the CloudFlare CDN cache, but any other status codes would also mean that the objects are probably set up to proxy through CloudFlare for CDN to work.
Method 3: Check Response Header with WebPageTest
Visit webpagetest.org and enter the URL to run the test. Once the test is done, go to Details page and click on the resource that you want to check if it’s served from CloudFlare CDN.
The cf-cache-status is shown under Response Headers.
Method 4: Check Response Header with curl
curl is a tool to transfer data from or to a server, using one of the supported protocols such as HTTP and HTTPS. curl also offers a busload of useful tricks, and can be used to display response header directly. In the Linux terminal with curl installed, run the following command:
curl -svo /dev/null http://domain.com/url
Replace http://domain.com/url with the actual URL of the object that you want to check its CloudFlare CDN cache status. For example, the following command will return the response header of request to Tech Journey main page HTML:
curl -svo /dev/null https://techjourney.net
Within the response header would be CF-Cache-Status status code. As curl only returns response header of the object specified in the command, thus you must specify the URL with the full path to the resource that you want to check if it’s in the CloudFlare’s cache.