404 не найден в telnet, отлично работает в браузере - PullRequest
4 голосов
/ 23 мая 2010

У меня очень раздражающая проблема, когда я открываю URL (http://celebs.widewallpapers.net/md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg) в браузере, он работает нормально ... но когда я пытаюсь получить к нему доступ через telnet на bash, я получаю 404 не найдено! !

мой точный терминал:

$ telnet celebs.widewallpapers.net 80

HEAD /md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg HTTP / 1.0 [войти] [Ввод]

HTTP / 1.1 404 Не найдено

Сервер: nginx

Дата: вс, 23 мая 2010 г. 21:36:05 GMT

Content-Type: text / html; Charset = Windows-1251

Длина содержимого: 166 Подключение: закрыть

, пожалуйста, помогите мне с этим, поскольку я пытаюсь создать пакетный загрузчик C, который почти работает так же, как telnet.

1 Ответ

10 голосов
/ 23 мая 2010

Вы не передаете заголовок хоста. Согласно HTTP / 1.1, вы должны указать веб-серверу, с каким виртуальным хостом вы ожидаете общаться. И 99% серверов сегодня будут использовать только HTTP / 1.1, даже если вы указали HTTP / 1.0 в запросе.

jb@apto % telnet celebs.widewallpapers.net 80
...
HEAD /md/a/adriana-lima/1440/Adriana-Lima-1440x900-002.jpg HTTP/1.1
Host: celebs.widewallpapers.net

HTTP/1.1 200 OK
Server: nginx
Date: Sun, 23 May 2010 22:08:36 GMT
Content-Type: image/jpeg
Connection: close
Last-Modified: Sun, 27 Apr 2008 14:30:17 GMT
ETag: "4784e0-264b0-48148df9"
Accept-Ranges: bytes
Content-Length: 156848

Connection closed by foreign host.
...