The term "Headless Drupal" was coined to refer to the decoupling of the backend and frontend of a Drupal application. In Headless Drupal, a visitor to the website will not interact with Drupal directly.
From the website visitor's point of view, the user is not directly connecting to Drupal but to a frontend JavaScript framework such as KnockoutJS or AngularJS. So, the website visitor does not see a generated Drupal theme (the head), this is not used: headless.
In this case, Drupal is only used as a backend content management system, which is read by a frontend JavaScript framework, a mobile app or another third-party application. So, the Drupal backend is exactly as you know it, but the frontend is entirely non-Drupal.
Data exchange almost always takes place through JSON.
A manifesto about the future of Drupal has been laid with four goals: