Что не так с этим HTTP-запросом? - PullRequest
0 голосов
/ 22 ноября 2011

На моем компьютере с Linux установлен Apache, и я пытаюсь написать HTTP-клиент, поддерживающий TCP-соединение для получения веб-страницы.

Для этого я сначала открою сокет для localhost и напишу следующий заголовок

GET / HTTP/1.0
Host: http://localhost:80
User-Agent: My-User-Agent 1.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Cache-Control: no-cache
Accept-Language: en;q=0.7,en-us;q=0.3
Connection: close

Однако apache выдает ошибку Bad Request, которая выглядит следующим образом

HTTP/1.1 400 Bad Request
Date: Mon, 21 Nov 2011 23:58:03 GMT
Server: Apache/2.2.20 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 311
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> <hr> <address>Apache/2.2.20 (Ubuntu) Server at
http://localhost:80 Port 80</address> </body></html>

В журнале ошибок apache говорится следующее: [Пн 21 ноября 15:58:03 2011] [ошибка] [клиент 127.0.0.1] Клиент отправил искаженный заголовок узла

Может кто-нибудь, пожалуйста, помогите мне с этим. Что не так с заголовком?

1 Ответ

3 голосов
/ 22 ноября 2011

Хост должен быть простым localhost в этом случае:

GET / HTTP/1.0
Host: localhost
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...