Por que as extensões geralmente estão ocultas nos URLs?

20

Muitas vezes, vejo que as extensões de URL estão ocultas (por exemplo .html, .php), mas nem todos os sites fazem isso.

Por que os webmasters ocultam a extensão? É por segurança, para o URL parecer mais limpo ou para algum outro propósito?

Desconhecido
fonte

Respostas:

29

Há vários motivos para remover extensões de URLs:

  • Para tornar os URLs mais limpos
  • Para facilitar a digitação dos URLs
  • Para facilitar a lembrança dos URLs
  • Para tornar os URLs mais amigáveis ​​às palavras-chave de SEO
  • Para poder alterar tecnologias - se você quiser mudar seu site de uma tecnologia para outra, é mais fácil fazê-lo sem que os usuários saibam se não há extensões nos URLs

Tenha em mente que muitos sites são gerados por um sistema de gerenciamento de conteúdo (CMS) que faria URLs semelhante a este: /index.php?page=this-is-the-widget-page. Isso é particularmente feio e tem muito mais crusta do que apenas uma extensão. Reescrever para remover o index.php?page=torna muito melhor.

Não são necessárias extensões na Web porque os servidores enviam o tipo de documento como um cabeçalho. As páginas da Web são exibidas como text/html, imagens como image/pngou image/jpeg. Isso permite que os navegadores saibam como renderizar o conteúdo sem usar uma extensão para descobrir que o URL contém texto, HTML, PDF ou imagem (para obter mais informações, consulte o artigo da Wikipedia, tipo de mídia na Internet ).

Alguns webmasters optam por usar uma extensão em seus URLs que corresponda a esse tipo de conteúdo. Portanto, qualquer text/htmldocumento teria uma .htmlextensão e qualquer image/pngdocumento teria uma .pngextensão. Isso pode ajudar quando os URLs são salvos no sistema de arquivos em que os metadados sobre seu tipo de conteúdo são perdidos. Na maioria dos sistemas de arquivos, o programa que abre o arquivo é escolhido pela extensão. Portanto, mesmo que uma página seja exibida pelo PHP, alguns webmasters removem a .phpextensão e outros a substituem .html.

Há também a questão de saber se os URLs podem terminar melhor em slash à direita ( /) quando eles não têm extensão que tem muita discussão sobre Stack Overflow.

Stephen Ostermiller
fonte
11
Em algumas estruturas (por exemplo, MVC), a URL não identifica um arquivo; portanto, não há extensão a ocultar.
Henrik Ripa
6

Todos os servidores da web possuem um ou mais "arquivos padrão". É o arquivo que será exibido sempre que um visitante acessar um URL que termina em uma barra /, ou seja, uma pasta.

Se o nome do arquivo padrão no servidor da web for index.phpe um visitante acessar www.example.com/pagename/, ele estará realmente acessando www.example.com/pagename/index.php.

Se não houver rastreamento /, o servidor da Web provavelmente está apenas reescrevendo o URL para removê-lo, pois não é necessário. Este site, de fato, faz isso.

Athoxx
fonte
2
Não sei se a pergunta era "como", mas sim "por que". Patrik, sua resposta está absolutamente correta em relação ao como. Stephen no entanto, respondeu o "porquê"
Brandt Solovij
4

Esse é o tipo de esquema de URI "legal" que eu pretendo no meu site pessoal.

Pessoalmente, a razão pela qual comecei a fazê-lo (e provavelmente muitos mais designers / desenvolvedores de web também!) Foi depois de ler o artigo “URIs legais não mudam” - este documento foi escrito pelo pai fundador da World Wide Web, Tim Berners -Lee.

No famoso artigo de Tim Berners-Lee, ele basicamente afirma as mesmas razões que Stephen Ostermiller tem em sua excelente resposta a essa pergunta .

Para dar uma resposta mais específica à sua pergunta principal, "Por que as extensões estão ocultas nos URLs?" Bem, eu diria que os principais motivos para mim são:

1. Para preparar o URI para o futuro:

