Querido Facebook, ¿me espías?

Sí, el título de esta entrada puede resultar llamativo, insultante e incluso puede ser una buena razón para echarme un gran enemigo de color azul.

Aquí quiero hacer un análisis al nivel más técnico del muy conocido botón “Me gusta” y como puede ser usado para espiar por donde navegamos (para los que se quieran saltar todo el rollo técnico que pasen directamente a la página 2).

Este botón, al tratarse de un elemento externo a nuestra web, necesitamos que sea cargado desde Facebook. En mi experiencia en la web me he topado con muchos problemas, entre ellos el de cargar contenidos desde sitios externos, basicamente existen dos métodos para ello:

  • Petición Ajax: Como expliqué en la entrada anterior a esta, podemos cargar contenidos desde sitios externos al nuestro si este tiene habilitadas ciertas directivas. Sólo cargaríamos la información que necesitamos, nada extra.
  • Mediante jsonp: Json with padding. Algo más compleja pero muy usada, trata te agregar a la web “en caliente” una etiqueta script la cual carga un script en Javascript (valga la redundancia)  que trae el HTML renderizado y serializado de una forma especial.
  • Embeber mediante iframe: Trata de embeber el contenido externo como si fuese una página, es decir, si cargamos la dirección en el navegador esta se verá igual sólo que en el contenedor que la insertemos.

Pues bien, los chicos de Facebook si realmente quisieran optimizar recursos y hacer las respuestas mucho más óptimas, optarían por la primera o la segunda solución, ya que incluso la carga de estilos nos la podríamos ahorrar.

Pero probando los distintos métodos que Facebook nos brinda para embeber sus botones, nos podemos dar cuenta que todos, absolutamente todos utilizan la tercera (aunque pretendan disimular, siempre acaba como iframe).

Y es que existe una diferencia importante en como nuestro navegador gestiona dichas peticiones, en ajax el navegador no envía las cookies del dominio al que hacemos la petición y con iframe sí lo hace. Aunque también utiliza jsonp para la carga del script principal (y este método también envía cookies), nos centramos en el iframe que es la ténica que usa para cargar el botón.

Páginas: 1 2

Los comentarios estan cerrados.