Por que alguns URLs contêm ID e nome numéricos?
Pergunta
Estou me perguntando por que o link para o perfil se parece com:
http://stackoverflow.com/users/ID/NAME
não simplesmente:
http://stackoverflow.com/users/ID
ou melhor ainda:
http://stackoverflow.com/users/NAME
Pode haver alguns usuários com o mesmo nome?Ou um usuário pode ter vários nomes?
Solução
Todos os SO-URLs são do formulário ID/Descrição, onde o ID é único e a descrição é opcional. Então /users/12890/arne-burmeister
é o mesmo que /users/12890/huhu
e /questions/420380/why-does-the-link-to-the-user-profile-have-both-id-and-name
é o mesmo que /questions/420380/foo
. A recuperação apenas usa o ID, mas é muito melhor para o ranking do Google, quando o usuário/pergunta/o que quer que você seja, ocorre no URL (também para os seres humanos, isso é muito mais descritivo ;-).
A propósito, a recuperação do ID é mais rápida do que por uma string de texto tão grande. E, é claro, o URL permanece válido se alguém mudar de nome de usuário ou a pergunta.
Outras dicas
A parte após a última barra parece estar relacionada a SEO (ou seja, tornando o URL mais expressivo).
Nos URLs que testei, você poderia substituir essa parte pelo que quisesse, ainda funcionou. Então o URL http://stackoverflow.com/users/37086/othername
Ainda aponta para o seu perfil.
Existe um Solicitação de UserVoice por esta. Se você quer que isso aconteça, o UserVoice é o lugar certo para discutir / votar.
Eu diria que fazer uma pesquisa no banco de dados apenas na string do nome seria mais caro do que uma pesquisa numérica na chave primária, mesmo se a coluna do nome estiver indexada.O nome é então adicionado para tornar os URLs mais amigáveis ao usuário e ao SEO.
Seu nome, então, não é um clique exclusivo em usuários e digite Josh, há uma página inteira nossa. Então você tem que ter o ID. Quanto ao porquê do nome que todos os outros são tão bons quanto os meus.
Tente mudar ou remover o nome e veja o que acontece.
Eu acho que é apenas para que seus URLs lhe digam o que esperar, mas o aplicativo não precisa (ou realmente usa) essas informações.
A Amazon faz algo bastante parecido com seus livros, se bem me lembro: eles têm o ASIN (seu ID interno) e o nome do livro no URL, mas apenas procuram o Asin.
Apenas especulando:O ID permite a recuperação muito rápida dos dados que a página de perfil apresenta.O nome é apenas para humanos e ignorado, pois é mais fácil para mim saber que você é rkj e eu sou phihag do que seu ID é 37086 e o meu é 35070.