1 USING: accessors continuations http http.server
2 io.encodings.utf8 io.encodings.binary io.streams.string kernel
3 math sequences tools.test urls ;
6 [ t ] [ [ \ + first ] [ <500> ] recover response? ] unit-test
8 [ "text/plain; charset=ASCII" ] [
10 "text/plain" >>content-type
11 "ASCII" >>content-charset
15 [ "text/xml; charset=UTF-8" ] [
17 "text/xml" >>content-type
23 "image/jpeg" >>content-type
27 [ "application/octet-stream" ] [
33 ! RFC 2616: Section 19.3
34 ! The line terminator for message-header fields is the sequence CRLF.
35 ! However, we recommend that applications, when parsing such headers,
36 ! recognize a single LF as a line terminator and ignore the leading CR.
41 "host: 127.0.0.1:55532"
42 "user-agent: Factor http.client"
43 } [ "\n" join ] [ "\r\n" join ] bi
44 [ [ read-request ] with-string-reader ] bi@ =
47 ! RFC 2616: Section 4.1
48 ! In the interest of robustness, servers SHOULD ignore any empty
49 ! line(s) received where a Request-Line is expected. In other words, if
50 ! the server is reading the protocol stream at the beginning of a
51 ! message and receives a CRLF first, it should ignore the CRLF.
62 "\r\n\r\n\r\nGET / HTTP/1.0\r\n\r\n"
63 [ read-request ] with-string-reader