Un caso de estudio sobre el desarrollo de un esquema de URLs dinámico, basado en contenido para la construcción y aprovechamiento de URLs de alta relevancia en la optimización de búsquedas.
Demostración de Técnica Avanzada de Generación de URLs para Optimización de Búsquedas
1. Introducción
Ayudando a Google a encontrar contenido
relevante
Un handler de mod_perl para impresionar a Google
Ernesto Hernández-Novich <emhn@inmobiliarios.com.ve>
Inmobiliarios.com.ve
agosto, 2007 / Perl Mongers, Caracas
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
3. Introducción
¿Google necesita ayuda?
. . . y algunos tips sobre usabilidad
Páginas dinámicas
Los robots pueden no seguir algunos de estos enlaces
Los enlaces no son fáciles de recordar para el usuario –
Depende exclusivamente de sus marcas de navegación
JavaScript, formas y Cookies
Los robots no ejecutan JavaScript, llenan formas o aceptan
Cookies
Cada vez más usuarios rechazan los Cookies y el contenido
JavaScript
Llenar formas de búsqueda no es la mejor manera de navegar
por un sitio web
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
4. Introducción
¿Qué es REST?
Representational State Transfer – Un nombre rimbombante
para explicar que se deben usar URLs legibles
http://site.com/
catalog.php?id=69 http://site.com/customer/
&action=customer guitarra
&verbose=yes
URL compacto y más
URL largo y complejo fácil de recordar
No es evidente a qué Usualmente puede ser
apunta una marca de página
¿Se puede volver a válida
él. . . ?
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
5. Introducción
¿Cómo y para qué aprovecha esto
Inmobiliarios.com.ve?
Refinar amigablemente una búsqueda inmobiliaria
Permitir que se dispare una búsqueda directamente desde el
navegador. . .
Ayudar a Google en el cálculo correcto de la relevancia de los
resultados
Permitir al usuario guardar una búsqueda parcial, que puede
completar en cualquier momento
Ofrecer otra forma de usar el sitio – DWIM
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
6. Introducción
Interacción de mod_perl con Apache
Apache pasa por cada una
de estas fases cuando da
servicio a una solicitud
web
mod_perl permite proveer
manejadores para atender
cada una de estas fases,
con control completo de
Apache en cada una
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
7. Introducción
Configuración de los manejadores en Apache
Los manejadores se definen en
ICV::Our::Magic
P e r l L o a d M o d u l e ICV : : Our : : Magic
Un manejador para la fase trans,
<L o c a t i o n / q u i e r o />
PerlTransHandler que carga a un segundo
ICV : : Our : : Magic : : h a n d l e r
</ L o c a t i o n > manejador cuando se requiere
Opera sobre el espacio web
deseado en el sitio
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
8. Introducción
Directrices de configuración para Apache
apache2.conf. . .
<L o c a t i o n / q u i e r o />
ICVMagicSearchDSN
" yourDSNstringHERE "
OptionalUser
OptionalPass
...
</ L o c a t i o n > El módulo incorpora nuevas
directivas de configuración
En el módulo...
u s e c o n s t a n t DSNSTRING =>
Se definen callbacks para
’ ICVMagicSearchDSN ’ ; procesar las nuevas directivas
push @ d i r e c t i v e s ,
{
name => DSNSTRING ,
Se puede restringir dónde puede
r e q _ o v e r r i d e =>
Apache2 : : C o n s t : : ACCESS_CONF ,
aparecer la directiva
args_how =>
Apache2 : : C o n s t : : TAKE123 ,
errmsg
=> DSNSTRING .
’ "DSN" [ U s e r ] [ P a s s ] ’ ,
};
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
9. Introducción
Definición dinámica de manejadores dentro de
Apache
sub h a n d l e r
{
my $ r = s h i f t ;
...
handler decide cómo atender
if ( $script
and $ u r i =~ m! $ s u r i !
esta solicitud
and $ u r i ! ~ m! $ f u r i ! )
{ Cuando es necesario, se indica a
$r− a n d l e r
>h
( " p e r l −s c r i p t " ) ; Apache que el manejador
$r− e t _ h a n d l e r s
>s
( PerlMapToStorageHandler res_handler manejará la
=> Apache2 : : C o n s t : : OK ) ;
$r− e t _ h a n d l e r s
>s
solicitud
( PerlResponseHandler
=> & r e s _ h a n d l e r ) ; En caso contrario, se transfiere
}
... el control a otro manejador
}
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
10. Introducción
Generación de contenido desde un manejador
Apache
Dentro de los manejadores,
podemos usar módulos como
HTML::Template para producir
contenido
sub r e s _ h a n d l e r
{ El manejador debe devolver
my $ r = s h i f t ;
my $ t = HTML : : Template− >new Apache2::Const::OK para
(...)
$r− r i n t ( $t− u t p u t ) ;
>p >o indicar que procesó
r e t u r n Apache2 : : C o n s t : : OK;
} correctamente el
requerimiento. . .
. . . otros resultados permiten
señalar errores específicos al
usuario
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST
11. Introducción
¿Qué se logra con todo esto?
El usuario puede construir
su búsqueda
gradualmente haciendo
clicks sobre los enlaces
Los términos de búsqueda
se agregan al cuadro de
búsqueda
automáticamente – El
usuario puede completarlo
y pulsar Enter para
buscar
El texto de la página
cambia para ayudar al
usuario
Hernández-Novich Inmobiliarios.com.ve
mod_perl / REST