$Cambridge: hermes/src/prayer/docs/URL_OPTIONS,v 1.1.1.1 2003/04/15 13:00:03 dpc22 Exp $

Modifiers for login URLS
========================

/login/<username>
  Provides a (default) username for the login form. Must be the last two
  entries on the login URL.

debug
  Provides a series of checkboxes to selectively enable or disable
  optimisations and fetaures in the Prayer interface. The default set of
  features and optimisations will depend of the browser which is in use.
  The name in parenthesis in each case is the formal name of the variable.

  Enable icons (icons)
    - Hopefully obvious. Enabled by default for most browsers, not for Lynx.

  Enable short URLS (short)
    - Use relative rather than absolute references in session URLs.
    - Works by using a combination of of '@' and '/' as directory separators.
    - Enabled by default.

  Enable HTTP Cookie (cookie)
    - Try and use HTTP cookie rather than storing session ID in URL
    - Enabled in all browsers other than Lynx: little point in moving
      session ID to cookie there as current URL is not displayed.

  Enable Page substitition (substitution)
    - Rather than using HTTP redirects. Faster, but the URLs which are
      generated are less predictable.

  Enable HTTP inside HTTPS (embed)
    - Uses HTTP rather than HTTP links for icons (but only if short icons
      are not enabled). Provides a modest performance gain by sending
      icons in plaintext.
    - Enabled by default for Mozilla and IE. Disabled in Netscape 4 which
      cannot cope with mixed regime of URLs.

  Enable persistent HTTP connections (persist)
    - Uses HTTP/1.0 "Keep-Alive" and HTTP/1.1 persistent connections,
      if the user agent indicates that it supports them.

    - Disabled for Mac Netscape/4.7X which appears to have broken SSL support.
      Strongly recommended that you leave this enabled for all other browsers.

  Enable HTTP/1.1 (http_1_1)
    - Use HTTP/1.1 replies in response to HTTP/1.1 queries.
    - Enabled for Mozilla and IE. Disabled for Netscape <= 4.

  Enable HTTP/1.1 Pipelining (pipelining)
    - If browsers support it. I can't find a browser that uses pipelining
      at the moment. At least as I understand the term: two HTTP requests
      sent back-to-back down same pipe. Could be fault in my understanding.
      (Update 19/06/2002: Mozilla 1.0 and Opera 6 both support pipelining!)

  Enable gzip compression (gzip)
    - Enable on the fly compression of Web pages that we generate
      (but only if the broswer indicates that it is willing to accept
      gzip compression via an Accept-Encoding header)

  Treat as Netscape 4 (netscape4)
    - Netscape 4 has some slightly strange ideas about HTML markup:
       a) It puts blue borders around image submit buttons in forms
          unless you add a non-standard attribute "border=0".

       b) <TEXTAREA> boxes need an explicit "wrap="virtual" to generate
          the same (arguably incorrect) behaviour that is seen on other
          browsers.

      Neither of these two extensions is defined in HTML 4.01
      (transitional). Consequently it seems sensible to only add the
      attributes when we are reasonably certain that we are talking to a
      Netscape 4 browser. (Even though browsers are supposed to ignore
      any attribute that they do not recognise).
 
  Use direct connection (direct)
    - rather than HTTP proxy. Only useful if support for direct connection
      model is compiled in and configured. Otherwise this is simply ignored.

  Override User Preferences (override)
    - The checklist of options on this page is normally masked by the
      "Allow XXX feature" options in the Session part of the User
      Preferences screen. This checkbox overrides the default behaviour.

browser=<name>  (or user_agent=<name>)
  Set default options to match named browser. Could be useful if browser is
  masquarading as something that it is not. Useful values for <name>:

    mozilla    - Mozilla or Netscape 6
    netscape   - Netscape <= 4
    ie         - Internet Explorer
    lynx       - Lynx

enable=<list> (e.g: enable=http_1_1,pipelining)
  Explicitly enable specific named properties

disable=<list> (e.g: disable=http_1_1,pipelining)
  Explicitly disable specific named properties

opts=<list> (e.g: disable=http_1_1,pipelining)
  Explicitly set properties. Used by session process to control icon
  behaviour, overriding defaults.

Add "debug" to a login URL in order to get a series of checkpoints that
allow you to selectively enable or disable individual features. Examples:

   https://webmail.hermes.cam.ac.uk/debug
   https://webmail.hermes.cam.ac.uk/login/debug/dpc22




