El problema es usar HTTP 1.0 en un servidor que requiere HTTP 1.1 (y el Host:
encabezado que es una parte obligatoria de HTTP 1.1), probablemente porque probablemente esté haciendo alojamiento virtual de múltiples sitios web en una dirección IP. O tal vez está detrás de un equilibrador de carga HTTP o proxy inverso que básicamente hace lo mismo: admite múltiples nombres de dominio de servidor web separados detrás de una dirección IP y puerto.
Esto funciona para mi:
$ telnet www.httpbin.org 80
Intentando 23.23.171.5 ...
Conectado a www.httpbin.org.herokudns.com.
El carácter de escape es '^]'.
GET / ip HTTP / 1.1
Anfitrión: www.httpbin.org
... y vuelvo ...
HTTP / 1.1 200 OK
Conexión: mantener vivo
Servidor: meinheld / 0.6.1
Fecha: martes, 09 de enero de 2018 22:01:19 GMT
Tipo de contenido: application / json
Acceso-Control-Permitir-Origen: *
Access-Control-Allow-Credentials: verdadero
X-Powered-By: Frasco
Tiempo de procesamiento X: 0.000454902648926
Longitud del contenido: 32
Vía: 1.1 vegur
{
"origin": "[Mi dirección IPv4 eliminada]"
}
^]
telnet> cerrar
PS
Tenga en cuenta que la conexión permaneció abierta y tuve que escapar al telnet>
indicador para cerrar. Podría haber evitado eso agregando un Connection: close
encabezado a mi solicitud.
Si prueba HTTP / 1.1 con un Host:
encabezado y todavía no funciona para usted, asegúrese de que su cliente telnet esté enviando CRLF y no solo retornos de carro o avances de línea. Asegúrese de finalizar su solicitud con un CRLF adicional después de la última línea.