Почему мои команды telnet терпят неудачу для tinyurl.com?

1090
Rebol Tutorial

Я могу отправить команду telnet на google.com, но не на tinyurl.com

На windows telnet я набрал следующее:

set localecho set crlf o tinyurl.com 80 

Возвращает 400-плохой запрос, почему?


Я знаю, что должен использовать HTTP 1.1, проблема в том, что я даже не могу подключиться к серверу, который закрывает его после отправки ошибки 404. Зачем?

1

1 ответ на вопрос

2

Я могу заставить его работать здесь (Linux), используя команды HTTP 1.1.

Попробуйте что-то вроде:

GET /foobar HTTP/1.1 Host: tinyurl.com 

Далее следуют два символа новой строки. Один из заголовков, возвращаемых tinyurl,

Server: TinyURL/1.6 

Это говорит о том, что они используют собственный веб-сервер, который не поддерживает запросы HTTP 0.9 / 1.0.

Последнее утверждение неверно. Заголовок ответа начинается с `HTTP / 1.1`, который является самой высокой версией HTTP, которую поддерживает сервер. Заголовок `Server` совершенно не имеет значения. Sean Bright 14 лет назад 0
Михил написал «* один * из заголовков», и это правильно: http://web-sniffer.net/?url=tinyurl.com%2Ffoobar&http=1.1&rawhtml=yes&gzip=yes&type=GET&uak=0 Он поддерживает HTTP 1.0, хотя (при использовании с заголовком хоста) и не должен отвечать 400 Bad Request при открытии соединения. Ребол должен предоставить более подробную информацию о желаемом запросе. Arjan 14 лет назад 0
@Arjan - заголовок `Server` не имеет ** никакого отношения ** к версии HTTP, поддерживаемой сервером HTTP (поэтому предположение, что их веб-сервер« не поддерживает HTTP 0.9 / 1.0 », полностью ошибочно). Sean Bright 14 лет назад 1
Ах, вы написали последнее * утверждение *, так что: вы имели в виду *, которая предлагает * часть. (Я почему-то подумал, что вы говорите, что сам заголовок в кавычках был ложной информацией.) Вы совершенно правы, первый заголовок действительно указывает, что сервер должен поддерживать 1.1 и более ранние версии. Arjan 14 лет назад 0