in reply to Setting HTTP Protocol Version

I don't know if this reply is going to be helpful to you, because I'm not going to explain how it's done, but rather why it's (normally) not done.

HTTP is a protocol defined by various RFCs. The LWP modules and and HTTP::* modules aim to implement that protocol. There is a version 1.0 and a version 1.1 of that protocol, both are in common use. Depending on the version, the headers must be constructed differently, and the user agent has to act in different ways.

Now you can't just say "set version to 999" and expect it to behave reasonably, because LWP::* doesn't implement any logic for HTTP 999 - heck, it's not even specified.

Likewise there's no point trying to pass a relative URL to a HTTP server, because it violates the spec

There is an exception though: If your objective is to test that a HTTP server behaves reasonably with malformed requests, you might want such a behavior. If that's what you are after, I recommend talking to the Mojo developers - they did such things recently.

Perl 6 projects - links to (nearly) everything that is Perl 6.

Replies are listed 'Best First'.
Re^2: Setting HTTP Protocol Version
by wagnerc (Sexton) on Aug 26, 2009 at 16:33 UTC
    Thanks for replying but ur first sentence is the operative one from ur post. ;)

    Of course it is off spec. I need to communicate with a degenerate web interface. A leading slash on the URI causes the server to throw a 500 error. There is no option to change the server.