How to use curl and telnet instead of cgi-fcgi?

FastCGI is not HTTP, which is why curl won't work (at least not with http (default) URLs).

This is also why your telnet example is not working (because you're talking HTTP to it).

While curl does support a (very!) wide variety of protocols, FastCGI is not one of them.

The FastCGI protocol is not particularly trivial; its a binary protocol to begin with, designed to connect to a web-server, not to a regular HTTP client.

If you're wanting something you can point a browser at without have the webserver up and running, you'll need some sort of bridge (which is what a webserver would be doing). Keep cgi-fcgid to help you troubleshoot any webserver configuration issues.