The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Sunday, February 16, 2003

Query Redirects in HTTP, or rather, the lack of documentation thereof

Over the past few days, Mark and I have been going back and forth about implementation details in Seminole. It started out with a question about encoding URLs—when do you convert a space to %20 and when do you covert it to + (answer: you can always use %20 but you can only convert a space to a + in the query portion of a URL) but eventually got around to a point not covered in RFC-2616.

I like your idea of storing the query separate in the HttpdRequest object. It's a good idea, and I think may fix a problem where we do redirects and forget to tack on the query string. For example:

Redirecting http://server/some/directory?stuff
-to-
http://server/some/directory/index.html?stuff

Probably doesn't work now.

Email from Mark

Only thing is, RFC-2616 doesn't cover this situation. Sure, it covers what to do when redirecting a POST (and even goes into mind-numbing detail about when and when not to convert a POST to a GET when redirecting, and how that interacts with proxy and caching servers) but not what to do when redirecting a GET with a query.

I did some tests with Apache, and from what I can see, if Apache generates the redirect (for example, http://www.example.net/path to http://www.example.net/path/) it passes along the query string (http://www.example.net/path?a=1&b=2 is redirected to http://www.example.net/path/?a=1&b=2) but if the redirect comes from the Redirect directive (for example, http://www.example.net/p.cgi to http://server.example.org/q.cgi), then the query portion of the URL is dropped entirely (http://www.example.net/p.cgi?a=1&b=2 is redirected to http://server.example.org/q.cgi—note the missing query string) and since the RFC is quite mum on what the correct behavior is, we're having to wing it for now.


Don't shoot, we're Republicans!

Fifty years ago today, the Willie D as the Porter was nicknamed, accidentally fired a live torpedo at the battleship Iowa during a practice exercise. As if this wern't bad enough, the Iowa was carrying President Franklin D. Roosevelt at the time, along with Secretary of State, Cordell Hull and all of the country's WWII military brass. They were headed for the Big Three Conference in Tehran, where Roosevelt was to meet Stalin and Churchill. Had the Porter's torpedo struck the Iowa at the aiming pointy, the last 50 years of world history might have been quite different.

Via Jerry Pournelle, Don't shoot, we're Republicans!

Nothing much to add here, other than it's an amusing story and I'm finding it fun to think about what would have happened had the torpedo actually struck the Iowa. I don't think much would have happened in the long run—FDR would have most likely survived, been transported to another ship and still made Tehran, but still, there was that slight chance he would have been killed.

Even so, I don't think the outcome of the war would have been that much different; Truman still had to take over from FDR before the war was over.

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2019 by Sean Conner. All Rights Reserved.