Необработанный http-запрос: почему я получаю ошибку 400 Bad Request? - PullRequest
0 голосов
/ 18 июля 2010

Я набрал этот код:

p: open tcp://rebol.com:80
insert p "HEAD / HTTP/1.1 ^/"
insert p "Host: rebol.com/ ^/^/"
while [data: copy p][prin data]

Первая строка вывода 400 Неверный запрос

>> p: open tcp://rebol.com:80
>> insert p "HEAD / HTTP/1.1 ^/"
>> insert p "Host: rebol.com/ ^/^/"
>> while [data: copy p][prin data]
HTTP/1.1 400 Bad Request
Date: Sun, 18 Jul 2010 12:10:49 GMT
Server: Apache/1.3.42 (Unix) PHP/4.4.9 mod_log_bytes/1.2 mod_bwlimited/1.4 mod_auth_passthrough/1.8 FrontPage
/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.8e-fips-rhel5
Connection: close
Content-Type: text/html; charset=iso-8859-1

>>

Почему я получаю 400 неверных запросов?

Ответы [ 2 ]

1 голос
/ 18 июля 2010

Симон прав, я думаю.

Это делает то, что вы хотите, я думаю:

p: open tcp://rebol.com:80
insert p "HEAD / HTTP/1.1 ^/"
insert p "Host: rebol.com^/^/"
while [data: first p][prin data]

    HTTP/1.1 200 OK
    Date: Sun, 18 Jul 2010 12:28:19 GMT
    Server: Apache/1.3.42 (Unix) [.....]
    Last-Modified: Thu, 15 Jul 2010 18:59:21 GMT
    ETag: "3d0121-1c2a-4c3f5a89"
    Accept-Ranges: bytes
    Content-Length: 7210
    Content-Type: text/html

Это, возможно, другой способ:

p: open http://rebol.com
probe p/locals/headers
make object! [
    Date: "Sun, 18 Jul 2010 12:30:34 GMT"
    Server: {Apache/1.3.42 (Unix) [....]
    Last-Modified: "Thu, 15/Jul/2010/18:59:21/+GMT"
    Accept-Ranges: "bytes"
    Content-Encoding: none
    Content-Type: "text/html"
    Content-Length: "7210"
    Location: none
    Expires: none
    Referer: none
    Connection: "close"
    Authorization: none
    ETag: {"3d0121-1c2a-4c3f5a89"}
 ]
1 голос
/ 18 июля 2010

Я полагаю, что заголовок хоста не может иметь косую черту.

...