On Fri, Sep 4, 2015 at 3:05 AM, Tim Brown <t...@timb.net> wrote:
> Folks,
>
> I have just tried to HEAD a web server, and have come across a few
> issues around the use of head-pure-port:
>
> 1. What is the point of `head-pure-port'? The HTTP server should not
>    (must not?) send a body. Which means that once the port is purified,
>    `head-pure-port' returns nothing. So it was a bit silly of me to
>    expect anything in the first place (this is before I bumped into
>    connection persistence); maybe the documentation could ask the
>    potential user, "Didn't you really want to use `head-impure-port'?"
>
> [So, in fact, I have issues with `head-impure-port']:
>
> 2. (port->string (head-impure-port
>                   (string->url "http://www.bbc.co.uk/";)))
>    takes way too long to potentially preflight a website.
>    cpu time: 2578 real time: 29767 gc time: 125. This is due to
>    HTTP keep-alive. For anyone who hits this, may I suggest two
>    solutions:
>     - keep-alive can be overridden with '("Connection: Close")
>       passed as a header in `head-impure-port'
>       (port->string (head-impure-port
>                      (string->url "http://www.bbc.co.uk/";)
>                      '("Connection: Close")))
>
>     - if connection persistence is desirable (which I guess it usually
>       is), then read the header until an empty line:
>       (for/list ((p (in-port (curryr read-line 'return-linefeed)
>                      (head-impure-port
>                       (string->url "http://www.bbc.co.uk/";))))
>                  #:break (string=? p ""))
>        p)
>
> 3. Poking around url.rkt, I notice that `http-conn-impure-port' makes
>    a pipe with a limit of 4096 bytes. http-client.rkt, which is directly
>    required by url.rkt, defines (but does not provide) `PIPE-SIZE' --
>    also 4096. Is there any merit in sharing this value between the
>    files?

The reason is that the HTTP connecting part of url.rkt is a legacy
module. Now, whether it could also do what you suggest... maybe.

Jay

> Tim
>
> --
> Tim Brown <t...@timb.net> ▪ +447771714159
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
Jay McCarthy
http://jeapostrophe.github.io

           "Wherefore, be not weary in well-doing,
      for ye are laying the foundation of a great work.
And out of small things proceedeth that which is great."
                          - D&C 64:33

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to