Я на самом деле работаю в проекте django, и я не уверен, какой формат URL лучше использовать для доступа к одной конкретной странице объекта.
Я думал об этих альтернативах:
1) Using the autoincremental ID => .com/object/15
Это самый простой и известный способ сделать это. «id_object» - автоинкрементный идентификатор, сгенерированный ядром базы данных при сохранении объекта. Проблема, которую я нахожу таким образом, заключается в том, что URL-адреса просты итеративны. Таким образом, мы можем сделать простой сценарий и посетить все страницы, увеличив идентификатор в URL. Возможно проблема с безопасностью.
2) Using a <hash_id> => .com/object/c30204225d8311e185c3002219f52617
"hash_id" должен быть некоторым буквенно-цифровым строковым значением, сгенерированным, например, с помощью функций uuid. Это хорошая идея, потому что она не повторяется. Но генерация «случайных» уникальных идентификаторов может вызвать некоторые проблемы.
3) Using a Slug => .com/object/some-slug-generated-with-the-object
Django поставляется с полем «slug» для моделей, и его можно использовать для идентификации объекта в URL. Проблема, которую я нахожу в этом случае, заключается в том, что слизняк может измениться со временем, создавая неработающие URL. Если какая-то поисковая система, например Google, проиндексировала этот неработающий URL, пользователи могут перейти на страницы «не найдены», и рейтинг нашей страницы может снизиться. Замораживание Слизняка может быть решением. Я имею в виду, сохранить слаг только на действие «Добавить», а не на «Обновить». Но слизняк теперь может представлять что-то старое или неправильное.
Все варианты имеют свои преимущества и недостатки. Может быть, с помощью их комбинации могут возникнуть проблемы.
Что вы думаете об этом?