| draft-reschke-http-jfv-08.txt | draft-reschke-http-jfv-09.txt | |||
|---|---|---|---|---|
| Network Working Group J. Reschke | Network Working Group J. Reschke | |||
| Internet-Draft greenbytes | Internet-Draft greenbytes | |||
| Intended status: Standards Track February 2, 2018 | Intended status: Standards Track July 2, 2018 | |||
| Expires: August 6, 2018 | Expires: January 3, 2019 | |||
| A JSON Encoding for HTTP Header Field Values | A JSON Encoding for HTTP Header Field Values | |||
| draft-reschke-http-jfv-08 | draft-reschke-http-jfv-09 | |||
| Abstract | Abstract | |||
| This document establishes a convention for use of JSON-encoded field | This document establishes a convention for use of JSON-encoded field | |||
| values in HTTP header fields. | values in HTTP header fields. | |||
| Editorial Note (To be removed by RFC Editor before publication) | Editorial Note (To be removed by RFC Editor before publication) | |||
| Distribution of this document is unlimited. Although this is not a | Distribution of this document is unlimited. Although this is not a | |||
| work item of the HTTPbis Working Group, comments should be sent to | work item of the HTTPbis Working Group, comments should be sent to | |||
| the Hypertext Transfer Protocol (HTTP) mailing list at ietf-http- | the Hypertext Transfer Protocol (HTTP) mailing list at ietf-http- | |||
| wg@w3.org [1], which may be joined by sending a message with subject | wg@w3.org [1], which may be joined by sending a message with subject | |||
| "subscribe" to ietf-http-wg-request@w3.org [2]. | "subscribe" to ietf-http-wg-request@w3.org [2]. | |||
| Discussions of the HTTPbis Working Group are archived at | Discussions of the HTTPbis Working Group are archived at | |||
| <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | |||
| XML versions and latest edits for this document are available from | XML versions and latest edits for this document are available from | |||
| <http://greenbytes.de/tech/webdav/#draft-reschke-http-jfv>. | <http://greenbytes.de/tech/webdav/#draft-reschke-http-jfv>. | |||
| The changes in this draft are summarized in Appendix E.11. | The changes in this draft are summarized in Appendix E.12. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 6, 2018. | This Internet-Draft will expire on January 3, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 50 ¶ | skipping to change at page 2, line 50 ¶ | |||
| A.2. Content-Disposition . . . . . . . . . . . . . . . . . . . 10 | A.2. Content-Disposition . . . . . . . . . . . . . . . . . . . 10 | |||
| A.3. WWW-Authenticate . . . . . . . . . . . . . . . . . . . . 11 | A.3. WWW-Authenticate . . . . . . . . . . . . . . . . . . . . 11 | |||
| A.4. Accept-Encoding . . . . . . . . . . . . . . . . . . . . . 12 | A.4. Accept-Encoding . . . . . . . . . . . . . . . . . . . . . 12 | |||
| Appendix B. Use of JSON Field Value Encoding in the Wild . . . . 13 | Appendix B. Use of JSON Field Value Encoding in the Wild . . . . 13 | |||
| B.1. W3C Reporting API Specification . . . . . . . . . . . . . 14 | B.1. W3C Reporting API Specification . . . . . . . . . . . . . 14 | |||
| B.2. W3C Clear Site Data Specification . . . . . . . . . . . . 14 | B.2. W3C Clear Site Data Specification . . . . . . . . . . . . 14 | |||
| B.3. W3C Feature Policy Specification . . . . . . . . . . . . 14 | B.3. W3C Feature Policy Specification . . . . . . . . . . . . 14 | |||
| Appendix C. Relation to HTTP 'Key' Header Field . . . . . . . . 14 | Appendix C. Relation to HTTP 'Key' Header Field . . . . . . . . 14 | |||
| Appendix D. Discussion . . . . . . . . . . . . . . . . . . . . . 14 | Appendix D. Discussion . . . . . . . . . . . . . . . . . . . . . 14 | |||
| Appendix E. Change Log (to be removed by RFC Editor before | Appendix E. Change Log (to be removed by RFC Editor before | |||
| publication) . . . . . . . . . . . . . . . . . . . . 15 | publication) . . . . . . . . . . . . . . . . . . . . 14 | |||
| E.1. Since draft-reschke-http-jfv-00 . . . . . . . . . . . . . 15 | E.1. Since draft-reschke-http-jfv-00 . . . . . . . . . . . . . 15 | |||
| E.2. Since draft-reschke-http-jfv-01 . . . . . . . . . . . . . 15 | E.2. Since draft-reschke-http-jfv-01 . . . . . . . . . . . . . 15 | |||
| E.3. Since draft-reschke-http-jfv-02 . . . . . . . . . . . . . 15 | E.3. Since draft-reschke-http-jfv-02 . . . . . . . . . . . . . 15 | |||
| E.4. Since draft-reschke-http-jfv-03 . . . . . . . . . . . . . 15 | E.4. Since draft-reschke-http-jfv-03 . . . . . . . . . . . . . 15 | |||
| E.5. Since draft-reschke-http-jfv-04 . . . . . . . . . . . . . 15 | E.5. Since draft-reschke-http-jfv-04 . . . . . . . . . . . . . 15 | |||
| E.6. Since draft-ietf-httpbis-jfv-00 . . . . . . . . . . . . . 15 | E.6. Since draft-ietf-httpbis-jfv-00 . . . . . . . . . . . . . 15 | |||
| E.7. Since draft-ietf-httpbis-jfv-01 . . . . . . . . . . . . . 15 | E.7. Since draft-ietf-httpbis-jfv-01 . . . . . . . . . . . . . 15 | |||
| E.8. Since draft-ietf-httpbis-jfv-02 . . . . . . . . . . . . . 16 | E.8. Since draft-ietf-httpbis-jfv-02 . . . . . . . . . . . . . 15 | |||
| E.9. Since draft-reschke-http-jfv-05 . . . . . . . . . . . . . 16 | E.9. Since draft-reschke-http-jfv-05 . . . . . . . . . . . . . 16 | |||
| E.10. Since draft-reschke-http-jfv-06 . . . . . . . . . . . . . 16 | E.10. Since draft-reschke-http-jfv-06 . . . . . . . . . . . . . 16 | |||
| E.11. Since draft-reschke-http-jfv-07 . . . . . . . . . . . . . 16 | E.11. Since draft-reschke-http-jfv-07 . . . . . . . . . . . . . 16 | |||
| E.12. Since draft-reschke-http-jfv-08 . . . . . . . . . . . . . 16 | ||||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 16 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 16 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 1. Introduction | 1. Introduction | |||
| Defining syntax for new HTTP header fields ([RFC7230], Section 3.2) | Defining syntax for new HTTP header fields ([RFC7230], Section 3.2) | |||
| is non-trivial. Among the commonly encountered problems are: | is non-trivial. Among the commonly encountered problems are: | |||
| o There is no common syntax for complex field values. Several well- | o There is no common syntax for complex field values. Several well- | |||
| known header fields do use a similarly looking syntax, but it is | known header fields do use a similarly looking syntax, but it is | |||
| skipping to change at page 8, line 24 ¶ | skipping to change at page 8, line 24 ¶ | |||
| [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
| Protocol (HTTP/1.1): Semantics and Content", RFC 7231, | Protocol (HTTP/1.1): Semantics and Content", RFC 7231, | |||
| DOI 10.17487/RFC7231, June 2014, | DOI 10.17487/RFC7231, June 2014, | |||
| <https://www.rfc-editor.org/info/rfc7231>. | <https://www.rfc-editor.org/info/rfc7231>. | |||
| [RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493, | [RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493, | |||
| DOI 10.17487/RFC7493, March 2015, | DOI 10.17487/RFC7493, March 2015, | |||
| <https://www.rfc-editor.org/info/rfc7493>. | <https://www.rfc-editor.org/info/rfc7493>. | |||
| [RFC8259] Bray, T., "The JavaScript Object Notation (JSON) Data | [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | |||
| Interchange Format", STD 90, RFC 8259, | Interchange Format", RFC 8259, DOI 10.17487/RFC8259, | |||
| DOI 10.17487/RFC8259, December 2017, | December 2017, <https://www.rfc-editor.org/info/rfc8259>. | |||
| <https://www.rfc-editor.org/info/rfc8259>. | ||||
| 10.2. Informative References | 10.2. Informative References | |||
| [CLEARSITE] | [CLEARSITE] | |||
| West, M., "Clear Site Data", W3C Working Draft WD-clear- | West, M., "Clear Site Data", W3C Working Draft WD-clear- | |||
| site-data-20160720, July 2016, | site-data-20171130, November 2017, | |||
| <http://www.w3.org/TR/2016/WD-clear-site-data-20160720/>. | <https://www.w3.org/TR/2017/WD-clear-site-data-20171130/>. | |||
| Latest version available at <http://www.w3.org/TR/clear- | Latest version available at <https://www.w3.org/TR/clear- | |||
| site-data/>. | site-data/>. | |||
| [ECMA-262] | [ECMA-262] | |||
| Ecma International, "ECMA-262 6th Edition, The ECMAScript | Ecma International, "ECMA-262 6th Edition, The ECMAScript | |||
| 2015 Language Specification", Standard ECMA-262, June | 2015 Language Specification", Standard ECMA-262, June | |||
| 2015, <http://www.ecma-international.org/ecma-262/6.0/>. | 2015, <http://www.ecma-international.org/ecma-262/6.0/>. | |||
| [FEATUREPOL] | [FEATUREPOL] | |||
| Clelland, I., "Clear Site Data", W3C Draft Community Group | Clelland, I., "Feature Policy", W3C Draft Community Group | |||
| Report , June 2017, | Report , June 2018, | |||
| <https://wicg.github.io/feature-policy/>. | <https://wicg.github.io/feature-policy/>. | |||
| [HSTRUCT] Nottingham, M. and P-H. Kamp, "Structured Headers for | [HSTRUCT] Nottingham, M. and P-H. Kamp, "Structured Headers for | |||
| HTTP", draft-ietf-httpbis-header-structure-03 (work in | HTTP", draft-ietf-httpbis-header-structure-07 (work in | |||
| progress), February 2018. | progress), July 2018. | |||
| [ISO-8859-1] | [ISO-8859-1] | |||
| International Organization for Standardization, | International Organization for Standardization, | |||
| "Information technology -- 8-bit single-byte coded graphic | "Information technology -- 8-bit single-byte coded graphic | |||
| character sets -- Part 1: Latin alphabet No. 1", ISO/ | character sets -- Part 1: Latin alphabet No. 1", ISO/ | |||
| IEC 8859-1:1998, 1998. | IEC 8859-1:1998, 1998. | |||
| [KEY] Fielding, R. and M. Nottingham, "The Key HTTP Response | [KEY] Fielding, R. and M. Nottingham, "The Key HTTP Response | |||
| Header Field", draft-ietf-httpbis-key-01 (work in | Header Field", draft-ietf-httpbis-key-01 (work in | |||
| progress), March 2016. | progress), March 2016. | |||
| skipping to change at page 14, line 12 ¶ | skipping to change at page 14, line 12 ¶ | |||
| The sections below summarize the current usage of this format. | The sections below summarize the current usage of this format. | |||
| B.1. W3C Reporting API Specification | B.1. W3C Reporting API Specification | |||
| Defined in W3C Note "Reporting API 1" (Section 3.1 of [REPORTING]). | Defined in W3C Note "Reporting API 1" (Section 3.1 of [REPORTING]). | |||
| Still in use in latest editor copy as of June 2017. | Still in use in latest editor copy as of June 2017. | |||
| B.2. W3C Clear Site Data Specification | B.2. W3C Clear Site Data Specification | |||
| Defined in W3C Working Draft "Clear Site Data" (Section 2.1 of | Used in earlier versions of "Clear Site Data". The current version | |||
| [CLEARSITE]). Latest Editor's Draft at <https://w3c.github.io/ | replaces the use of JSON with a custom syntax that happens to be | |||
| webappsec-clear-site-data/#header> replaces the use of JSON with a | somewhat compatible with an array of JSON strings (see Section 3.1 of | |||
| custom syntax that happens to be somewhat compatible with an array of | [CLEARSITE] and <https://lists.w3.org/Archives/Public/ietf-http- | |||
| JSON strings (see <https://lists.w3.org/Archives/Public/ietf-http- | ||||
| wg/2017AprJun/0214.html> for feedback). | wg/2017AprJun/0214.html> for feedback). | |||
| B.3. W3C Feature Policy Specification | B.3. W3C Feature Policy Specification | |||
| Originally defined in W3C Draft Community Group Report "Feature | Originally defined in W3C Draft Community Group Report "Feature | |||
| Policy" (Section 6.1 of [FEATUREPOL]), but now replaced with a custom | Policy" ([FEATUREPOL]), but now replaced with a custom syntax (see | |||
| syntax (see <https://github.com/WICG/feature-policy/pull/83>). | <https://github.com/WICG/feature-policy/pull/83>). | |||
| Appendix C. Relation to HTTP 'Key' Header Field | Appendix C. Relation to HTTP 'Key' Header Field | |||
| [KEY] aims to improve the cacheability of responses that vary based | [KEY] aims to improve the cacheability of responses that vary based | |||
| on certain request header fields, addressing lack of granularity in | on certain request header fields, addressing lack of granularity in | |||
| the existing "Vary" response header field ([RFC7231], Section 7.1.4). | the existing "Vary" response header field ([RFC7231], Section 7.1.4). | |||
| If the JSON-based format described by this document gains popularity, | If the JSON-based format described by this document gains popularity, | |||
| it might be useful to add a JSON-aware "Key Parameter" (see | it might be useful to add a JSON-aware "Key Parameter" (see | |||
| Section 2.3 of [KEY]). | Section 2.3 of [KEY]). | |||
| skipping to change at page 16, line 23 ¶ | skipping to change at page 16, line 17 ¶ | |||
| Add meat to "Using this Format in Header Field Definitions". | Add meat to "Using this Format in Header Field Definitions". | |||
| Add a few lines on the relation to "Key". | Add a few lines on the relation to "Key". | |||
| Summarize current use of the format. | Summarize current use of the format. | |||
| E.10. Since draft-reschke-http-jfv-06 | E.10. Since draft-reschke-http-jfv-06 | |||
| RFC 5987 is obsoleted by RFC 8187. | RFC 5987 is obsoleted by RFC 8187. | |||
| Upcate CLEARSITE comment. | Update CLEARSITE comment. | |||
| E.11. Since draft-reschke-http-jfv-07 | E.11. Since draft-reschke-http-jfv-07 | |||
| Update JSON and HSTRUCT references. | Update JSON and HSTRUCT references. | |||
| FEATUREPOL doesn't use JSON syntax anymore. | FEATUREPOL doesn't use JSON syntax anymore. | |||
| E.12. Since draft-reschke-http-jfv-08 | ||||
| Update HSTRUCT reference. | ||||
| Update notes about CLEARSITE and FEATUREPOL. | ||||
| Acknowledgements | Acknowledgements | |||
| Thanks go to the Hypertext Transfer Protocol Working Group | Thanks go to the Hypertext Transfer Protocol Working Group | |||
| participants. | participants. | |||
| Author's Address | Author's Address | |||
| Julian F. Reschke | Julian F. Reschke | |||
| greenbytes GmbH | greenbytes GmbH | |||
| Hafenweg 16 | Hafenweg 16 | |||
| End of changes. 16 change blocks. | ||||
| 26 lines changed or deleted | 31 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||