Warum schlagen meine Telnet-Befehle für tinyurl.com fehl?

1215
Rebol Tutorial

Ich kann den Telnet-Befehl an google.com senden, jedoch nicht an tinyurl.com

Bei Windows Telnet habe ich Folgendes eingegeben:

set localecho set crlf o tinyurl.com 80 

Es gibt eine 400-fehlerhafte Anfrage zurück, warum?


Ich weiß, ich sollte HTTP 1.1 verwenden. Das Problem ist, dass ich mich nicht einmal mit dem Server verbinden kann, der nach dem Senden des 404-Fehlers geschlossen wird. Warum?

1

1 Antwort auf die Frage

2

Ich kann es hier (Linux) mit HTTP 1.1-Befehlen zum Laufen bringen.

Versuchen Sie etwas nach dem Motto:

GET /foobar HTTP/1.1 Host: tinyurl.com 

Es folgen natürlich zwei Zeilen. Eine der von tinyurl zurückgegebenen Headern ist

Server: TinyURL/1.6 

Dies legt nahe, dass sie einen benutzerdefinierten Webserver verwenden, der keine HTTP 0.9 / 1.0-Anforderungen unterstützt.

Die letzte Aussage ist falsch. Der Antwortheader beginnt mit "HTTP / 1.1", der höchsten Version von HTTP, die der Server unterstützt. Der `Server`-Header ist völlig irrelevant. Sean Bright vor 14 Jahren 0
Michiel schrieb "* one * of the headers", was korrekt ist: http://web-sniffer.net/?url=tinyurl.com%2Ffoobar&http=1.1&rawhtml=yes&gzip=yes&type=GET&uak=0 Es unterstützt jedoch HTTP 1.0 (bei Verwendung mit Hostheader) und sollte beim Öffnen der Verbindung nicht mit 400 Bad Request reagieren. Rebol muss weitere Details zur gewünschten Anfrage bereitstellen. Arjan vor 14 Jahren 0
@Arjan - Der `Server`-Header hat ** nichts ** mit der vom HTTP-Server unterstützten HTTP-Version zu tun (der Vorschlag, dass der Webserver" HTTP 0.9 / 1.0 "nicht unterstützt, ist völlig fehlerhaft). Sean Bright vor 14 Jahren 1
Ah, Sie haben die letzte * Aussage * geschrieben, also: Sie bezogen sich auf den Teil *, der * angibt. (Ich dachte irgendwie, dass Sie sagten, dass der zitierte Header selbst falsche Informationen war.) Sie haben vollkommen Recht, der erste Header zeigt tatsächlich an, dass der Server 1.1 und früher unterstützen soll. Arjan vor 14 Jahren 0