Por exemplo, pode ter parecido uma boa ideia no momento usar um URI como: http://www.example.com/page.pl onde .plestá sendo a extensão do arquivo para um script Perl. No entanto, thesedays, a maioria dos desenvolvedores web usar ASP.NET ou PHP para backend-scripting, então véspera embora hoje , http://www.example.com/page.php soa como uma idéia melhor, eventualmente, PHP e ASP / ASP.net irá tornar-se antiquado. Portanto, uma idéia melhor é remover completamente a extensão.

2. Legibilidade e memorabilidade:

É muito mais fácil passar um URI "legal" para as pessoas verbalmente, em papel (por exemplo, anúncios, cartões de visita etc.), sem mencionar que é mais fácil de lembrar.

3. "Hackabilidade" *

Embora eu diria que a grande maioria dos usuários hoje em dia provavelmente passa por um mecanismo de pesquisa para tudo - eu até vi pessoas que acessavam a barra de endereços e digitavam www.google.come depois usavam o Google para digitar literalmente www.ebay.com! Mas acho que, se eu tiver um site baseado em multimídia, o URI http://www.example.com/videoindica que a seção de música pode ser encontrada no URI http://www.example.com/audioe assim por diante. (Ainda uso a barra de endereços para acessar sites - sou bastante "antiquado" sobre esse tipo de coisa!)

* (! Oh “Hackability” - faz essa palavra existe mesmo ?! Bem, não agora !) :-)

4. ** Estética: Para torná-los mais bonitos! (Culpe meu TOC!)

No entanto, notei lendo vários sites relacionados ao SEO que muitos webmasters realmente anexam extensões de arquivo a URIs dinâmicos, por exemplo:

O URI real pode ser: http://www.example.com/article

No entanto, o webmaster executará uma reescrita para tornar a aparência do URI estática, como: http://www.example.com/article.html

A lógica por trás disso é que, basicamente, um mecanismo de pesquisa atribui uma classificação mais alta às páginas estáticas (que são, aparentemente, menos propensas a mudar). (Embora eu não seja exatamente um especialista em SEO, eu pessoalmente não aceito essa ideia - estou convencendo que, com o tipo de mente por trás dos algoritmos do Google e do Bing, será necessário um pouco mais do que uma extensão de arquivo falsa para con o seu caminho para a pole position da SERP!)

Para obter mais informações sobre como nomear URIs, recomendo a leitura destes artigos:

Tim Berners-Lee:

Dicas de controle de qualidade do W3C:

Brian Kelly (UK Web Focus / UKOLN - Universidade de Bath):

Espero que isto ajude!

Jordan Clark
fonte
2

Concordo plenamente com todas as respostas colocadas acima. Basta acrescentar que uma das razões pelas quais as extensões estão ocultas no URL é a segurança. Simplificando, se você não expor a extensão na URL, é pouco difícil descobrir a tecnologia na qual o aplicativo foi construído. Então, digamos que uma página feita em PHP e a extensão não esteja oculta, um hacker pode descobrir as vulnerabilidades do PHP e usá-lo para executar alguma atividade maliciosa.

Vishal Raj
fonte
Concordo com o seu comentário, mas acho que usar URIs para ofuscar sua tecnologia de back-end como medida de segurança é inútil. À primeira vista, você está ocultando a tecnologia específica usada. Infelizmente, as únicas pessoas que isso vai “enganar” são os usuários finais; alguns (se não a maioria) não têm idéia do que é um URL, e muito menos dizer ASP / PHP / etc. Por falta de uma frase melhor, você são uma espécie de “pregando para o coro.”
Jordan Clark
1

Você oculta suas extensões de página ou não, as pessoas ainda podem saber qual tecnologia você usou. Ao usar o cURL, não é impossível obter sua tecnologia buscando as informações do cabeçalho.

curl -I -L rembatvideo.ga

Então, você veria algo como sua tecnologia, solicitação de cache, conexão e muito mais.

Hans Isaa
fonte
0

Concordo totalmente como explicado por "Stephen Ostermiller", mas eu gostaria de mencionar o truque por trás disso para ocultar a extensão de URLs. E para isso você deve usar a regra de reescrita .htaccess , eis o script que ajuda você:

Redirecionar .phpsolicitações externas para URL sem extensão

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Rajesh Magar
fonte