Devo usar letras maiúsculas nos URLs?

9

No momento, estamos decidindo uma convenção de nomenclatura consistente em um site com vários aplicativos da web. Historicamente, sou defensor das 'letras minúsculas de todas as letras!' ao criar URLs:

http://example.com/mysystem/account/view/1551

No entanto, nos últimos um ou dois anos, especificamente desde que comecei a usar o ASP.NET MVC e tive mais relações com URLs baseadas em REST, tornei-me fã de colocar em maiúscula a primeira letra de cada seção / palavra dentro da URL, como ela faz. mais fácil de ler (imho).

http://example.com/MySystem/Account/View/1551

Não estamos em uma situação em que as pessoas precisam ler ou entender os URLs; portanto, esse não é um driver em si. A principal coisa que buscamos é uma abordagem consistente, racional e que faça sentido.

Existem padrões que declaram que é bom agir de uma maneira ou de outra, ou problemas que podemos encontrar em configurações (pelo menos realisticamente modernas) que escolheriam uma preferência em detrimento de outra? Qual é o consenso geral para este debate atualmente?

Amadiere
fonte

Respostas:

10

Como a escolha é principalmente cosmética (ou seja, a maioria dos sistemas não diferencia entre maiúsculas e minúsculas, e os usuários certamente não), então sugiro que você escolha o que mais lhe agrada. A consistência no aplicativo é a chave , não a maneira que você escolher.

Como você está usando o ASP.Net, eu recomendo seguir a abordagem PascalCase - pois é isso que tende a existir na estrutura da Microsoft (bibliotecas de sistemas etc.). Mas não há "práticas recomendadas" além de consistentes.

A maioria dos navegadores faz um bom trabalho de ocultar o URL do usuário, a tal ponto que muitas pessoas que têm o Google como sua página inicial, pesquisam o Facebook e clicam nele - em vez de inserir o URL do Facebook em seus sites. navegador.

TZHX
fonte
7
Mas o sistema faz diferenciada ...
ghoppe
11
Você deve pelo menos mencionar que a distinção entre maiúsculas e minúsculas depende da configuração do servidor, portanto vale a pena considerar, em vez de declarar incorretamente que o sistema não diferencia entre maiúsculas e minúsculas.
Jleach 28/07/16
@ jdl134679 done.
TZHX 28/07/19
4

Para sites internos, não importa muito, desde que você seja consistente com ele.

Para sites externos, voltados para o público, você provavelmente deseja usar letras minúsculas, o que é mais ou menos o padrão na hospedagem na web Linux / Apache. Pelo que me lembro, algumas versões do Firefox também parecem manipular o invólucro de URL de maneira diferente do IE. Isso também pode se aplicar ao Chrome.

Ter um revestimento consistente também é importante para a otimização do mecanismo de pesquisa. Você não deseja que o Google veja lower-case.aspx e Lower-Case.aspx como páginas diferentes com conteúdo duplicado. Embora seus algoritmos tentem impedir essa identidade equivocada, isso acontece de tempos em tempos e pode causar a penalização de uma página.

jfrankcarr
fonte
2

Contanto que os usuários possam digitá-lo como quiserem, isso realmente não importa. Pessoalmente, prefiro TitleCase, mas há muitos que discordam. Se você for consistente, ninguém se importará.

Se o seu servidor da Web não puder, por algum motivo, me mostrar http://foo.com/HelloWorldquando tento acessar http://foo.com/helloworld, você deve optar por todas as letras minúsculas. Embora as pessoas raramente digitem URLs completos atualmente, os endereços voltados para a frente devem estar acessíveis sem ter que mexer em maiúsculas.

Maxpm
fonte
2

O fato de você começar a usar o MVC não deve "vazar" para a abstração REST. Existem boas razões para usar todos os URLs em minúsculas com traços entre as palavras. URIs (não nomes de domínio) são sensíveis a maiúsculas e minúsculas. Se você usar tudo em minúsculas e usar traços para separar as palavras, eliminou muito trabalho de adivinhação e pontuais e, se usar um servidor proxy (nginx, nodejs, apache ...), não terá tudo para começar porque de repente faz distinção entre maiúsculas e minúsculas.

"MiXeD-CaSe NaMeS. Não confunda seus usuários misturando caracteres maiúsculos e minúsculos no URL. Atenha-se às letras minúsculas e não as faça adivinhar. Se seu usuário digita um URL em maiúsculas e minúsculas, normaliza-o no servidor e serve o caso apropriado ".

Rick O'Shea
fonte
1

Enquanto TLD não são caso-sensível e caminhos do Windows usar uma combinação de capital e caso Pascal, nossas aplicações são sensíveis aos caminhos de solicitação de entrada, onde os caminhos, ou componentes nela, geralmente são normalizados para um caso normal, uma vez que /format/JSON/e /format/json/são pedidos de dois formatos diferentes e referencia dois recursos distintos.

Sempre que eu vi http://www.somewebsite.com/Having/URLs/That-Look-Something-Like-This/ , senti que a intenção do desenvolvedor era principalmente parecer um pouco diferente do resto, mas não é nada inovar e isso também não ajuda a melhorar a legibilidade, especialmente agora que você tem I e I , O e 0 , outras cartas disputando sua análise.

Não tenho conhecimento de nenhum consenso, nem acredito que deva haver um, porque algo tão simples quanto capitalizar apenas certas partes de um URL pode ter um impacto positivo na legibilidade e tenho certeza de que alguém, em algum lugar, já está chegando com idéias interessantes quando se trata de aplicar maiúsculas e minúsculas a URLs.

Mas, a julgar pelo fato de que a maioria dos servidores Web está sendo executada no Linux e de nós, os desenvolvedores sempre acabarmos padronizando os dados de texto recebidos, porque a entrada diferencia maiúsculas de minúsculas, estou insistindo em como isso é feito o tempo todo.

Filip Dupanović
fonte
0

NUNCA use letras maiúsculas por motivos de usabilidade! Imagine quanto tempo você deve gastar e cliques para executar em diferentes URLs de casos em seu telefone MOBILE !

Tlt-ix Cjplfybt Cfqnjd
fonte
Embora no meu iPhone, a caixa do título exija menos pressionamentos de tecla extras do que '-' ou '_'.
Brads
Smartphones modernos, pelo menos telefones Windows permitem furto de chave tampas de conseguir isso em única pancada forte
0fnt