tags:

views:

44

answers:

2

I typed this code:

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

First line of output is 400 Bad Request

>> 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

>>

Why do I get 400 Bad Request ?

+1  A: 

I believe the Host header may not have a trailing slash.

Simon
+1  A: 

Simon is right, I think.

This does what you want, I think:

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

This is, perhaps, another way:

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"}
 ]
Sunanda