Mecanismo de reescrita - Rewrite engine
Um mecanismo de reescrita é um componente de software que executa a reescrita em Uniform Resource Locators , modificando sua aparência. Essa modificação é chamada de reescrita de URL . É uma forma de implementar mapeamento ou roteamento de URL em um aplicativo da web . O mecanismo é normalmente um componente de um servidor da web ou estrutura de aplicativo da web . URLs reescritos (às vezes conhecidos como URLs curtos , bonitos ou extravagantes , amigáveis aos mecanismos de pesquisa - URLs SEF ou slugs ) são usados para fornecer links mais curtos e de aparência mais relevante para páginas da web. A técnica adiciona uma camada de abstração entre os arquivos usados para gerar uma página da web e a URL que é apresentada ao mundo exterior.
Uso
Os sites com conteúdo dinâmico podem usar URLs que geram páginas do servidor usando parâmetros de string de consulta . Geralmente, eles são reescritos para se parecerem com URLs de páginas estáticas em um site com uma hierarquia de subdiretórios . Por exemplo, o URL de uma página wiki pode ser:
http://example.com/w/index.php?title=Page_title
mas pode ser reescrito como:
http://example.com/wiki/Page_title
Um blog pode ter um URL que codifica as datas de cada entrada:
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19
Pode ser alterado assim:
http://www.example.com/Blog/2006/12/19/
que também permite ao usuário alterar o URL para ver todas as postagens disponíveis em dezembro, simplesmente removendo a codificação de texto do dia '19', como se navegasse "para cima" em um diretório:
http://www.example.com/Blog/2006/12/
Um site pode passar termos especializados do URL para seu mecanismo de pesquisa como um termo de pesquisa. Isso permitiria aos usuários pesquisar diretamente de seu navegador. Por exemplo, o URL inserido na barra de localização do navegador :
http://example.com/search term
Será codificado em url pelo navegador antes de fazer a solicitação HTTP . O servidor pode reescrever isso para:
http://example.com/search.php?q=search%20term
Benefícios e desvantagens
Existem vários benefícios em usar a regravação de URL:
- Os links são "mais limpos" e descritivos, melhorando sua "facilidade de uso" tanto para os usuários quanto para os mecanismos de pesquisa .
- Eles evitam " links em linha " indesejados , que podem desperdiçar largura de banda .
- O site pode continuar a usar os mesmos URLs, mesmo se a tecnologia subjacente usada para atendê-los for alterada (por exemplo, mudar para um novo mecanismo de blog ).
No entanto, também pode haver desvantagens; se um usuário deseja modificar um URL para recuperar novos dados, a reescrita de URL pode dificultar a construção de consultas personalizadas devido à falta de variáveis nomeadas. Por exemplo, pode ser difícil determinar a data a partir do seguinte formato:
http://www.example.com/Blog/06/04/02/
Nesse caso, a string de consulta original era mais útil, pois as variáveis de consulta indicavam mês e dia:
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02
Frameworks da web
Muitas estruturas da web incluem reescrita de URL, diretamente ou por meio de módulos de extensão.
- O servidor Apache HTTP tem reescrita de URL fornecida pelo módulo mod_rewrite.
- URL Rewrite está disponível como uma extensão do Microsoft IIS .
- Ruby on Rails tem reescrita de URL embutida via Routes.
- Jakarta Servlet tem reescrita de URL extensível por meio do OCPsoft URLRewriteFilter e Tuckey UrlRewriteFilter.
- Jakarta Server Faces simplificou a reescrita de URL por meio do PrettyFaces: URLRewriteFilter.
- Django usa um sistema baseado em expressões regulares . Isso não é estritamente uma regravação de URL, pois não há script para 'regravar', nem mesmo uma estrutura de diretório; mas fornece toda a flexibilidade de regravação de URL.
- Java Stripes Framework tem funcionalidade integrada desde a versão 1.5.
- Muitos frameworks Perl, como Mojolicious e Catalyst , possuem esse recurso.
- CodeIgniter tem reescrita de URL fornecida.
- lighttpd tem um módulo mod_rewrite.
- nginx tem um módulo de reescrita. Por exemplo, uma geração de página multi-link multi-variável de um URI como / f101, n61, o56, d / ifconfig é possível, onde várias partes individuais como f101 são expandidas com a ajuda de expressões regulares em variáveis para significar FreeBSD 10.1- RELEASE e assim por diante.
- O servidor Hiawatha HTTP possui um kit de ferramentas de URL que suporta a regravação de URL.
- O servidor HTTP Cherokee oferece suporte a expressões regulares de reescrita e redirecionamentos de URL.
De uma perspectiva de desenvolvimento de software , a reescrita de URL pode ajudar na modularização do código e no fluxo de controle , tornando-se um recurso útil de estruturas da web modernas.
Veja também
- Controlador de entrega de aplicativos
- aiScaler Traffic Manager
- .htaccess
- Servidor Apache HTTP
- Negociação de conteúdo
- HTTP
- Servidor de Informações da Internet
- Link permanente
- Zeus Web Server
Notas
links externos
- Apache mod_rewrite
- Apache mod_rewrite Lista completa de variáveis CGI e valores para construir reescritas.