Vajon mi történik akkor,ha valaki be copy pastez egy linket, amit megszeretne osztani facebookon? A válasz nagyon egyszerű:
Elindul egy ajax kérés a háttérbe, és egyszer csak megjelenik néhány infó a beírt urlról. Az ajax kérést ő végzi:
https://www.facebook.com/ajax/metacomposer/attachment/link/scraper.php?scrape_url=http://www.google.hu&targetid=12104536&__a=1&xhpc=composerTourStart&nctr[_mod]=pagelet_composer&__user=9323
De engem az érdekelt legfőkébb, hogy milyen ipről jön az fb gép.
Próbaként csináltam egy átirányítási láncot, azaz a php script átirányítja a klienst a következő oldalra, majd az megint tovább irányul a következőre. A facebook kliens, ugyanúgy átirányul mint egy sima felhasználó.
A háttérben ez így néz ki ( apache logok alapján ):
69.171.247.7 - - [05/Apr/2012:14:53:37 +0200] "GET /facebook_2/ HTTP/1.1" 302 - "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
69.171.247.1 - - [05/Apr/2012:14:53:38 +0200] "GET /facebook_2/index2.php HTTP/1.1" 302 - "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
69.171.247.7 - - [05/Apr/2012:14:53:38 +0200] "GET /facebook_2/index3.php HTTP/1.1" 302 - "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
69.171.247.3 - - [05/Apr/2012:14:53:38 +0200] "GET /facebook_2/index4.php HTTP/1.1" 302 - "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
Bármilyen meglepő a facebookosok nem olyan hülyék, ezért külön "gépekről" végzik el az urlek queryzését.
Ami igazán érdekes, és védi a gépek erőforrását az az, hogy ezeket a resultokat elraktározza egy időre a facebook, és hogyha ugyan ezt az url-t egy másik user is bemásolja, akkor nem kell megint queryznie. Gondoljunk csak bele, hogy egy új Lady Gaga számnál mennyire meg zabálná a szerót, ha 1 millió user egyszerre akarná megosztani a youtube klippet. Így viszont elég catche ből előtöltenie és voalá. Másik oldalról a facebook szerók egy kisebb hosztot is simán kiakasztanának, hogyha az 1 millió user, egyszerre GET elné a facebook szeróval a hoszt ip-jét.