Headless Chrome is a way to run the Chrome browser in a headless mode (ie without the UI, you don't see the screen, it's a server mode)
The Chrome Debugging Protocol is an API that permits to control Chrome (or any other browser implementing CDP).
The headless mode permits to use chrome as a cli: Chrome Cli