README.PWD
上传用户:seven77cht
上传日期:2007-01-04
资源大小:486k
文件大小:5k
源码类别:

浏览器

开发平台:

Unix_Linux

  1.           WWWOFFLE - World Wide Web Offline Explorer - Version 2.4a
  2.           =========================================================
  3. This is the logic that the WWWOFFLE program follows when handling requests for
  4. URLs that have a password in the header or in the URL itself.
  5. Background Information
  6. ----------------------
  7. 1) When a browser first requests a page that is password protected a normal
  8.    request is sent without a password in it.  This is obvious since there is no
  9.    way to decide in advance which pages have passwords.
  10. 2) When a server receives a request for page that requires authentication, but
  11.    for which there is none in the request, it sends back a '401 Unauthorized'
  12.    response.  This contains a "realm" which defines the range of pages over
  13.    which this username/password pair is valid.  A realm is not a well defined
  14.    range, it can be any set of pages on the same server, there is no requirement
  15.    for them to be related, although they normally are.
  16. 3) When a browser receives a '401' reply it will prompt the user for a username
  17.    and password if it does not already have one for the specified realm.  If one
  18.    is already known then there is no need to prompt the user again.
  19. 4) The request that the browser sends back this time includes in the header the
  20.    username and password pair, but otherwise the same request as in (1).
  21. 5) The server now sends back the requested page.
  22. 6) Some browsers follow steps (1)-(5) for all pages on the server.  Others try
  23.    to guess the range of pages that are covered by a realm, they then send the
  24.    username/password pair for all pages in the same directory for example.  This
  25.    means that they follow steps (3)-(5) and miss out steps (1) and (2) for these
  26.    pages.
  27. WWWOFFLE Implementation
  28. -----------------------
  29. 1) If a password is specified in the request then it is handled as if it were in
  30.    the URL itself.  This means that the spool file name is hashed in the same
  31.    way as normal, but it contains the username/password.
  32. 2) A page is always placed in the cache without a username/password for every
  33.    page that has a username/password.  This ensures that when the page is later
  34.    requested while offline the version without the password can be sent to
  35.    prompt the browser.  This is to solve the problem of browsers sending
  36.    username/password pairs for all pages, when the browser is closed and
  37.    restarted, a request for one of the pages (bookmarked perhaps) will not work
  38.    since the page without the username/password is not present so will be
  39.    requested for later fetching.
  40. 3) The mode of operation of the WWWOFFLE server is as follows:
  41. URL   = URL without password
  42. URLpw = URL with password
  43. WWWOFFLE mode - See README
  44. WWWOFFLES | Password  |   URL   |  URLpw  | Action to take
  45.    mode   | provided? | cached? | cached? |
  46. ----------+-----------+---------+---------+-------------------------------------
  47.   Spool   |    No     |   No    |   n/a   | Request URL (->F)
  48.   Spool   |    No     |   Yes   |   n/a   | Spool URL
  49.   Spool   |    Yes    |   No    |   No    | Request URLpw (->F)
  50.   Spool   |    Yes    |   No    |   Yes   | Spool URLpw, Request URL (->F)
  51.   Spool   |    Yes    |   Yes   |   No    | if(!401) Spool URL
  52.   Spool   |    Yes    |   Yes   |   No    | if(401)  Request URLpw (->F)
  53.   Spool   |    Yes    |   Yes   |   Yes   | if(!401) Spool URL
  54.   Spool   |    Yes    |   Yes   |   Yes   | if(401)  Spool URLpw
  55. ----------+-----------+---------+---------+-------------------------------------
  56.   Fetch   |    No     |   n/a   |   n/a   | Get URL
  57.   Fetch   |    Yes    |   No    |   n/a   | Get URL, if(401) GET URLpw
  58.   Fetch   |    Yes    |   Yes   |   n/a   | if(!401) Get URL
  59.   Fetch   |    Yes    |   Yes   |   n/a   | if(401)  Get URLpw
  60. ----------+-----------+---------+---------+-------------------------------------
  61.   Real    |    No     |   n/a   |   n/a   | Get URL
  62.   Real    |    Yes    |   No    |   n/a   | Get URL, if(401) Get URLpw
  63.   Real    |    Yes    |   Yes   |   n/a   | if(!401) Get URL
  64.   Real    |    Yes    |   Yes   |   n/a   | if(401)  Get URLpw
  65. ----------+-----------+---------+---------+-------------------------------------
  66. The other minor modes (SpoolOrReal, RealPragma etc.) act like the one that they
  67. are based on.
  68. 4) When fetching recursively, a supplied username/password is used only on the
  69.    same server, but for all requests (fetch mode sorts out which need it).
  70. 5) When a username is supplied but no password (e.g. a FTP URL with the username
  71.    in the URL) then always return a page prompting for a password
  72. Andrew M. Bishop
  73. 2nd September 1999