I have two different clients accessing the same code but passing in different ID parameters. The first gets the correct Apache status code of 200 but the second always gets a status code of 302 (every time... I am only listing two log entries but it is always 302, never 200).
Why? 302 indicates something has been moved temporarily but nothing has moved. Since the first entry gets the correct 200 why wouldn't the second as well?
The code generates an XML file that is used by the flash that is requesting it to render some data. The parameter that is passed in simply determines which set of data to pull from the database and output as XML.
111.12.456.196 - - [29/Feb/2012:05:36:10 -0800] "GET /output/now?id=2284 HTTP/1.1" 200 583 "http://foobar.com/baz/Someflash.swf" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" 88.993.777.101 - - [29/Feb/2012:05:36:10 -0800] "GET /output/now?id=1807 HTTP/1.1" 302 20 "http://foobar.com/baz/Someflash.swf" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MDDR; .NET4.0C; .NET4.0E)"
An example of the XML header being sent back:
<?xml version="1.0" encoding="UTF-8" ?> <recent> <foo>one</foo> <foo>two</foo> </recent>
Note: I've dug further through my log file and find that IE8, 9 and Firefox all get a 302 response while Webkit browsers all get a 200.