A CDN is a Content Delivery Network.
A use case could be:
You will create a website that has multiple assets and files such as images and css. This becomes your website. That you developed and host in the UK.
If I send a user to your website. They may be from Australia (other side of the world). They will need to make a connection to the UK based server. With an average ping of around 200-300. This will drastically reduce load times.
So some brilliant mind somewhere has created these CDN's. These will effectively create more copies of your website on servers closer to the user, drastically reducing the ping time to the server and delivering the website sooner than before.
The next advantage that I think is rather wonderful. This user is the first person to your website. The CDN will for this user only, create a bundle of the websites assets, going through the code saying to itself "right the user needs 'this image', 'that css'" until it has all the assets. From here it will create a package that will be sent to the user. There is no change from a none CDN website here.
But, the next user we send to the server, it will say right we have another user, has there been changes to the website since we last served a package? no, then send the pre packaged bundle to this user (cuts out the packaging process). If yes, create a new bundle and deliver this (keeping this bundle ready to be sent to any more visitors).
That is it in a nutshell.