9. Riconoscimenti (Acknowledgments)
Si veda la sezione 10 di [RFC7230].
10. Riferimenti (References)
10.1. Riferimenti normativi (Normative References)
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing", RFC 7230, June 2014.
[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, June 2014.
[RFC7232] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests", RFC 7232, June 2014.
[RFC7233] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Range Requests", RFC 7233, June 2014.
[RFC7235] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Authentication", RFC 7235, June 2014.
10.2. Riferimenti informativi (Informative References)
[BCP90] Klyne, G., Nottingham, M., and J. Mogul, "Registration Procedures for Message Header Fields", BCP 90, RFC 3864, September 2004.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.
[RFC5861] Nottingham, M., "HTTP Cache-Control Extensions for Stale Content", RFC 5861, April 2010.
[RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, "Network Time Protocol Version 4: Protocol and Algorithms Specification", RFC 5905, June 2010.
[RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, April 2011.
Appendice A. Modifiche rispetto alla RFC 2616 (Changes from RFC 2616)
Questa specifica è stata sostanzialmente riscritta per maggiore chiarezza.
Sono state chiarite le condizioni in base alle quali una risposta autenticata può essere memorizzata nella cache. (Sezione 3.2)
Nuovi codici di stato possono ora definire che ai cache è consentito utilizzare con essi la freschezza euristica. Ai cache è ora consentito calcolare la freschezza euristica per gli URI con componenti di query. (Sezione 4.2.2)
L'algoritmo per il calcolo dell'età è ora meno conservativo. I cache DEVONO (MUST) trattare le date con fuso orario come non valide, poiché non è possibile indovinarle con precisione. (Sezione 4.2.3)
Il campo di intestazione della risposta Content-Location non viene più utilizzato per determinare la risposta appropriata da usare durante la convalida. (Sezione 4.3)
L'algoritmo per selezionare una risposta negoziata memorizzata nella cache da utilizzare è stato chiarito in diversi modi. In particolare, consente ora esplicitamente la canonizzazione specifica per intestazione durante l'elaborazione dei campi di intestazione selettivi. (Sezione 4.1)
I requisiti relativi all'evitare attacchi di negazione del servizio durante l'invalidazione sono stati chiariti. (Sezione 4.4)
L'invalidazione della cache si verifica solo al ricevimento di una risposta con successo. (Sezione 4.4)
Le direttive di cache sono definite esplicitamente come non sensibili alle maiuscole/minuscole. È ora definito il trattamento di più istanze di direttive di cache quando ne è attesa una sola. (Sezione 5.2)
La direttiva di richiesta "no-store" non si applica alle risposte; ovvero, un cache può soddisfare una richiesta con no-store e non la invalida. (Sezione 5.2.1.5)
Le forme qualificate delle direttive di cache private e no-cache sono segnalate come poco implementate; ad esempio, "private=foo" è interpretato da molti cache semplicemente come "private". Inoltre, è stato chiarito il significato della forma qualificata di no-cache. (Sezione 5.2.2)
Il significato della direttiva di risposta "no-cache" è stato chiarito. (Sezione 5.2.2.2)
Il limite di un anno sui valori del campo di intestazione Expires è stato rimosso; al suo posto viene indicato il motivo per utilizzare un valore ragionevole. (Sezione 5.3)
Il campo di intestazione Pragma è ora definito solo per la retrocompatibilità; i futuri pragma sono deprecati. (Sezione 5.4)
Alcuni requisiti relativi alla produzione e all'elaborazione dei campi di intestazione Warning sono stati allentati, poiché non ampiamente implementati. Inoltre, il campo di intestazione Warning non utilizza più la codifica RFC 2047, né consente più lingue, poiché tali aspetti non erano stati implementati. (Sezione 5.5)
Questa specifica introduce i registri delle direttive di cache e dei codici di avvertimento e definisce considerazioni per le nuove direttive di cache. (Sezioni 7.1 e 7.2)
Appendice B. ABNF importato (Imported ABNF)
Le seguenti regole centrali sono incluse per riferimento, così come definite nell'appendice B.1 di [RFC5234]: ALPHA (lettere), CR (ritorno a capo), CRLF (CR LF), CTL (caratteri di controllo), DIGIT (decimale 0-9), DQUOTE (doppio apice), HEXDIG (esadecimale 0-9/A-F/a-f), LF (avanzamento di linea), OCTET (qualsiasi sequenza di dati a 8 bit), SP (spazio) e VCHAR (qualsiasi carattere US-ASCII visibile).
Le seguenti regole sono definite in [RFC7230]:
OWS = <OWS, see [RFC7230], Section 3.2.3>
field-name = <field-name, see [RFC7230], Section 3.2>
quoted-string = <quoted-string, see [RFC7230], Section 3.2.6>
token = <token, see [RFC7230], Section 3.2.6>
port = <port, see [RFC7230], Section 2.7>
pseudonym = <pseudonym, see [RFC7230], Section 5.7.1>
uri-host = <uri-host, see [RFC7230], Section 2.7>
Le seguenti regole sono definite in altre parti:
HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
Appendice C. ABNF collezionato (Collected ABNF)
Nel seguente ABNF collezionato, le regole di elenco sono espanse secondo la sezione 1.2 di [RFC7230].
Age = delta-seconds
Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS
cache-directive ] )
Expires = HTTP-date
HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
OWS = <OWS, see [RFC7230], Section 3.2.3>
Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS
pragma-directive ] )
Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ]
)
cache-directive = token [ "=" ( token / quoted-string ) ]
delta-seconds = 1*DIGIT
extension-pragma = token [ "=" ( token / quoted-string ) ]
field-name = <field-name, see [RFC7230], Section 3.2>
port = <port, see [RFC7230], Section 2.7>
pragma-directive = "no-cache" / extension-pragma
pseudonym = <pseudonym, see [RFC7230], Section 5.7.1>
quoted-string = <quoted-string, see [RFC7230], Section 3.2.6>
token = <token, see [RFC7230], Section 3.2.6>
uri-host = <uri-host, see [RFC7230], Section 2.7>
warn-agent = ( uri-host [ ":" port ] ) / pseudonym
warn-code = 3DIGIT
warn-date = DQUOTE HTTP-date DQUOTE
warn-text = quoted-string
warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date
]