É seguro usar um @
símbolo como parte de um usuário? Por exemplo, um possível URL seria http://example.com/@dave
.
A ideia é que, hoje em dia, os usuários sejam comumente chamados de "@usuario", então por que não tornar a página do usuário "@nomedeusuario"?
Respostas:
Codificado em porcentagem…
Você pode usar o
@
caractere em caminhos URI HTTP se você codificá- lo por cento como%40
.Muitos navegadores ainda o exibiriam como
@
, mas, por exemplo, quando você copiar e colar o URI em um documento de texto, ele será%40
.… Mas também diretamente
Em vez de codificá-lo por cento, você pode usar
@
diretamente no caminho URI HTTP.Consulte a sintaxe para o caminho de um URI. Vários cláusulas independentes de lado, o caminho pode consistir de caracteres no
segment
,segment-nz
ousegment-nz-nc
conjunto.segment
esegment-nz
consistem em personagens dopchar
conjunto, que é definido como:Como você pode ver, o
@
está listado explicitamente.O
segment-nz-nc
conjunto também lista o@
caractere explicitamente:Portanto, um URI HTTP como este é totalmente válido:
Exemplo
Aqui está um exemplo de página da Wikipedia:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Como você pode ver, as
"
,(
e)
caracteres são codificados por cento, mas o@
e_
é usado diretamente.fonte
@
em URLs, mas os antigos (?) URLs de perfil ainda funcionam: exemplo com codificação percentual@
( não funciona!) Vs. exemplo usando@
diretamente (funciona trabalho!) .@
no caso do Twitter. Seus links internos referem-se ao url sem@
entretanto: twitter.com/@stackexchange@
não é cancelado . Portanto, os consumidores não devem presumir isso%40
e@
são equivalentes.Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.
Isso não é verdade para o Chrome.Você pode usar o símbolo @ em uma URL? - Sim, você pode!
Observe que @ -character, valor hexadecimal 40, valor decimal 64, é um caractere reservado para URIs. Seu uso é para coisas como endereços de e-mail em
mailto:
URIs, por exemplo,mailto:[email protected]
e para passar informações de nome de usuário e senha em um URI (o que é uma má ideia, mas possível):http://username:[email protected]
Se você quiser uma URL que tenha um símbolo @ em um caminho, você precisa codificá-la, com a chamada " codificação de URL ". Por exemplo, assim:
http://somewhere.foo/profile/username%40somewhere.foo
Todos os navegadores modernos exibirão isso como http://somewhere.foo/profile/[email protected] , e converterão qualquer entrada digitada em @ -sign para
%40
, portanto, é fácil de usar.Muitos web-frameworks também irão ajudá-lo automaticamente, ou com funções auxiliares, a converter de e para URLs codificados por URL.
Portanto, em resumo: Sim, você pode usar o símbolo @ em uma URL, mas deve ter certeza de que está codificado, pois não é possível usar o símbolo @ .
fonte
@
caracteres não "precisam" ser codificados na parte do caminho de um url ( greenbytes.de/tech/webdav/rfc3986.html#path )No RFC, os seguintes caracteres:
são reservados e:
Portanto, não é recomendado usar esses caracteres sem codificação.
fonte
Basicamente, não.
@
é um caractere reservado e deve ser usado apenas para a finalidade pretendida.Consulte: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ e http://www.ietf.org/rfc/rfc3986.txt
Pode ser usado codificado, mas não acho que seja isso que você estava perguntando.
Aparentemente, os navegadores modernos lidam com isso. No entanto, você perguntou se isso era seguro e de acordo com as especificações do RFC, você não deveria usá-lo (não codificado) a menos que fosse para o propósito pretendido.
fonte