Passa al contenuto principale

Appendices (Appendici)

HTML [W3C.REC-html5-20141028]定义了<link>元素用于传达链接。例如:

<link rel="stylesheet" href="/style.css" type="text/css">

HTML链接与本规范中定义的链接模型之间的对应关系如下:

  • 链接上下文是包含链接元素的文档的URI
  • 链接关系类型由"rel"属性的值标识
  • 链接目标由"href"属性的值标识
  • 目标属性由其他属性(如"type"、"media"等)表示

Atom [RFC4287]定义了一个链接元素,可以出现在feed和entry中。例如:

<link rel="alternate" type="text/html" 
href="http://example.org/"/>

Atom链接与本规范中定义的链接模型之间的对应关系如下:

  • 链接上下文是包含链接元素的feed或entry的URI
  • 链接关系类型由"rel"属性的值标识
  • 链接目标由"href"属性的值标识
  • 目标属性由其他属性(如"type"、"hreflang"等)表示

Appendix B. Algorithms for Parsing Link Header Fields (解析Link头字段的算法)

本附录定义了解析Link头字段的算法。这些算法是规范性的。

给定一组HTTP头字段headers:

  1. 让links为空列表
  2. 对于headers中的每个字段field,其字段名为"Link"(不区分大小写):
    • 让field_value为field的字段值
    • 让field_links为解析field_value的结果(使用B.2节中的算法)
    • 将field_links中的每个链接添加到links
  3. 返回links

Per analizzare un valore del campo Link, elaborare il valore da sinistra a destra e produrre zero o piu link-value:

  1. Dividere il valore del campo sulle virgole che non si trovano all'interno di una stringa tra virgolette.
  2. Per ogni link-value risultante, rimuovere lo spazio bianco opzionale iniziale e finale.
  3. Il target del link DEVE essere racchiuso tra parentesi angolari. I caratteri tra < e > formano il riferimento URI di destinazione.
  4. Tutto cio che segue la parentesi angolare di chiusura > e interpretato come una lista di parametri separati da punto e virgola.
  5. Analizzare tale lista di parametri usando l'algoritmo dell'Appendice B.3.
  6. Se un nome di parametro compare piu di una volta e la definizione del parametro non consente ripetizioni, conservare la prima occorrenza e ignorare quelle successive.
  7. Restituire ogni link analizzato con il relativo riferimento URI di destinazione, il tipo di relazione e gli attributi di destinazione.

Le virgole e i punti e virgola all'interno delle stringhe tra virgolette non delimitano link-value o parametri. L'escaping con barra inversa nelle stringhe tra virgolette e gestito dall'Appendice B.4.

B.3. Parsing Parameters (解析参数)

Per analizzare una lista di parametri:

  1. Dividere la lista sui punti e virgola che non si trovano all'interno di una stringa tra virgolette.
  2. Ignorare gli elementi vuoti prodotti da punti e virgola iniziali, finali o ripetuti.
  3. Per ogni elemento, rimuovere lo spazio bianco opzionale iniziale e finale.
  4. Il nome del parametro e il token prima del primo carattere =. Se = non e presente, il parametro ha un valore vuoto.
  5. I nomi dei parametri sono confrontati senza distinzione tra maiuscole e minuscole.
  6. Se il valore inizia con una doppia virgoletta, analizzarlo come stringa tra virgolette usando l'Appendice B.4.
  7. In caso contrario, il valore si estende fino alla fine dell'elemento dopo la rimozione dello spazio bianco opzionale.
  8. Memorizzare il nome e il valore del parametro come attributo di destinazione per il link-value corrente.

Il parametro rel identifica il tipo di relazione del link. I tipi di relazione estesi sono riferimenti URI, mentre i tipi di relazione registrati sono token.

B.4. Parsing a Quoted String (解析带引号的字符串)

Per analizzare una stringa tra virgolette:

  1. Il valore inizia con una doppia virgoletta.
  2. Leggere i caratteri fino a trovare una doppia virgoletta non preceduta da escape.
  3. Quando si incontra una barra inversa, aggiungere il carattere successivo al valore di output e continuare.
  4. I caratteri dopo la doppia virgoletta di chiusura non fanno parte del valore quoted-string.
  5. Se manca la doppia virgoletta di chiusura, considerare il valore non valido per questo link-value.

Questo preserva le virgole, i punti e virgola e altri caratteri delimitatori tra virgolette come dati anziche come sintassi.

Appendix C. Changes from RFC 5988 (与RFC 5988的变化)

本规范与RFC 5988相比的主要变化包括:

  • 澄清了链接上下文和链接目标的定义
  • 更新了注册程序以使用RFC 8126
  • 添加了解析算法(附录B)
  • 澄清了扩展关系类型的使用
  • 更新了对其他规范的引用
  • 改进了示例和说明文本