2016-07-27 6 views
2

Я не могу понять, почему спецификация Atom требует, чтобы каждая запись имела глобально (весь юниверс на все время) уникальный идентификатор. Я понимаю, что это технически возможно, но не все еще возможны столкновения?Почему идентификатор Atom (RSS) глобально уникален, а не локально?

Если не случайно, могут возникнуть злонамеренные столкновения. Я мог бы выбрать статью в Нью-Йорк Таймс, и дать мою статью сайта обманывать то же самое id в ее entry. Таким образом, аннулирование любой функции служило и, возможно, причинило ущерб.

Почему не просто уникальный URL-адрес фида, который легко или безопасно, потому что он централизованно подтвержден DNS, а затем в каждом канале есть локально уникальных идентификаторов. Именно в этом авторском интересе поддерживать собственную схему не сталкивающихся идентификаторов, и даже если они сталкиваются, это не влияет на уникальность другого сайта.

Pls объяснить :)

связанный с этим вопрос - если уже есть link поле в каждом entry, почему спецификация рекомендует (как один из вариантов), чтобы использовать ссылку в id поле. Атом должен был исправить эти несоответствия RSS :)

ответ

0

UUID предоставляют механизм для не сталкивающихся глобальных идентификаторов; см. RFC4122.

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

1

Почему не просто уникальный URL корма, который легко/безопасно, потому что это централизованно подтверждается DNS, а затем внутри каждого корма имеют локально уникальные идентификаторы.

Этот вопрос обсуждался во время разработки спецификации Atom, а использование URL-адресов, по вашему мнению, было популярным. Однако использование отдельных идентификаторов позволяет перемещать каналы и записи (например, см. How do you generate a good ID in ATOM documents?).

Если вы изменили базовый URL вашего канала, вам нужно либо изменить все идентификаторы записей, либо убедиться, что перенаправления из старых URL-адресов были на месте. Это может быть невозможно, если вы больше не контролируете исходный сайт.

, если уже есть link поле в каждом entry, почему спецификация рекомендует (как один из вариантов) использовать link в поле идентификатора.

Точно, потому что после переезда они больше не будут соответствовать.

Любой издатель, который видит свои URL как постоянные глобальные идентификаторы, может использовать их в качестве идентификаторов; таким образом, текущая спецификация направлена ​​на то, чтобы позволить оба поведения.

Если не случайно, могут возникнуть злонамеренные столкновения.

Теоретически это позволяет читателю каналов обрабатывать элементы, которые отображаются в нескольких каналах как идентичные. На практике я не знаю много программного обеспечения, которое доверяет идентификаторам быть глобальными, оставляя их эффективно на уровне подачи.