Differences between Mozilla Gopher support and Overbite
-------------------------------------------------------

Gopher is supported internally by Firefox 1.5-3.x and Camino 1.0+ without
requiring the Overbite add-on, but there are several critical differences
in behaviour, most notably the cosmetic changes and that Mozilla's Gopher
support is strictly limited to only access port 70.

In general, Overbite is more standards-rigid and enforces certain practises
in documents which were only laxly demanded by Mozilla's Gopher support. For
the vast majority of gopher sites there will be little or no difference
except for Overbite's cosmetic improvements. However, the following critical
changes in certain deprecated behaviours apply:

- Overbite allows access to a range of specifically approved port numbers,
  not just port 70. In Mozilla, even if a Gopher URL specified a port other
  than 70, it was always internally rewritten to 70; certain servers have taken
  advantage of that fact while "appearing" to run on higher port numbers.
  In Overbite, since many of those port numbers are now permitted, such servers
  will need to use the correct port number in URLs and menus.

  Furthermore, any port that is not approved by Overbite will cause an
  error message instead of being internally redirected to port 70.

- HTML pages downloaded from a gopher server require all URLs to have absolute
  paths, not relative paths, for any tag where a URL or path is specified.
  This is because the item type portion of the URL is not equipped for
  relative processing. This was allowed in Mozilla due to content-sniffing, but
  is incorrect behaviour because the item type for an HTML page is always 'h'
  and URLs it references might not have the same item type. Overbite rigidly
  enforces item type hierarchy, and many images and HTML links/anchors in a
  Gopher-hosted HTML document specified with relative URLs will not display
  properly. These documents must be rewritten with absolute paths.

  (Please note that even with Mozilla's lax itemtype support, many relative
  URLs and anchors still didn't work anyway, so this is good practise in
  both situations.)

- The I itemtype as it is currently used is a violation of Gopher's usually
  unambiguous item type mapping, since it can specify a range of image file
  types instead of a certain specific type. In Mozilla, the breadth of
  supported types was supported by using content-sniffing, which was usually
  acceptable for the docshell itself. However, this is not recommended for
  clients that have to do setup in advance or launch external viewers,
  something that is also possible in Mozilla and Overbite; for this reason,
  Overbite uses the extension of the file to predict the correct type mapping.
  Overbite understands .jpg, .jpeg, .gif (though this should be the g
  itemtype), .svg, .bmp, .ico, .png, .icon, .tif and .tiff. As the I itemtype
  was historically used to indicate JPEG images, the default if Overbite
  cannot determine the filetype from the extension is to indicate a JPEG
  image to the docshell.

- Overbite introduces the p and d itemtypes for PNG and PDF files respectively.
  This is part of a general strategy to clean up the overloaded I itemtype.
  These types can be used by servers speaking to Mozilla-based Gopher clients,
  who will simply content-sniff them as usual. The use of these new
  item types for future compatibility is strongly encouraged.

- Sound and movie itemtypes internally are handled as simple binaries by
  Overbite.



.
