Разыменование URL-адресов типов элементов микроданных: "не должен" и "не должен"

В микроданных HTML W3C говорится (и в настоящее время то же самое в стандарте HTML Living WHATWG):

Если в спецификации не указано иное, URL-адреса, указанные в качестве типов элементов, не должны автоматически разыменовываться.

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

И это непосредственно сопровождается:

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

Я запутался в этом. В первом абзаце говорится, что URL в itemtype атрибут "не должен автоматически разыменовываться" (должен, не должен; поэтому согласно этому пункту пользовательские агенты могут разыменовываться). Но в последнем параграфе говорится, что пользовательские агенты "не должны разыменовывать неизвестные типы элементов".

Это противоречие или они означают что-то другое?

Может быть, речь идет только об известном или неизвестном (хотя в первом абзаце вообще не упоминается "известный", поэтому я предполагаю, что он применим ко всем словарям, известным или нет)? Но почему это должно иметь значение, если пользовательские агенты знают словарь? И что именно означает "знать" словарный запас в первую очередь?

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

1 ответ

Я думаю, но я не знаю точно...

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

В первой части говорится, что если агент UA знает тип данных, ему не нужно разыменовывать его, потому что агент UA всегда будет знать, каким будет ресурс, полученный в результате этого процесса. Так что это просто издержки сетевого трафика. Как и UA, не следует разыменовывать DTD, поскольку они уже должны знать, что будет содержать ресурс DTD. Это необходимо, потому что нельзя сказать, что для произвольного типа данных, известного для UA, нет обстоятельств, при которых разыменование может привести к полезному результату.

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

Другие вопросы по тегам