Какие ресурсы можно узнать о передовых практиках при создании URL для веб-сайта? - PullRequest
2 голосов
/ 20 сентября 2011

Это дополнительный вопрос к Почему параметры запроса для многих веб-сайтов (MySQL) являются очень загадочными длинными целыми числами? . С точки зрения безопасности и масштабируемости. Пожалуйста, указывайте любые ресурсы (онлайн / оффлайн).

Ответы [ 3 ]

1 голос
/ 20 сентября 2011

Безопасность и масштабируемость имеют мало общего с тем, как формируется URL.Некоторые сайты используют зашифрованные URL-адреса в качестве меры для защиты изображений (например, Facebook), этот тип безопасности, как правило, не одобряется, поскольку каждый, кто знает URL различными способами (кеш браузера, кэш прокси-сервера и т. Д.), Может получить доступ к предположительно защищенномуresource.

Хотя чистый URL-адрес помогает поисковой оптимизации, обычно это означает более медленный ответ и, следовательно, ухудшенную масштабируемость.Рассмотрим URL http://example.com/user/Lars,, показывающий страницу профиля моего профиля.Если моя учетная запись связана с базой данных не по имени моей учетной записи, а по суррогатному ключу (некоторое произвольное число), система сначала должна запросить в таблице пользователей мой суррогатный ключ, чтобы получить остальную частьИнформация.Это снижает производительность, так как необходимо запросить еще одну таблицу.

1 голос
/ 20 сентября 2011

Хотя я полностью согласен с ответом полковника Шрапнеля, есть несколько случаев, когда длинные «загадочные» идентификаторы способствуют безопасности, а иногда даже масштабируемости. Sharelockers (RapidShare и друзья) обычно используют структуру /ID/Filename в своих URL-адресах, чтобы повысить безопасность из-за неясности, для кого-то было бы слишком легко протестировать все целые или общие имена файлов и получить доступ к конфиденциальной информации.

Некоторые люди также применяют какой-то алгоритм контрольной суммы к своим идентификаторам базы данных, что затрудняет кому-либо выяснение базовой структуры и «скрытие» определенных видов информации: держу пари, что многие люди не хотят платить за что-то онлайн если URL для заказа был /order/2/ например. Использование контрольных сумм также может способствовать повышению производительности, поскольку вы можете игнорировать недействительные идентификаторы, даже не обращаясь к базе данных (полезно, когда кто-то перебирает ваши URL).

Длинные идентификаторы способствуют масштабируемости, в том смысле, что они предоставляют более широкий диапазон возможных чисел ( Slashdot стал жертвой предположения "int (11) более чем достаточно для всех" дважды - извините, не могу найти старую историю), и именно поэтому вы видите, что Twitter и друзья используют разные подходы.

Когда вы используете более широкий идентификатор, вы также можете хранить больше информации, такой как метки времени, IP / имя хоста, создавшего запись базы данных, и т. Д., Что может иметь решающее значение при выполнении настройки распределенной базы данных. Посмотрите документацию MongoID class , чтобы лучше понять, как она работает.

1 голос
/ 20 сентября 2011

С точки зрения безопасности и масштабируемости вы можете использовать любые URL, которые вы себе представляете.

Обычно удобочитаемость и удобство использования или (чаще) дружба поисковой системы влияют на правила построения URL.

Скажем, PHP.NET известна php.net / echo функция, дающая быстрый и легкий доступ к описанию функции.Это причина для создания таких URL, а не безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...