Commit 1f3bb44d authored by Roy T. Fielding's avatar Roy T. Fielding
Browse files

Major overhaul of mod_negotiation.c.

  - cleanups to mod_negotiation comments and code structure
  - made compliant with HTTP/1.1 proposed standard (rfc2068) and added
    support for everything in the upcoming HTTP/1.1
    revision (draft-ietf-http-v11-spec-rev-06.txt).
      - language tag matching also handles tags with more than 2
        levels like x-y-z
      - empty Accept, Accept-Language, Accept-Charset headers are
        processed correctly; previously an empty header would make all
        values acceptable instead of unacceptable.
      - allowed for q values in Accept-Encoding
  - added support for transparent content negotiation (rfc2295 and
    rfc2296) (though we do not implement all features in these drafts,
    e.g. no feature negotiation).  Removed old experimental version.
  - implemented 'structured entity tags' for better cache correctness
    (structured entity tags ensure that caches which can deal with Vary
    will (eventually) be updated if the set of variants on the server
    is changed)
      - this involved adding a vlist_validator element to request_rec
      - this involved adding the ap_make_etag() function to the global API
  - modified guessing of charsets used by Apache negotiation algorithm
    to guess 'no charset' if the variant is not a text/* type
  - added code to sort multiviews variants into a canonical order so that
    negotiation results are consistent across backup/restores and mirrors
  - removed possibility of a type map file resolving to another type map
    file as its best variant

What is being committed is a substantially modified version of what Koen
submitted, with changes necessary to deal with the coding style, account
for the bug fixes previously committed to 1.3.4-dev, answer some of the
questions that Koen had left as comments, and reject some changes that would
degrade HTTP performance.  The result should be considered unstable
and is in dire need of testing, but the changes are too extensive for
another round of patch-and-pray.  Please test me.

PR:		3451, 1987
Submitted by:	Koen Holtman, Roy Fielding, Lars Eilebrecht


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x@82544 13f79535-47bb-0310-9956-ffa450edef68
parent 5a6d1512
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment