Prefacio a la traducción

Esta es una traducción del primer borrador de Pingback. If you can read english fluently, there's nothing like the real thing

Como no soy traductor, este documento no ofrece nada más que mi promesa de que creo firmemente que no contiene errores de bulto y que refleja fiélmente el documento original

Respecto a los anglicismos, yo los uso habitualmente al hablar y no pienso discutir sobre ello. He usado los términos que yo uso comunmente:

Para cualquier cosa estoy disponible en mail y mort4ever@jabber.org (Jabber). Mi weblog está en http://mort.mine.nu:8080/b2/. Gracias por la visita :)

Pingback

Pingback es un sistema que permite a un weblog recibir una notificación automática cuando es enlazado desde otros weblogs. El mecanismo es completamente transparente para el autor del weblog que realiza el enlace, no requiere la intervención del usuario y opera sobre el principio del descubrimiento automático de todos los parámetros necesarios.
Un mensaje a un weblog utilizando Pingback funcionaría de la siguiente manera:
  1. Alice pone un mensaje a su weblog. Su mensaje incluye un enlace a un mensaje en el weblog de Bob
  2. El blogware de Alice contácta con el de Bob y le dice "Mira, Alice ha puesto un mensaje que enlaza a uno de tus mensajes"
  3. Cuando alguien lee un mensaje en el weblog de Bob, su blogware se encarga de notificar que Alice tiene un enlace a este mensaje
  4. Ahora los usuario pueden seguir este enlace hasta el mensaje de Alice y leer más
Permite el "enlazado a la inversa" -- poder ir hacia arriba en una cadena de enlaces en vez de meramente seguirlos hacia abajo.

Cómo funciona: descripción técnica

Si lo único que quieres es usar Pingback no necesitas conocer esta parte. Es sólo para gente que escribe blogware y quiere dotarlo de Pingback.

Pingback se basa en el weblog del que pone el mensaje mandando un "ping" XML-RPC al weblog al que está enlazando, diciéndole que ha sido enlazado y de dónde viene el enlace.

Un mensaje de ejemplo, usando Pingback, a nivel técnico, iría de la siguiente manera

Por parte del weblog que pone el mensaje

  1. Alice pone un mensaje en su weblog, que incluye un enlace a un mensaje en el weblog de Bob (nos referiremos al permalink del mensaje de Alice como aliceBlogPostPermalink y a la URL del enlace al weblog de Bob como bobBlogPostPermalink)
  2. El blogware de Alice extrae todos los enlaces externos del mensaje de Alice
  3. En cada enlace externo, se hace lo siguiente
    1. Petición del contenido de la página a la que se refiere el enlace. (Nota: puedes querer controlar esta petición, concretamente su tamaño, ya que puede que no desees bajarte todo el contenido si este es muy extenso, ya que esto se convertiría en la práctica en un DoS (denial-of-service/denegación de servicio) contra el weblog.
    2. Parsear el contenido de la página buscando la etiqueta LINK para el Pingback:
      <link rel="pingback" href="http://bobblog/xmlrpcserver">
      Si esta etiqueta no se encuentra en la página, el weblog de Bob no ofrece Pingback, así que lo dejamos aquí
    3. Si la etiqueta sí está en la página, entonces el atributo href indica la dirección del servidor XML-RPC al que debe hacerse el "ping" para notificar al mensaje de Bob que le están enlazando. Ejecuta una llamada XML-RPC a la función pingback.ping(aliceBlogPostPermalink,bobBlogPostPermalink) de ese servidor.

La parte del weblog enlazado

  1. El weblog de Bob recibe un ping del weblog de Alice (el enviado en el paso 3.3 mencionado arriba) refiriendose a aliceBlogPostPermalink (el sitio desde el que se enlaza) y bobBlogPostPermalink (la página a la que Alice ha enlazado)
  2. Confirma que bobBlogPostPermalink es reálmente un mensaje en su weblog
  3. Hace una petición al contenido de aliceBlogPostPermalin (Nota: de nuevo puede interesarte controlar esta petición para prevenir denegaciones de servicio y puede que también comprobar el content-type del contenido que devuelve el servidor)
  4. Verifica que el contenido obtenido contiene de verdad un enlace a bobBlogPostPermalink
  5. Recoge cualquier otro tipo de datos que se requieran del contenido de aliceBlogPostPermalink (puede incluir el enlace a bobBlogPostPermalink, algún tipo de contexto, atributos del lenguaje de la página, etc...)
  6. Registra el pingback (dependiendo del blogware, esto puede incluir guardar los datos en una base de datos y/o reconstruir las páginas estáticas que se refieran al pingback