Memento is a United States National Digital Information Infrastructure and Preservation Program ( NDIIPP ) –funded project aimed at making Web-archived content more readily discoverable and accessible to the public.
13-476: Memento is defined in RFC 7089 as an implementation of the time dimension of content negotiation . HTTP accomplishes negotiation of content via a variety of headers that allow clients and servers to find content that the user desires. text/plain image/png RFC 2616 en-US cz RFC 2616 gzip deflate RFC 2616 unicode-1-1 RFC 2616 GMT The Last-Modified header provided by HTTP does not necessarily reflect when
26-548: A Accept-Datetime header to retrieve version of a resource's representation at particular points in time and the IETF/W3C's Content Negotiation by Profile which describes use of an Accept-Profile header to retrieve resource representations conforming to data profiles. Neither RFC 7231 nor the more recent related specifications such as Content Negotiation by Profile specify how to resolve trade-offs in cases where different headers specify conflicting requirements, such as, in
39-517: A particular version of a web page came into existence. Also, the Last-Modified header may not exist in some cases. To provide more information, the Memento-Datetime header has been introduced to indicate when a specific representation of a web page was observed on the web. Copies of page can be found by simply navigating, in a web browser, to a link formatted, replacing urltoarchive with
52-439: A server, the server informs the user-agent which representations it has available as well as any metadata it has about each representation (e.g., content-type, quality, language, etc.). The user-agent then resubmits the request to a specific URL for the chosen representation. This can be automatically chosen by the user-agent or the user-agent can present the user with the choices and the user can directly choose such. More precisely,
65-425: Is performed by algorithms on the server which choose among the possible variant representations. This is commonly performed based on user agent-provided acceptance criteria. To summarize how this works, when a user agent submits a request to a server, the user agent informs the server what media types or other aspects of content presentation it understands with ratings of how well it understands them. More precisely,
78-455: Is preferred over other text types ( text/* ), GIF ( image/gif ) or JPEG ( image/jpg ) images are preferred over other image formats ( image/* ) but that any other media type ( */* ) is accepted as a last resort: In addition to aspects of server-driven content negotiation by content type and by language specified in RFC 7231, there are extensions defining other aspects of content negotiation, such as Memento which describes use of
91-412: Is preferred, if possible, but that English is also acceptable by setting: Accept-Language: de; q=1.0, en; q=0.5 Where the 'q' - quality - factor for German is higher than that for English. Multiple HTTP headers are often supplied together for content format or, specifically media type, language and a few other aspects of a resource. In addition to the commonly used Accept header for Media Type,
104-404: Is to give the user an index page and let them select the most appropriate choice; however it is often possible to automate the choice based on some selection criteria. HTTP provides for several different content negotiation mechanisms including: server-driven (or proactive), agent-driven (or reactive), transparent, and/or hybrid combinations thereof. Server-driven or proactive content negotiation
117-465: The Accept-Language header for language negotiation, RFC 7231 also describes Accept-Charset & Accept-Encodings for character encodings and content codings (compression) respectively. An example of a more complex request is where a browser sends headers about language indicating German is preferred but that English is acceptable, as above, and that, regarding formats, HTML ( text/html )
130-507: The above example, choosing between an HTML page in English and a GIF image in German. Agent-driven or reactive content negotiation is performed by algorithms in the user-agent which choose among the possible variant representations. This is commonly performed based on a server provided list of representations and metadata about them. To summarize how this works, when a user agent submits a request to
143-497: The best. One classical use of this mechanism is to serve an image in GIF or PNG format, so that a browser that cannot display PNG images (e.g. MS Internet Explorer 4) will be served the GIF version. A resource may be available in several different representations; for example, it might be available in different languages or different media types. One way of selecting the most appropriate choice
SECTION 10
#1732856177004156-452: The full URL of the page desired: JSON description of a Memento: redirect to a Memento with a datetime that is close to a desired datetime: Content negotiation Content negotiation refers to mechanisms defined as a part of HTTP that make it possible to serve different versions of a document (or more generally, representations of a resource) at the same URI , so that user agents can specify which version fits their capabilities
169-410: The user agent provides HTTP headers that lists acceptable aspects of the resource and quality factors for them. The server is then able to supply the version of the resource that best fits the user agent's needs. For example, a browser could indicate that it would like information in German by setting the Accept-Language like this: Accept-Language: de The browser may instead say that German
#3996