© 2006 Jeena Paradies
The Personal Avatar (aka Pavatar) is a picture hosted on your webspace which can be used by webmasters to display an image referring to you. E.g. you make a comment or a forum posting and the Pavatar implementation displays the image. This way,delivering your Personal Avatar is peripheral and can be (nearly) anonymous, so there is no way for companies to collect informations about your habits on the internet.
The implementation which displays the Personal Avatars should cache them to secure a permanent reachability.
This is an early and unstable version, comments are welcome, please write to <pavatar@jeenaparadies.net>.
Please do not use this specification for implementation until it is stable. There are currently three known implementations of this specification, but no formal testing has been done.
The Personal Avatar system is a way to use small personalized graphics to standardize your profile picture through various websites when leaving comments and other content. Commentators are able to host their Personal Avatars themselves and the implementation must support the commentators ability to restrict access to their Personal Avatar. The publisher of the Personal Avatar should be able to edit and cache the Personal Avatar. The publisher must be able to refuse a Personal Avatar.
The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this document are to be interpreted as described in [RFC 2119].
The implementation must use HTTP ([RFC 1945], [RFC 2616]) to test for the availability of a Personal Avatar at the URL specified by the commentator. In case of success, it should download, save and serve it locally but may also refer to the originating URL of the Personal Avatar.
An implementation must be able to use the HTTP caching mechanisms.
A valid Personal Avatar must be a 80x80 pixel sized image in GIF ([GIF89a]), PNG ([PNG]) or JPEG ([ISO/IEC IS 10918-1], [ISO/IEC IS 14495-1], [ISO/IEC IS 15444-1]) format.
A valid Personal Avatar must be publicly accessible through a valid HTTP URL ([RFC 1738]) and must not exceed the size of 102400 Bit (twice the size of an uncompressed 80x80pixel big picture with 8-bit color depth).
A valid Personal Avatar must be publicly accessible through a valid HTTP URL ([RFC 1738]). This URL must be used to reference the Personal Avatar (see Autodiscovery).
The Personal Avatar MUST have the correct Content-Type header. The commentator
may use HTTP Cache-Control and/or Expires headers.
The commentator may restrict access to the Personal Avatar. The commentator must
act accordingly to HTTP, e.g. should response with a 403 HTTP status code, if access is denied.
It is recommended to use the key word "none" of the HTTP-Header
X-Pavatar as described in 3.a. to refuse the delivery of the Personal
Avatar completly.
The URL of the Personal Avatar must be offered by the commentator in one or more of the following ways to the publisher, the use of 3.a. and 3.b. is recommended. The publisher must accept all three ways.
If choosed a reference to a Personal Avatar must be returned with a X-Pavatar
HTTP header, for example:
X-Pavatar: http://example.com/my/directory/my-own_pavatar.png
The value of the X-Pavatar header must be the absolute URL of the
Personal Avatar or the keyword "none".
The server response must not include more than one of such header.
If chosen, an HTML or XHTML Personal Avatar enabled page must contain a <link>
element. It must have one of the following forms:
<link rel="pavatar" href="URL">
<link rel="pavatar" href="URL" />
The URL in the "href" attribute must be a valid and absolute HTTP URL according to
[RFC 1738] or the keyword "none".
If choosed there must be a file named "pavatar.png" on the commentators server. The URL for this file must conform to the following form. The EBNF keywords used here are similar to the ones used in [RFC 1738].
puri = "http://" hostport *[ "/" hsegment ] "/pavatar.png"
hsegmet ends with a slash: GOTO 3hsegmenthsegmentsThe HTTP Header (3.a.) method MUST have the highest precedence, the Direct URL (3.c) method the lowest.
The implementation should ensure to use as little traffic as possible to deal with Personal Avatars
(e.g., use conditional get HTTP headers like If-Modified-Since).
Personal Avatar implementations, given a commentators website URL, should follow the following steps to find the Personal Avatar URL (obs. if the implementation finds the keyword "none" instead of a valid URL it must abbort the autodiscovery because there will be no Personal Avatar at all):
X-Pavatar headers then the first such
header's value should be used as the Personal Avatar resource. Clients must
examine the HTTP headers if they are able to. If for some reason the HTTP headers are not available to the
implementation then this step may be skipped, however, implementers should be
aware that this will reduce the usefulness of their application as link elements cannot be used for resources
that are neither HTML nor XHTML, and HTTP headers are defined to override link elements when they differ.If there is no X-Pavatar HTTP Header, search the entity body for the first match of the following
regular expression:
<link rel="pavatar" href="([^"]+)" ?/?>
If the regular expression matched, clients must then expand the four allowed entities
(& for &, < for <,
> for >, and " for ").
X-Pavatar HTTP Header and no <link> could be found the implementation
shall check first if there is a Personal Avatar in the commentators website directory. If
not, it shall check if there is a Personal Avatar in the commentators website document root.
If it finds a Personal Avatar the implementation should download it and save a copy.
The implementation may manipulate the cached Personal Avatar if necessary, e.g. changes in width and height, colors, etc.. It should not manipulate it if the commentator has avoided caching.
The implementation should cache all Personal Avatars it wants to serve. It
should not serve it remotely. The commentator can avoid caching by specifying an Expires or
Cache-Control header referring to a date prior or equal to now.
The implementation may check regularly for changed Personal Avatars using the information given in the
Cache-Control or Expires headers. If the commentators website doesn't send these headers,
it is recommended that it check weekly for changes.
This chapter is informative. UAs are not required to implement the properties of this chapter in order to conform to the Personal Avatar specification.
Clients may optimize the search. For example:
<link> elements may only appear in the document's head, clients may abort
when the strings </head> or <body> are seen (e.g. if the client
reads the content one line at a time).The implementation may include an automatic denial-of-publish mechanism if the pavatar is unknown to the system. It may include a notification mechanism in case of an automatic denial-of-publish.