for my understanding canonical url is useful for SEO purpose when you use CDN or AMP for example :
your website canonical url is :
website.com/this-is-post
you are using cdn for images and host file and amp on your website and url will be :
cdn.website.com/this-is-post
and for amp
website.com/this-is-post/amp/
which is the duplicate content of your canonical url website.com/this-is-post
You just want that AMP and CDN for improve your site but if you are not using Canonical URL Tag, Bot Crawler doesnt know which one of that URL that you want to index.
Then this is the use of your Canonical URL, if you use Canonical tag on website.com/this-is-post
then big G will know that the other URL website.com/this-is-post/amp/ and cdn.website.com/this-is-post is your duplicates URLs with same content and will make your canonicalized URL website.com/this-is-post is the one that should be indexed in SERP.
Hope you are understand, i have a thread asking this question because i am using CDN to serve my static host files and images for my website. And correct me if i made a mistake for understanding this canonical concept.