npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cdn-cache-check

v2.0.0

Published

Makes HTTP requests to URLs and parses response headers to determine caching behaviour

Downloads

38

Readme

cdn-cache-check

Version node-current Codacy Badge GitHub issues Known Vulnerabilities Libraries.io dependency status for latest release Downloads Total Downloads/Month Last Commit Licence

HTTP caching is an important component in the delivery of a fast web site. This command line utility helps to analyse URLs to determine if they're served via a CDN and the caching behaviours of both the CDN and the user-agent.

Quick Start

Installation

Install globally using:

npm -g install cdn-cache-check

Simple Usage

Check a single URL using ccc [URL]:

ccc https://www.rolex.com/

cdn-cache-check - Single URL

Change Log

See what's changed recently via the CHANGELOG.md which can be found here

More Examples

Check multiple URLs using ccc [URL [URL […]]]:

ccc https://www.rolls-royce.com/ https://www.rolls-roycemotorcars.com/

cdn-cache-check - Multiple URLs

Check a list of URLs read from a text file using ccc [filename]:

ccc URLs.examples.txt

cdn-cache-check - Single text file

Where URLs.examples.txt contains:

#List of example URLs
www.twitch.tv
www.reddit.com
www.stackoverflow.com
www.adobe.com
https://www.wired.com/
https://www.rolex.com/

Overview

If you're looking into web site performance you'll be interested, at some stage of your analysis, in caching, compression and CDNs. cdn-cache-check aims to help with this task by making HTTP requests and reporting on the response headers that control these aspects across multiple URLs at a time.

cdn-cache-check - Example of e-commerce domains


Usage

Supply cdn-cache-check with a URL, or the name of a text file containing URLs, and it will issue HTTP requests for each. You can supply multiple URLs or multiple filenames (separated by a space), and you can mix-and-match them too if you wish.

It will also attempt to detect the CDN serving each unique domain by performing a recursive DNS resolution and check if the domain resolves to a known CDN's apex domain.

ccc [URL|file [URL|file […]]] [options]

Options

URL

The URL can be any valid URL or a bare domain, in which case HTTPS will be used when making the request.

ccc https://example.com
ccc example.com

filename

The file should be a plain text file with a URL on each line. Lines which do not contain a valid URL or valid domain name are ignored, so you can have comments and annotation in the file if you so wish.

HTTP Archive (HAR) File Support

As of version 1.3.0 cdn-cache-check supports parsing .har files. These can be saved from your browser's Dev Tools:

ccc - Save as HAR file

You can then pass that .har file to cdn-cache-check and it will extract the URLs and make fresh requests for them:

ccc - Example HAR file

--method

The default HTTP method is GET but you can modify this

ccc example.com --method head

--headers collection

By default the listed response headers are limited to x-cache, cache-control, server, content-encoding, vary, age; but this is just the default headers collection. You can use the --headers switch to specify and alternate collection of headers, and can use ``list-header-collections` to view all collections.

For example, there's a collection that lists security related response headers:

ccc https://www.mozilla.org/ --headers security

cdn-cache-check - Example of header collection 'security'

--list-header-collections

Use --list-header-collection to see all of the configured Header Collections and which responses are included in each. The location of the configuration file is also shown, which you can edit to include your own custom Header Collection.

ccc --list-header-collections

cdn-cache-check - Example listing all header collections

--list-response-headers

--list-response-headers is used to display the names of each unique response header returned from the URL(s) provided. It's primary purpose is to assist with creating a custom header collection as it shows all the headers from which a custom list can be selected.

ccc https://www.amazon.com https://www.amazon.co.uk --list-response-headers

cdn-cache-check - Example listing response headers

--export

--export accepts a boolean value and allows you control whether the results are also written to a .csv file. The default is true; to switch it off use:

ccc https://example.com --export false

--open

If the results are exported to a .csv file then --open will automatically open the file in whatever the registered application for .csv files is. ccc - Open exported .csv file Screenshot

--no-color

Switches off colour output. Useful if piping output somewhere which doesn't handle the unicode control codes.

--version

Displays the version number.

--help

Displays the help screen.


Features

CDN Detection

The CDN detection works by perform a recursive DNS lookup on the target domain and looking through the CNAME records for an entry in an apex domain that's known to be owned by a CDN service. If the target domain resolves to an A record there is no information with which to make a determination, so those domains will be listed as Undetermined.

The detection technique also works for cloud hosting services, so services like AWS's S3, Azure's Blob Storage and GitHub Pages will also be identified.

.csv Export

All results will be written in full to a csv file in the temp directory. The full path of this file is displayed in the terminal.

Handling redirects

If the target URL results in a redirect it will be followed, and the final URL will be the one shown in the results. All output entries which are the result of following a redirect are marked with a redirect indicator ® (and a redirect count in the csv export file).

ccc - Redirect Indictor Screenshot

ccc http://thefacebook.com

ccc - Example redirect

Error handling/reporting

Network, DNS and HTTP errors are reported in the STATUS column. Example:

ccc https://www.wallmart.com http://aksjdfkasdnfkja.com

ccc - Example errors


Debugging

Include the --debug switch to get verbose debug output.

ccc www.bing.com --debug

ccc - Example debug


FAQ

Where is the Change Log

The CHANGELOG.md can be found here