Безопасно ли использовать @
символ как часть пользователя? Например, возможный URL-адрес будет http://example.com/@dave
.
Идея заключается в том, что в настоящее время пользователей обычно называют «@user», так почему бы не сделать страницу пользователя «@username»?
Ответы:
Закодировано в процентах…
Вы можете использовать этот
@
символ в путях HTTP URI, если вы закодируете его в процентах как%40
.Многие браузеры будут отображать его по-прежнему как
@
, но, например, когда вы копируете и вставляете URI в текстовый документ, он будет%40
.… Но также напрямую
Вместо процентного кодирования вы можете использовать его
@
непосредственно в пути HTTP URI.См. Синтаксис пути к URI. Различные несвязанные положения в стороне, путь может состоять из символов в
segment
,segment-nz
илиsegment-nz-nc
наборе.segment
иsegment-nz
состоят из символов изpchar
набора, который определяется как:Как видите,
@
явно указан.В
segment-nz-nc
наборе также@
явно указан символ:Итак, такой HTTP-URI полностью действителен:
пример
Вот пример страницы в Википедии:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Как вы можете видеть,
"
,(
и)
символы процентов закодированных, но@
и_
используются непосредственно.источник
@
в URL-адресах, но старые (?) URL-адреса профиля все еще работают: пример с процентным кодированием@
( не работает!) По сравнению с примером с@
прямым использованием (работает ли работать!) .@
Twitter или без него . Их внутренние ссылки действительно относятся к URL-адресу,@
хотя: twitter.com/@stackexchange@
не безоговорочно . Таким образом , потребители не должны предполагать , что%40
и@
эквивалентны.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.
Это не относится к Chrome.Можете ли вы использовать символ @ в URL-адресе? - Да, можно!
Обратите внимание, что @ -character, шестнадцатеричное значение 40, десятичное значение 64, являются зарезервированными символами для URI. Он используется, например, для таких вещей, как адреса электронной почты в
mailto:
URImailto:username@somewhere.foo
и для передачи информации об имени пользователя и пароле в URI (что является плохой идеей, но возможно):http://username:password@somewhere.foo
Если вам нужен URL-адрес, в пути которого есть символ @, вам необходимо его закодировать с помощью так называемого « URL-кодирования ». Например так:
http://somewhere.foo/profile/username%40somewhere.foo
Все современные браузеры будут отображать это как http://somewhere.foo/profile/username@somewhere.foo и преобразует любое введенное с помощью @ -sign в
%40
, так что им легко пользоваться.Многие веб-фреймворки также помогут вам автоматически или с помощью вспомогательных функций преобразовывать URL-адреса в URL-адреса и обратно.
Итак, вкратце : да, вы можете использовать @ -символ в URL-адресе, но вы должны убедиться, что он закодирован, так как вы не можете использовать @ -символ .
источник
@
символы не «нужно» кодировать в части пути URL- адреса ( greenbytes.de/tech/webdav/rfc3986.html#path )В RFC следующие символы:
зарезервированы и:
Поэтому не рекомендуется использовать эти символы без кодировки.
источник
В основном нет.
@
является зарезервированным символом и должен использоваться только по прямому назначению.См. Http://perishablepress.com/stop-using-unsafe-characters-in-urls/ и http://www.ietf.org/rfc/rfc3986.txt.
Его можно использовать в кодировке, но я не думаю, что это то, о чем вы спрашивали.
Судя по всему, современные браузеры справятся с этим. Однако вы спросили, безопасно ли это, и в соответствии со спецификацией RFC вы не должны использовать его (незакодированный), если он не используется по прямому назначению.
источник