Почему некоторые URL содержат как числовой идентификатор, так и имя?
Вопрос
Мне интересно, почему ссылка на профиль выглядит так:
http://stackoverflow.com/users/ID/NAME
не просто:
http://stackoverflow.com/users/ID
или даже лучше:
http://stackoverflow.com/users/NAME
Может ли быть пара пользователей с одинаковым именем? Или один пользователь может иметь много имен?
Решение
Все SO-URL имеют вид id / описание формы, где идентификатор уникален, а описание является необязательным. Так что / users / 12890 / arne-burmeister
совпадает с / users / 12890 / huhu
и <код> / вопросы / 420380 / почему-делает-на-ссылку-к-гается profile-have-both-id-and-name совпадает с / questions / 420380 / Foo код>
. При поиске используется только идентификатор, но это намного лучше для рейтинга в Google, когда в URL появляется пользователь / вопрос / что-либо-что-можно найти (также для людей это гораздо более наглядно; -). р>
Кстати, поиск по идентификатору быстрее, чем по такой большой текстовой строке. И, конечно, URL остается действительным, если кто-то меняет свое имя пользователя или вопрос.
Другие советы
Часть после последней косой черты, похоже, связана с SEO (то есть делает URL более выразительным).
По URL-адресам, которые я проверял, вы могли заменить эту часть на то, что хотели, она все еще работала. Таким образом, URL http://stackoverflow.com/users/37086/othername
по-прежнему указывает на ваш профиль.
Для этого существует запрос пользовательского голоса , Если вы хотите, чтобы это произошло, то uservoice - подходящее место для обсуждения / голосования.
Я бы предположил, что поиск в базе данных исключительно по строке имени будет стоить дороже, чем числовой поиск по первичному ключу, даже если столбец имени проиндексирован. Затем добавляется имя, чтобы сделать URL-адреса более удобными для пользователей и оптимизировать SEO.
Ваше имя на SO - это не уникальный клик по пользователям и введите Джош, есть целая страница из нас. Таким образом, вы должны иметь удостоверение личности. Что касается того, почему имя, о котором все знают, так же хорошо, как и мое.
Попробуйте изменить или удалить имя и посмотреть, что произойдет.
Я думаю, что именно так ваши URL говорят вам, чего ожидать, но приложение не нуждается (или фактически не использует) эту информацию.
Amazon делает что-то очень похожее со своими книгами, если я правильно помню: у них есть и ASIN (их внутренний идентификатор), и название книги в URL, но только когда-либо ищем ASIN.
Просто размышления. Идентификатор позволяет очень быстро получить данные, представленные на странице профиля. Это имя только для людей и игнорируется, так как мне легче отрицать, что вы rkj, а я phihag, чем ваш ID 37086, а мой 35070.