Erro ao usar o HTTP através do Telnet no terminal

2

Para acessar www.ietf.org/rfc.html, eu digitei os seguintes comandos:

telnet www.ietf.org 80 > log
get /rfc.html HTTP/1.1
Host: www.ietf.org

Enquanto eu estava digitando o terceiro comando, a seguinte mensagem foi exibida:

Connection closed by foreign host.

A entrada de registro foi:

> Trying 64.170.98.30...
Connected to www.ietf.org.
Escape character is '^]'.
HTTP/1.1 400 Bad Request
Date: Thu, 27 Dec 2012 09:32:01 GMT
Server: Apache/2.2.10 (Linux/SUSE) mod_ssl/2.2.10 OpenSSL/0.9.8h PHP/5.2.13 with     Suhosin-Patch mod_python/3.3.1 Python/2.6 mod_wsgi/3.3 mod_perl/2.0.4 Perl/v5.10.0
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>

Então, qual é o problema?

    
por Copperfield 27.12.2012 / 10:49

1 resposta

1

Supondo que você seja capaz de recuperar o arquivo com wget como Eric Carvalho sugeriu ( wget www.ietf.org./rfc.html ), o problema provavelmente é que o servidor web desligou em você porque você não enviou sua solicitação rápido o suficiente. / p>

Cada vez que uma página é recuperada, uma conexão TCP separada é feita na porta HTTP do servidor da web. Uma vez conectado, se você não enviar um comando em breve, o servidor assumirá que a conexão foi abandonada (o que acontece com bastante frequência, embora a maioria dos navegadores da Web a minimize, terminando adequadamente suas conexões TCP quando estiverem prontas). / p>

Se sua meta for apenas fazer o download da página e analisá-la, use wget , curl ou fetch em vez de telnet . Você pode visualizar o arquivo na linha de comando com cat ou less .

Se o seu objetivo é brincar com o telnet para acessar o conteúdo da web - por exemplo, para melhorar seu entendimento do HTTP - então você pode considerar escrever um programa ou script (pode até ser um shell script) que atue como um front-end simples para telnet , pegando o nome do servidor e os comandos HTTP e, em seguida, conectando-se ao servidor, enviando o (s) comando (s) rapidamente a seguir.

    
por Eliah Kagan 27.12.2012 / 19:49