FileResponse.java mimics file replies as http response. It tries its best to
follow http's way for headers, response codes as well as exceptions.
Comments: (1) java.net.URL and java.net.URLConnection can handle file:
scheme. However they are not flexible enough, so not used in this
(2) java.io.File is used for its abstractness across platforms. Warning:
java.io.File API (1.4.2) does not elaborate on how special files, such as
/dev/* in unix and /proc/* on linux, are treated. Tests show (a)
java.io.File.isFile() return false for /dev/* (b) java.io.File.isFile()
return true for /proc/* (c) java.io.File.length() return 0 for /proc/* We are
probably oaky for now. Could be buggy here. How about special files on
(3) java.io.File API (1.4.2) does not seem to know unix hard link files. They
are just treated as individual files.
(4) No funcy POSIX file attributes yet. May never need?