Generally "headless" means there is no graphic user interface for a piece of software.
To understand what a "headless" CMS is you have to understand that, historically speaking, a CMS does more than just "Manage Content."
There is often a "admin side" or "back side" of the CMS you use to enter data and files into the CMS. Some even let you define specific kinds of content; for example, "Blog Post." Blog posts have text and images and maybe other things like tags or categories.
Then the CMS has a public-facing "front side" that most visitors to a website see. This is generated by some kind of "theme" layer or "template" layer that the CMS provides. It takes the text and images and categories and generates the HTML to make the Blog Post display in a browser.
Headless is when you strip away that "front side" layer from the CMS. The CMS isn't generating a whole website anymore, it has been boiled down to just holding the content. It's up to another piece of software to do something with the data in the CMS.
As to your second question; I don't know if you would. Probably wouldn't want to; it depends a lot on what you want to accomplish!
This the best explanation of a Headless CMS that i have across on the internet. The web development industry suffers from this curse where even the most simple things are made to be too complicated just by how they are defined or described.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.