Hixie's Natural Log

2002-10-12 19:23 UTC Whitepaper: Pingback vs Trackback 1.1

Trackback 1.1 was released recently. This new revision is not backwards compatible, but does address several of the issues I raised when comparing Trackback to Pingback.

On the positive side. Trackback has now got sensible semantics for its autodiscovery RDF (it uses its own namespace now) and for its reporting (POST, not GET). On the negative side:

  1. Pingback still has simpler autodiscovery. Trackback's still suffers from the problems it had before: it requires parsing RDF (distinctly non-trivial!), can be ambiguous (there are more than one trackback URI per permalink), and requires the client to download the entire target page to find the trackback information instead of being able to rely on the HTTP and HTML headers.
  2. Trackback still doesn't support notifying arbitrary document formats of links, unlike Pingback which can be used with any format that can be served by HTTP GETs, past or present.
  3. Trackback still requires each post to have both a permalink and a trackback ID. Pingback uses the permalinks exclusively (there is just one pingback server URI per site, instead of one per post).
  4. Trackback still uses its own proprietary language for error reporting, instead of leveraging existing technologies. Pingback uses only existing technologies: HTTP, XML-RPC, and optionally (X)HTML.
  5. Pingback is still easier to deploy (I pingback-enable about 5 domains with one line in a .htaccess file). Trackback requires a different string to be added to each page.
  6. Trackback requires that the autodiscovery data be commented out! (This of course implies that you can't embed the string '--' anywhere within the RDF, as well as the theoretical problem with using data from comments.)

I also find it amusing that Trackback requires pages to include metadata in the form of RDF, but also requires the client to send this information to the trackback server. I encourage pingback servers to scan the source URIs for RDF and to use it to obtain the metadata. If the information is there, it seems redundant to also require it to be sent by the pingback system, which is not a specialised metadata system and would therefore never be able to hold all the metadata.

Finally, one has to laugh at the sample autodiscovery code included in the spec. I hope no-one actually uses that code to parse the RDF, because it simply won't work except in the simplest of cases! You can't parse XML using one regular expression like that unless the specification is extremely specific about the format that is to be used. (Like, for example, the pingback spec is.)

In conclusion: Trackback 1.1 is a step in the right direction, but if breaking backwards compatability wasn't a problem then why not jump all the way to pingback?

Pingbacks: 1 2 3 4 5 6 7 8