Contextualizando: Estou fazendo o curso de HTTP e tive alguns problemas para conectar com o servidor quando pediram para usar o 'telnet localhost 8000'.
Vi que uma parte do pessoal está tendo problemas com a conexão com o servidor local, usando o telnet. Vou deixar algumas informações que podem ser óbvias, mas talvez ajudem:
-Para conseguir se conectar usando o comando 'telnet localhost 8000' a porta tem que estar 'aberta' (pelo que eu entendi). No caso do projeto que eu estou estudando (api-alurabooks), você tem que ir na parte de backend (diretorio api-alurabooks) no cmd, e usar o comando:
npm run start-auth
Assim o servidor na porta 8000 será iniciado. Provavelmente no seu CMD você terá a seguinte mensagem:
> json-server-api@1.0.0 start-auth
> node server.js
API disponível em http://localhost:8000
Tendo feito isso, abra outro CMD e use o comando:
telnet localhost 8000
Feito isso, seu CMD ficará limpo e terá o título Telnet localhost:
Se você tentar digitar qualquer coisa que ele não reconheça, aparecerá o Erro 'HTTP/1.1 400 bad request' e a conexão será perdida.
Caso isso aconteça, digite novamente 'telnet localhost 8000' para recomeçar a configuração.
Aqui entra um fator importante: você precisa saber o que escrever, se tentar só enviar uma mensagem simples como 'ola, mundo' não vai funcionar, pois não tem o padrão de comando que o telnet reconhece.
Tendo entrado na tela do telnet, mesmo que você digite os textos correto, ele não mostrará na tela o que você está digitando, por isso é recomendado usar um editor de texto para escrever a sua requisição. Eu usei a seguinte:
GET / HTTP/1.1
Host: localhost
IMPORTANTE RESSALTAR: Para colar o texto no telnet, você não vai usar Ctrl+V, e no meu caso Shift+Insert também não funcionou. Para colar o texto, leve o mouse até o titulo da janela (telnet localhost) clique com o botão direito, vá em Editar -> Colar.
Vai parecer que nada aconteceu, mas é porque o telnet não dá feedback visual quando você digita, como mensionei anteriormente.
Após colar, pressione duas vezes o enter. Então essa mensagem deve aparecer:
HTTP/1.1 200 OK
X-Powered-By: Express
Vary: Origin, Accept-Encoding
Access-Control-Allow-Credentials: true
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Tue, 13 May 2025 15:36:56 GMT
ETag: W/"809-196ca4ab99f"
Content-Type: text/html; charset=UTF-8
Content-Length: 2057
Date: Wed, 14 May 2025 11:00:30 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Tem mais coisas embaixo dessa mensagem, mas não cabe aqui. É importante não digitar mais nada nesse CMD depois dessa mensagem aparecer. Se digitar qualquer coisa, a conexão pode ser finalizada. E é isso, aqui deu certo, pelo menos. Espero ter ajudado.