Blackboard and Firefox 3.6 - Badly formatted request
Came across an odd problem with Blackboard 7.3 server and Firefox 3.6. It seems that our users who have upgraded to Firefox 3.6 are encountering a problem when they view web resource linked using xid-9999 type urls.
The first time someone clicks on an item linked to a file resource in a content list it appears normally.
But the second time they try to click on the link to the resource, they see:
400 BADLY FORMATTED REQUEST, Tomcat / Apache error message
It appers that the crux of the problem is how Firefox 3.6 responds to caching and etags headers.
One workaround for now is to clear your cache using Firefox / Preferences / Advanced / Network / Clear Now
Update: posted a proposed solution using apache to clean up the requests
Here's the long version......
We're using Blackboard v7.3.230.0 running on Tomcat 5.5.26 on Apache 1.3.
The linked items use a perminant url in the formal /xid-98788. Requests for this page are then redirected to the current version of the file in the content collection. I notice that the server returns an etag and expires header even on the 302 temporary redirect responses. It does not include nocache headers and it uses the same dummy etag for every response, and an expires header in +24 hours.
When Firefox 3.6 requests the /xid-99999 resource it includes the etag and an if-modified-since header based on the previous last modified date.
The Blackboard / Tomcat server doesn't seem to like these headers and throws a 400 Badly formatted request error.
The first time Firefox 3.6 requests the page
GET http://vision.hw.ac.uk/bbcswebdav/xid-310314_2
The response is:
302 Moved Temporarily
Response headers include:
Date: Fri, 12 Mar 2010 14:33:41 GMT X-Blackboard-product: Blackboard Academic Suite™ 7.3.230.0 Cache-Control: public <strong>Etag: bb-cache-1</strong> <strong>Last-Modified: Thu, 13 Nov 2008 18:16:31 GMT</strong> <strong>Expires: Sat, 12 Mar 2011 14:33:41 GMT</strong> Content-Disposition: filename="index.htm", filename="index.htm", filename="index.htm", filename="index.htm", filename="index .htm" Location: http://vision.hw.ac.uk/bbcswebdav/courses/COURSENAME/somedir/ufp1/index.htm Content-Length: 0 Keep-Alive: timeout=15, max=96 Connection: Keep-Alive Content-Type: application/octet-stream;charset=UTF-8
The second time Firefox requests the page:
GET http://vision.hw.ac.uk/bbcswebdav/xid-310314_2
Unlike previous versiosn of Firefox eg. 3.0.17, in firefox 3.6, two extra request headers are sent -
<strong>If-Modified-Since: Thu, 13 Nov 2008 18:16:31 GMT</strong> <strong>If-None-Match: bb-cache-1</strong>
Reponse is:
400_BADLY_FORMATTED_REQUEST
and includes these headers:
X-Blackboard-product: Blackboard Academic Suite™ 7.3.230.0 Cache-Control: public Etag: bb-cache-1 Last-Modified: Thu, 13 Nov 2008 18:16:31 GMT Expires: Sat, 12 Mar 2011 14:49:32 GMT
Regular files in content collection as opposed to xid refereces are served up to Firefox 3.6 normally, so you may reload a page several times once you have been redirected, but using the link from the list of resources twice causes the problem.
GET http://vision.hw.ac.uk/bbcswebdav/courses/COURSENAME/somedir/index.html
Response 200 OK
Request headers include:
http://vision.hw.ac.uk/bbcswebdav/courses/B21UF_2009-2010/ultrafast/index.html
If-Modified-Since: Fri, 12 Mar 2010 15:31:17 GMT If-None-Match: "227921-219620"
Response headers include
Pragma no-cache Cache-Control no-cache Etag "227921-219620" X-Blackboard-product Blackboard Academic Suite™ 7.3.230.0
Reposne headers include:
Pragma: no-cache Cache-Control: private Etag: "227921-219620" Last-Modified: Wed, 22 Apr 2009 11:23:27 GMT Expires: Thu, 12 Mar 2009 14:49:25 GMT
Workaround for now - use another browser? Chrome, Safari. Or in Firefox clear the cache when you see this issue.