PDA

Просмотр полной версии : http


Ru}{eeZ
04.06.2009, 15:02
Почему, когда я отсылаю на yandex.ru:80 запрос "OPTIONS * HTTP/1.0", он возвращает:
HTTP/1.1 200 OK
Date: Thu, 04 Jun 2009 10:56:02 GMT
Server: Apache/2.2.9 (Unix) mod_perl/2.0.4 Perl/v5.8.8
Content-Length: 0
Connection: close
Content-Type: text/plain

а при запросе "OPTIONS * HTTP/1.1":
HTTP/1.1 400 Bad Request
Date: Thu, 04 Jun 2009 10:57:01 GMT
Server: Apache/2.2.9 (Unix) mod_perl/2.0.4 Perl/v5.8.8
Vary: Accept-Encoding
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 Req
uest</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that
this server could not understand.<br />
</p>
</body></html>

т.е. ошибку, якобы он не может понять запрос? Ведь я указываю, что в первом запросе я хочу установить коннект через http версии 1.0, а он возвращает инфу о сервере и говорит, что установленный протокол - 1.1, а когда я шлю запрос с установкой коннекта через протокол 1.1, он отвечает, что не понимает запрос.

попугай
04.06.2009, 15:26
Не все серверы нынче подерживают OPTIONS, некоторые даже режут эту информацию...

А яша вообще на RFC кладет

_artem_
29.07.2009, 19:39
HTTP/1.1 требует за собой указание Host: хост.

пример


nc -v localhost 80

POST /1.php HTTP/1.1
Host: localhost
Content-type: application/x-www-form-urlencoded
Content-length: 10

blabla=123


ответ сервака:

HTTP/1.1 200 OK
Date: Wed, 29 Jul 2009 15:34 GMT
Server: Apache/2.2.11 (Unix) PHP/5.3.0
X-Powered-By: PHP/5.3.0
Content-Length: 195
Content-Type: text/html

<html>
<head>
<title>form</form>
</head>
<body>
<form action="1.php" method="POST">
<input type=text" name="blabla" id="blabla" value="123"><input type="submit">
</form>
</body>
</html>


ответ без указание хоста


HTTP/1.1 400 Bad Request
...
<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>


п.с. надо бы знать разницу между HTTP/1.0 и 1.1 !!!!!!!!!