| rfc9193.original.xml | rfc9193.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.12 --> | <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.12 --> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocompact="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| <?rfc tocdepth="3"?> | -ietf-core-senml-data-ct-07" number="9193" obsoletes="" updates="" submissionTyp | |||
| <?rfc tocindent="yes"?> | e="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true" tocDept | |||
| <?rfc symrefs="yes"?> | h="3" symRefs="true" sortRefs="true" version="3"> | |||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc strict="no"?> | ||||
| <?rfc compact="no"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | ||||
| -ietf-core-senml-data-ct-07" category="std" consensus="true" obsoletes="" update | ||||
| s="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs= | ||||
| "true" sortRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.9.1 --> | <!-- xml2rfc v2v3 conversion 3.9.1 --> | |||
| <front> | <front> | |||
| <title abbrev="SenML Data Content-Format Indication">SenML Data Value Conten | <title abbrev="SenML Data Content-Format Indication">Sensor Measurement List | |||
| t-Format Indication</title> | s (SenML) Fields for Indicating Data Value Content-Format</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-core-senml-data-ct-07"/> | <seriesInfo name="RFC" value="9193"/> | |||
| <author initials="A." surname="Keränen" fullname="Ari Keränen"> | <author initials="A." surname="Keränen" fullname="Ari Keränen"> | |||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | ||||
| <city>Jorvas</city> | <city>Jorvas</city> | |||
| <code>02420</code> | <code>02420</code> | |||
| <country>Finland</country> | <country>Finland</country> | |||
| </postal> | </postal> | |||
| <email>ari.keranen@ericsson.com</email> | <email>ari.keranen@ericsson.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="C." surname="Bormann" fullname="Carsten Bormann"> | <author initials="C." surname="Bormann" fullname="Carsten Bormann"> | |||
| <organization>Universität Bremen TZI</organization> | <organization>Universität Bremen TZI</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Postfach 330440</street> | <street>Postfach 330440</street> | |||
| <city>Bremen</city> | <city>Bremen</city> | |||
| <code>D-28359</code> | <code>D-28359</code> | |||
| <country>Germany</country> | <country>Germany</country> | |||
| </postal> | </postal> | |||
| <phone>+49-421-218-63921</phone> | <phone>+49-421-218-63921</phone> | |||
| <email>cabo@tzi.org</email> | <email>cabo@tzi.org</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2021"/> | <date year="2022" month="June"/> | |||
| <keyword>Internet-Draft</keyword> | <keyword>Internet of Things (IoT)</keyword> | |||
| <keyword>Internet of Things</keyword> | ||||
| <keyword>IOT</keyword> | ||||
| <keyword>data model</keyword> | ||||
| <keyword>media type</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>The Sensor Measurement Lists (SenML) media type supports multiple types | <t>The Sensor Measurement Lists (SenML) media types support multiple types | |||
| of values, from numbers to text strings and arbitrary binary data values. | of values, from numbers to text strings and arbitrary binary Data Values. | |||
| In order to facilitate processing of binary data values, this document | In order to facilitate processing of binary Data Values, this document | |||
| specifies a pair of new SenML fields for indicating the | specifies a pair of new SenML fields for indicating the | |||
| content format of those binary data values, i.e., their Internet media | content format of those binary Data Values, i.e., their Internet media | |||
| type including parameters as well as any content codings applied.</t> | type, including parameters as well as any content codings applied.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="intro" numbered="true" toc="default"> | <section anchor="intro" numbered="true" toc="default"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>The Sensor Measurement Lists (SenML) media types <xref target="RFC8428" format="default"/> can be used | <t>The Sensor Measurement Lists (SenML) media types <xref target="RFC8428" format="default"/> can be used | |||
| to send various kinds of data. In the example given in | to send various kinds of data. In the example given in | |||
| <xref target="ex-1" format="default"/>, a temperature value, an indication wheth er a lock is open, and | <xref target="ex-1" format="default"/>, a temperature value, an indication wheth er a lock is open, and | |||
| a data value (with SenML field "vd") read from an NFC reader is sent in a | a Data Value (with SenML field "vd") read from a Near Field Communication (NFC) | |||
| single SenML pack. | reader is sent in a | |||
| The example is given in SenML JSON representation, so the "vd" (data | single SenML Pack. | |||
| value) field is encoded as a base64url string (without | The example is given in SenML JSON representation, so the "vd" (Data | |||
| Value) field is encoded as a base64url string (without | ||||
| padding), as per <xref section="5" sectionFormat="of" target="RFC8428" format="d efault"/>.</t> | padding), as per <xref section="5" sectionFormat="of" target="RFC8428" format="d efault"/>.</t> | |||
| <figure anchor="ex-1"> | <figure anchor="ex-1"> | |||
| <name>SenML pack with unidentified binary data</name> | <name>SenML Pack with Unidentified Binary Data</name> | |||
| <sourcecode type="senml-json"><![CDATA[ | <sourcecode type="senml-json"><![CDATA[ | |||
| [ | [ | |||
| {"bn":"urn:dev:ow:10e2073a01080063:","n":"temp","u":"Cel","v":7.1}, | {"bn":"urn:dev:ow:10e2073a01080063:","n":"temp","u":"Cel","v":7.1}, | |||
| {"n":"open","vb":false}, | {"n":"open","vb":false}, | |||
| {"n":"nfc-reader","vd":"aGkgCg"} | {"n":"nfc-reader","vd":"aGkgCg"} | |||
| ] | ] | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>The receiver is expected to know how to interpret the data in the "vd" | <t>The receiver is expected to know how to interpret the data in the "vd" | |||
| field based on the context, e.g., name of the data source and out-of-band | field based on the context, e.g., the name of the data source and out-of-band | |||
| knowledge of the application. However, this context may not always be | knowledge of the application. However, this context may not always be | |||
| easily available to entities processing the SenML pack, especially if | easily available to entities processing the SenML Pack, especially if | |||
| the pack is propagated over time and via multiple entities. To facilitate | the Pack is propagated over time and via multiple entities. To facilitate | |||
| automatic interpretation it is useful to be able to indicate an Internet | automatic interpretation, it is useful to be able to indicate an Internet | |||
| media type and, optionally, content codings right in the SenML Record.</t> | media type and, optionally, content codings right in the SenML Record.</t> | |||
| <t>The CoAP | <t>The Constrained Application Protocol (CoAP) | |||
| Content-Format (<xref section="12.3" sectionFormat="of" target="RFC7252" format= "default"/>) provides this | Content-Format (<xref section="12.3" sectionFormat="of" target="RFC7252" format= "default"/>) provides this | |||
| information in the form of a single unsigned integer; enclosing a Content-Format | information in the form of a single unsigned integer. For instance, <xref target | |||
| number (in this case number 60 as | ="RFC8949" format="default"/> defines the Content-Format number 60 for | |||
| defined for content-type application/cbor in <xref target="RFC8949" format="defa | Content-Type application/cbor. Enclosing this Content-Format number in the Recor | |||
| ult"/>) in the Record is | d is illustrated in <xref target="ex-2" format="default"/>. All registered CoAP | |||
| illustrated in <xref target="ex-2" format="default"/>. All registered CoAP Conte | Content-Format numbers are listed | |||
| nt-Format numbers are listed | in the "CoAP Content-Formats" registry <xref target="IANA.core-parameters" forma | |||
| in the <xref section="COAP Content-Formats registry" relative="#content-formats" | t="default"/>, as specified by | |||
| sectionFormat="bare" target="IANA.core-parameters" format="default"/> <xref tar | ||||
| get="IANA.core-parameters" format="default"/> as specified by | ||||
| <xref section="12.3" sectionFormat="of" target="RFC7252" format="default"/>. | <xref section="12.3" sectionFormat="of" target="RFC7252" format="default"/>. | |||
| Note that, at the time of writing, the structure of this registry only | Note that, at the time of writing, the structure of this registry only | |||
| provides for zero or one content codings; nothing in the present | provides for zero or one content coding; nothing in the present | |||
| document needs to change if the registry is extended to allow | document needs to change if the registry is extended to allow | |||
| sequences of content codings.</t> | sequences of content codings.</t> | |||
| <figure anchor="ex-2"> | <figure anchor="ex-2"> | |||
| <name>SenML Record with binary data identified as CBOR</name> | <name>SenML Record with Binary Data Identified as CBOR</name> | |||
| <sourcecode type="json"><![CDATA[ | <sourcecode type="json"><![CDATA[ | |||
| {"n":"nfc-reader", "vd":"gmNmb28YKg", "ct":"60"} | {"n":"nfc-reader", "vd":"gmNmb28YKg", "ct":"60"} | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t>In this example SenML Record, the data value contains a string "foo" an | <t>In this example SenML Record, the Data Value contains a string "foo" an | |||
| d a | d a | |||
| number 42 encoded in a CBOR <xref target="RFC8949" format="default"/> array. Sin | number 42 encoded in a Concise Binary Object Representation (CBOR) <xref target= | |||
| ce the example above | "RFC8949" format="default"/> array. Since the example above | |||
| uses the JSON format of SenML, the data value containing the binary CBOR | uses the JSON format of SenML, the Data Value containing the binary CBOR | |||
| value is base64-encoded (<xref section="5" sectionFormat="of" target="RFC4648" f | value is base64 encoded (<xref section="5" sectionFormat="of" target="RFC4648" f | |||
| ormat="default"/>). | ormat="default"/>). | |||
| The data value after base64 decoding is shown | The Data Value after base64 decoding is shown | |||
| with CBOR diagnostic notation in <xref target="ex-2-cbor" format="default"/>.</t > | with CBOR diagnostic notation in <xref target="ex-2-cbor" format="default"/>.</t > | |||
| <figure anchor="ex-2-cbor"> | <figure anchor="ex-2-cbor"> | |||
| <name>Example Data Value in CBOR diagnostic notation</name> | <name>Example Data Value in CBOR Diagnostic Notation</name> | |||
| <sourcecode type="cbor-pretty"><![CDATA[ | <sourcecode type="cbor-pretty"><![CDATA[ | |||
| 82 # array(2) | 82 # array(2) | |||
| 63 # text(3) | 63 # text(3) | |||
| 666F6F # "foo" | 666F6F # "foo" | |||
| 18 2A # unsigned(42) | 18 2A # unsigned(42) | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <section anchor="evolution" numbered="true" toc="default"> | <section anchor="evolution" numbered="true" toc="default"> | |||
| <name>Evolution</name> | <name>Evolution</name> | |||
| <t>As with SenML in general, there is no expectation that the creator of | <t>As with SenML in general, there is no expectation that the creator of | |||
| a SenML pack knows (or has negotiated with) each consumer of that pack, | a SenML Pack knows (or has negotiated with) each consumer of that Pack, | |||
| which may be very remote in space and particularly in time. | which may be very remote in space and particularly in time. | |||
| This means that the SenML creator in general has no way to know | This means that the SenML creator in general has no way to know | |||
| whether the consumer knows:</t> | whether the consumer knows:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>each specific media-type-name used</li> | <li>each specific Media-Type-Name used,</li> | |||
| <li>each parameter and each parameter value used</li> | <li>each parameter and each parameter value used,</li> | |||
| <li>each content coding in use</li> | <li>each content coding in use, and</li> | |||
| <li>each Content-Format number in use for a combination of these</li> | <li>each Content-Format number in use for a combination of these.</li> | |||
| </ul> | </ul> | |||
| <t>What SenML, as well as the new fields defined here, guarantees is tha t | <t>What SenML, as well as the new fields defined here, guarantees is tha t | |||
| a recipient implementation <em>knows</em> when it needs to be updated to | a recipient implementation <em>knows</em> when it needs to be updated to | |||
| understand these field values and the values controlled by them; | understand these field values and the values controlled by them; | |||
| registries are used to evolve these name spaces in a controlled way. | registries are used to evolve these name spaces in a controlled way. | |||
| SenML packs can be processed by a consumer while not understanding all | SenML Packs can be processed by a consumer while not understanding all | |||
| the information in them, and information can generally be preserved in | the information in them, and information can generally be preserved in | |||
| this processing such that it is useful for further consumers.</t> | this processing such that it is useful for further consumers.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="terminology" numbered="true" toc="default"> | <section anchor="terminology" numbered="true" toc="default"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL</bcp14> | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14 >REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL</bcp14> | |||
| NOT", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED< /bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | NOT", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED< /bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i nterpreted as | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i nterpreted as | |||
| described in BCP 14 <xref target="RFC2119" format="default"/> <xref target= "RFC8174" format="default"/> when, and only when, they | described in BCP 14 <xref target="RFC2119" format="default"/> <xref target= "RFC8174" format="default"/> when, and only when, they | |||
| appear in all capitals, as shown here.</t> | appear in all capitals, as shown here.</t> | |||
| <dl> | <dl newline="false" spacing="normal"> | |||
| <dt> | <dt>Media type: </dt> | |||
| Media Type: </dt> | <dd>A registered label for representations (byte strings) prepared for | |||
| <dd> | interchange <xref target="RFC1590" format="default"/> | |||
| <t>A registered label for representations (byte strings) prepared for | <xref target="RFC6838" format="default"/>, identified by a Media-Type-Name.</dd> | |||
| interchange, identified by a Media-Type-Name <xref target="RFC1590" format="defa | <dt>Media-Type-Name: </dt> | |||
| ult"/>, | <dd>A combination of a type-name and a subtype-name registered in | |||
| <xref target="RFC6838" format="default"/>.</t> | <xref target="IANA.media-types" format="default"/>, as per <xref target="RFC6838 | |||
| </dd> | " format="default"/>, conventionally | |||
| <dt> | identified by the two names separated by a slash.</dd> | |||
| Media-Type-Name: </dt> | <dt>Content-Type: </dt> | |||
| <dd> | <dd>A Media-Type-Name, optionally associated with parameters | |||
| <t>A combination of a type-name and a subtype-name registered in | ||||
| <xref target="IANA.media-types" format="default"/> as per <xref target="RFC6838" | ||||
| format="default"/>, conventionally | ||||
| identified by the two names separated by a slash.</t> | ||||
| </dd> | ||||
| <dt> | ||||
| Content-Type: </dt> | ||||
| <dd> | ||||
| <t>A Media-Type-Name, optionally associated with parameters | ||||
| (<xref section="5" sectionFormat="of" target="RFC2045" format="default"/>, separ ated from | (<xref section="5" sectionFormat="of" target="RFC2045" format="default"/>, separ ated from | |||
| the Media-Type-Name and from each other by a semicolon). | the Media-Type-Name and from each other by a semicolon). | |||
| In HTTP and many other protocols, used in a <tt>Content-Type</tt> header field.< | In HTTP and many other protocols, it is used in a <tt>Content-Type</tt> header f | |||
| /t> | ield.</dd> | |||
| </dd> | <dt>Content coding: </dt> | |||
| <dt> | <dd>A name registered in the "HTTP Content Coding Registry" | |||
| content coding: </dt> | <xref target="IANA.http-parameters" format="default"/>, as specified by | |||
| <dd> | Sections <xref target="RFC9110" section="16.6.1" sectionFormat="bare" format="de | |||
| <t>A name registered in the <xref section="HTTP Content Coding registr | fault"/> and <xref target="RFC9110" section="18.6" sectionFormat="bare" format=" | |||
| y" relative="#content-coding" sectionFormat="bare" target="IANA.http-parameters" | default"/> of <xref target="RFC9110" format="default"/>, indicating an encoding | |||
| format="default"/> <xref target="IANA.http-parameters" format="default"/> as sp | transformation with semantics further specified in <xref section="8.4.1" section | |||
| ecified by | Format="of" target="RFC9110" format="default"/>. | |||
| Sections <xref target="I-D.ietf-httpbis-semantics" section="16.6.1" sectionForma | ||||
| t="bare" format="default"/> and <xref target="I-D.ietf-httpbis-semantics" sectio | ||||
| n="18.6" sectionFormat="bare" format="default"/> of <xref target="I-D.ietf-httpb | ||||
| is-semantics" format="default"/>, indicating an encoding | ||||
| transformation with semantics further specified in <xref section="8.4.1" section | ||||
| Format="of" target="I-D.ietf-httpbis-semantics" format="default"/>. | ||||
| Confusingly, in HTTP, content coding values are found in a header field | Confusingly, in HTTP, content coding values are found in a header field | |||
| called "Content-Encoding", however "content coding" is the correct | called "Content-Encoding"; however, "content coding" is the correct | |||
| term for the process and the registered values.</t> | term for the process and the registered values.</dd> | |||
| </dd> | <dt>Content format: </dt> | |||
| <dt> | <dd>The combination of a Content-Type and zero or more content codings, | |||
| content format: </dt> | identified | |||
| <dd> | by (1) a numeric identifier defined in the "CoAP Content-Formats" registry <xref | |||
| <t>the combination of a Content-Type and zero or more content codings, | target="IANA.core-parameters" format="default"/>, | |||
| identified | ||||
| by (1) a numeric identifier defined in the <xref section="COAP Content-Formats r | ||||
| egistry" relative="#content-formats" sectionFormat="bare" target="IANA.core-para | ||||
| meters" format="default"/> <xref target="IANA.core-parameters" format="default"/ | ||||
| > | ||||
| as per <xref section="12.3" sectionFormat="of" target="RFC7252" format="default" /> (referred to as Content-Format | as per <xref section="12.3" sectionFormat="of" target="RFC7252" format="default" /> (referred to as Content-Format | |||
| number), or (2) a Content-Format-String.</t> | number), or (2) a Content-Format-String.</dd> | |||
| </dd> | <dt>Content-Format-String:</dt> | |||
| <dt> | <dd>The string representation of the combination of a Content-Type and | |||
| Content-Format-String: </dt> | zero or more content codings.</dd> | |||
| <dd> | <dt>Content-Format-Spec:</dt> | |||
| <t>the string representation of the combination of a Content-Type and | <dd>The string representation of a content format; either a | |||
| zero or more content codings.</t> | Content-Format-String or the (decimal) string representation of a | |||
| </dd> | Content-Format number.</dd> | |||
| <dt> | ||||
| Content-Format-Spec: </dt> | ||||
| <dd> | ||||
| <t>the string representation of a content format; either a | ||||
| Content-Format-String or the (decimal) string representation of a | ||||
| Content-Format number.</t> | ||||
| </dd> | ||||
| </dl> | </dl> | |||
| <t>Readers should also be familiar with the terms and concepts discussed i n | <t>Readers should also be familiar with the terms and concepts discussed i n | |||
| <xref target="RFC8428" format="default"/>.</t> | <xref target="RFC8428" format="default"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="senml-content-format-ct-field" numbered="true" toc="default "> | <section anchor="senml-content-format-ct-field" numbered="true" toc="default "> | |||
| <name>SenML Content-Format ("ct") Field</name> | <name>SenML Content-Format ("ct") Field</name> | |||
| <t>When a SenML Record contains a Data Value field ("vd"), the Record <bcp 14>MAY</bcp14> | <t>When a SenML Record contains a Data Value field ("vd"), the Record <bcp 14>MAY</bcp14> | |||
| also include a Content-Format indication field, using label "ct". The | also include a Content-Format indication field, using label "ct". The | |||
| value of this field is a Content-Format-Spec, i.e., one of:</t> | value of this field is a Content-Format-Spec, i.e., one of the following:</t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li>a CoAP Content-Format number in decimal form with no leading | <li>a CoAP Content-Format number in decimal form with no leading | |||
| zeros (except for the value "0" itself). This value represents an | zeros (except for the value "0" itself). This value represents an | |||
| unsigned integer in the range of 0-65535, similar to the "ct" | unsigned integer in the range of 0-65535, similar to the "ct" | |||
| attribute defined in <xref section="7.2.1" sectionFormat="of" target="RFC7252" f ormat="default"/> for CoRE Link | attribute defined in <xref section="7.2.1" sectionFormat="of" target="RFC7252" f ormat="default"/> for CoRE Link | |||
| Format <xref target="RFC6690" format="default"/>).</li> | Format <xref target="RFC6690" format="default"/>.</li> | |||
| <li>or a Content-Format-String containing a Content-Type and | <li>a Content-Format-String containing a Content-Type and | |||
| zero or more content codings (see below).</li> | zero or more content codings (see below).</li> | |||
| </ul> | </ul> | |||
| <t>The syntax of this field is formally defined in <xref target="abnf" for mat="default"/>.</t> | <t>The syntax of this field is formally defined in <xref target="abnf" for mat="default"/>.</t> | |||
| <t>The CoAP Content-Format number provides a simple and efficient way | <t>The CoAP Content-Format number provides a simple and efficient way | |||
| to indicate the type of the data. Since some Internet media types and | to indicate the type of the data. Since some Internet media types and | |||
| their content coding and parameter alternatives do not have assigned | their content coding and parameter alternatives do not have assigned | |||
| CoAP Content-Format numbers, using Content-Type and zero or more | CoAP Content-Format numbers, using Content-Type and zero or more | |||
| content codings | content codings | |||
| is also allowed. Both methods use a string value in the "ct" field to | is also allowed. Both methods use a string value in the "ct" field to | |||
| keep its data type consistent across uses. When the "ct" field | keep its data type consistent across uses. When the "ct" field | |||
| contains only digits, it is interpreted as a CoAP Content-Format | contains only digits, it is interpreted as a CoAP Content-Format | |||
| number.</t> | number.</t> | |||
| <t>To indicate that one or more content codings are used with a Content-Ty pe, | <t>To indicate that one or more content codings are used with a Content-Ty pe, | |||
| each of the content coding values is appended to the Content-Type value (media | each of the content coding values is appended to the Content-Type value (media | |||
| type and parameters, if any), separated by a "@" sign, in the order of | type and parameters, if any), separated by an "@" sign, in the order of when | |||
| the content codings were applied (the same order as in <xref section="8.4" secti | the content codings were applied (the same order as in <xref section="8.4" secti | |||
| onFormat="of" target="I-D.ietf-httpbis-semantics" format="default"/>). | onFormat="of" target="RFC9110" format="default"/>). | |||
| For example (using a content coding value of "deflate" as defined in | For example (using a content coding value of "deflate", as defined in | |||
| <xref section="8.4.1.2" sectionFormat="of" target="I-D.ietf-httpbis-semantics" f | <xref section="8.4.1.2" sectionFormat="of" target="RFC9110" format="default"/>): | |||
| ormat="default"/>):</t> | </t> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| text/plain; charset=utf-8@deflate | text/plain; charset=utf-8@deflate | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>If no "@" sign is present after the media type and parameters, | <t>If no "@" sign is present after the media type and parameters, | |||
| then no content coding has been specified, and the "identity" | then no content coding has been specified, and the "identity" | |||
| content coding is used -- no encoding transformation is employed.</t> | content coding is used -- no encoding transformation is employed.</t> | |||
| </section> | </section> | |||
| <section anchor="senml-base-content-format-bct-field" numbered="true" toc="d efault"> | <section anchor="senml-base-content-format-bct-field" numbered="true" toc="d efault"> | |||
| <name>SenML Base Content-Format ("bct") Field</name> | <name>SenML Base Content-Format ("bct") Field</name> | |||
| <t>The Base Content-Format Field, label "bct", provides a default value fo | <t>The Base Content-Format field, label "bct", provides a default value fo | |||
| r | r | |||
| the Content-Format Field (label "ct") within its range. The range of the | the Content-Format field (label "ct") within its range. The range of the | |||
| base field includes the Record containing it, up to (but not including) | base field includes the Record containing it, up to (but not including) | |||
| the next Record containing a "bct" field, if any, or up to the end of the | the next Record containing a "bct" field, if any, or up to the end of the | |||
| pack otherwise. The process of resolving (<xref section="4.6" sectionFormat="of " target="RFC8428" format="default"/>) this base | Pack otherwise. The process of resolving (<xref section="4.6" sectionFormat="of " target="RFC8428" format="default"/>) this base | |||
| field is performed by adding its value with the label "ct" to all Records | field is performed by adding its value with the label "ct" to all Records | |||
| in this range that carry a "vd" field but do not already contain a | in this range that carry a "vd" field but do not already contain a | |||
| Content-Format ("ct") field.</t> | Content-Format ("ct") field.</t> | |||
| <t><xref target="ex-bct" format="default"/> shows a variation of <xref tar get="ex-2" format="default"/> with multiple records, with the | <t><xref target="ex-bct" format="default"/> shows a variation of <xref tar get="ex-2" format="default"/> with multiple records, with the | |||
| "nfc-reader" records resolving to the base field value "60" and the | "nfc-reader" records resolving to the base field value "60" and the | |||
| "iris-photo" record overriding this with the "image/png" media type | "iris-photo" record overriding this with the "image/png" media type | |||
| (actual data left out for brevity).</t> | (actual data left out for brevity).</t> | |||
| <figure anchor="ex-bct"> | <figure anchor="ex-bct"> | |||
| <name>SenML pack with bct field</name> | <name>SenML Pack with the bct Field</name> | |||
| <sourcecode type="senml-json"><![CDATA[ | <sourcecode type="senml-json"><![CDATA[ | |||
| [ | [ | |||
| {"n":"nfc-reader", "vd":"gmNmb28YKg", | {"n":"nfc-reader", "vd":"gmNmb28YKg", | |||
| "bct":"60", "bt":1627430700}, | "bct":"60", "bt":1627430700}, | |||
| {"n":"nfc-reader", "vd":"gmNiYXIYKw", "t":10}, | {"n":"nfc-reader", "vd":"gmNiYXIYKw", "t":10}, | |||
| {"n":"iris-photo", "vd":".....", "ct":"image/png", "t":10}, | {"n":"iris-photo", "vd":".....", "ct":"image/png", "t":10}, | |||
| {"n":"nfc-reader", "vd":"gmNiYXoYLA", "t":20} | {"n":"nfc-reader", "vd":"gmNiYXoYLA", "t":20} | |||
| ] | ] | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| skipping to change at line 297 ¶ | skipping to change at line 272 ¶ | |||
| <li>"text/csv" (Comma-Separated Values (CSV) <xref target="RFC4180" form at="default"/> Content-Type)</li> | <li>"text/csv" (Comma-Separated Values (CSV) <xref target="RFC4180" form at="default"/> Content-Type)</li> | |||
| <li>"text/csv;header=present@gzip" (CSV with header row, using "gzip" as | <li>"text/csv;header=present@gzip" (CSV with header row, using "gzip" as | |||
| content coding)</li> | content coding)</li> | |||
| </ul> | </ul> | |||
| </section> | </section> | |||
| <section anchor="abnf" numbered="true" toc="default"> | <section anchor="abnf" numbered="true" toc="default"> | |||
| <name>ABNF</name> | <name>ABNF</name> | |||
| <t>This specification provides a formal definition of the syntax of | <t>This specification provides a formal definition of the syntax of | |||
| Content-Format-Spec strings using ABNF notation <xref target="RFC5234" format="d efault"/>, which | Content-Format-Spec strings using ABNF notation <xref target="RFC5234" format="d efault"/>, which | |||
| contains three new rules and a number of rules collected and adapted | contains three new rules and a number of rules collected and adapted | |||
| from various RFCs <xref target="I-D.ietf-httpbis-semantics" format="default"/> < xref target="RFC6838" format="default"/> <xref target="RFC5234" format="default" /> <xref target="RFC8866" format="default"/>.</t> | from various RFCs <xref target="RFC9110" format="default"/> <xref target="RFC683 8" format="default"/> <xref target="RFC5234" format="default"/> <xref target="RF C8866" format="default"/>.</t> | |||
| <figure anchor="content-format-spec"> | <figure anchor="content-format-spec"> | |||
| <name>ABNF syntax of Content-Format-Spec</name> | <name>ABNF Syntax of Content-Format-Spec</name> | |||
| <sourcecode type="abnf"><![CDATA[ | <sourcecode type="abnf"><![CDATA[ | |||
| ; New in this document | ; New in this document | |||
| Content-Format-Spec = Content-Format-Number / Content-Format-String | Content-Format-Spec = Content-Format-Number / Content-Format-String | |||
| Content-Format-Number = "0" / (POS-DIGIT *DIGIT) | Content-Format-Number = "0" / (POS-DIGIT *DIGIT) | |||
| Content-Format-String = Content-Type *("@" Content-Coding) | Content-Format-String = Content-Type *("@" Content-Coding) | |||
| ; Cleaned up from [RFC-httpbis-semantics], | ; Cleaned up from RFC 9110, | |||
| ; leaving only SP as blank space, | ; leaving only SP as blank space, | |||
| ; removing legacy 8-bit characters, and | ; removing legacy 8-bit characters, and | |||
| ; leaving the parameter as mandatory with each semicolon: | ; leaving the parameter as mandatory with each semicolon: | |||
| Content-Type = Media-Type-Name *( *SP ";" *SP parameter ) | Content-Type = Media-Type-Name *( *SP ";" *SP parameter ) | |||
| parameter = token "=" ( token / quoted-string ) | parameter = token "=" ( token / quoted-string ) | |||
| token = 1*tchar | token = 1*tchar | |||
| tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" | tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" | |||
| / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" | / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" | |||
| / DIGIT / ALPHA | / DIGIT / ALPHA | |||
| quoted-string = %x22 *( qdtext / quoted-pair ) %x22 | quoted-string = %x22 *( qdtext / quoted-pair ) %x22 | |||
| qdtext = SP / %x21 / %x23-5B / %x5D-7E | qdtext = SP / %x21 / %x23-5B / %x5D-7E | |||
| quoted-pair = "\" ( SP / VCHAR ) | quoted-pair = "\" ( SP / VCHAR ) | |||
| ; Adapted from section 8.4.1 of [RFC-httpbis-semantics] | ; Adapted from Section 8.4.1 of RFC 9110 | |||
| Content-Coding = token | Content-Coding = token | |||
| ; Adapted from various specs | ; Adapted from various specs | |||
| Media-Type-Name = type-name "/" subtype-name | Media-Type-Name = type-name "/" subtype-name | |||
| ; RFC 6838 | ; From RFC 6838 | |||
| type-name = restricted-name | type-name = restricted-name | |||
| subtype-name = restricted-name | subtype-name = restricted-name | |||
| restricted-name = restricted-name-first *126restricted-name-chars | restricted-name = restricted-name-first *126restricted-name-chars | |||
| restricted-name-first = ALPHA / DIGIT | restricted-name-first = ALPHA / DIGIT | |||
| restricted-name-chars = ALPHA / DIGIT / "!" / "#" / | restricted-name-chars = ALPHA / DIGIT / "!" / "#" / | |||
| "$" / "&" / "-" / "^" / "_" | "$" / "&" / "-" / "^" / "_" | |||
| restricted-name-chars =/ "." ; Characters before first dot always | restricted-name-chars =/ "." ; Characters before first dot always | |||
| ; specify a facet name | ; specify a facet name | |||
| restricted-name-chars =/ "+" ; Characters after last plus always | restricted-name-chars =/ "+" ; Characters after last plus always | |||
| ; specify a structured syntax suffix | ; specify a structured syntax suffix | |||
| ; Boilerplate from RFC 5234 and RFC 8866 | ; Boilerplate from RFC 5234 and RFC 8866 | |||
| DIGIT = %x30-39 ; 0 – 9 | DIGIT = %x30-39 ; 0 - 9 | |||
| POS-DIGIT = %x31-39 ; 1 – 9 | POS-DIGIT = %x31-39 ; 1 - 9 | |||
| ALPHA = %x41-5A / %x61-7A ; A – Z / a – z | ALPHA = %x41-5A / %x61-7A ; A - Z / a - z | |||
| SP = %x20 | SP = %x20 | |||
| VCHAR = %x21-7E ; printable ASCII (no SP) | VCHAR = %x21-7E ; printable ASCII (no SP) | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </figure> | </figure> | |||
| <t><cref anchor="replace">RFC editor: Please replace [RFC-httpbis-semantic | ||||
| s] by what gets | ||||
| published from <xref target="I-D.ietf-httpbis-semantics" format="default | ||||
| "/>.</cref></t> | ||||
| </section> | </section> | |||
| <section anchor="seccons" numbered="true" toc="default"> | <section anchor="seccons" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>The indication of a media type in the data does not exempt a consuming | <t>The indication of a media type in the data does not exempt a consuming | |||
| application from properly checking its inputs. | application from properly checking its inputs. | |||
| Also, the ability for an attacker to supply crafted SenML data that | Also, the ability for an attacker to supply crafted SenML data that | |||
| specify media types chosen by the attacker may expose vulnerabilities | specifies media types chosen by the attacker may expose vulnerabilities | |||
| of handlers for these media types to the attacker. | of handlers for these media types to the attacker. | |||
| This includes "decompression bombs", compressed data that is crafted | This includes "decompression bombs", compressed data that is crafted | |||
| to decompress to extremely large data items.</t> | to decompress to extremely large data items.</t> | |||
| </section> | </section> | |||
| <section anchor="iana" numbered="true" toc="default"> | <section anchor="iana" numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <t>(Note to RFC Editor: Please replace all occurrences of "RFC-AAAA" with | <t>IANA has assigned the following new labels in the "SenML Labels" subreg | |||
| the RFC number of this specification and remove this note.)</t> | istry | |||
| <t>IANA is requested to assign new labels in the "SenML Labels" | of the "Sensor Measurement Lists (SenML)" registry <xref target="IANA.senml" for | |||
| <xref section="subregistry" sectionFormat="bare" target="IANA.senml" relative="# | mat="default"/> (as defined in <xref section="12.2" sectionFormat="of" target="R | |||
| senml-labels" format="default"/> | FC8428" format="default"/>) for the | |||
| of the SenML registry <xref target="IANA.senml" format="default"/> (as defined i | Content-Format indication, as per <xref target="tbl-senml-reg" format="default"/ | |||
| n <xref section="12.2" sectionFormat="of" target="RFC8428" format="default"/>) f | >:</t> | |||
| or the | ||||
| Content-Format indication as per <xref target="tbl-senml-reg" format="default"/> | ||||
| :</t> | ||||
| <table anchor="tbl-senml-reg" align="center"> | <table anchor="tbl-senml-reg" align="center"> | |||
| <name>IANA Registration for new SenML Labels</name> | <name>IANA Registration for New SenML Labels</name> | |||
| <thead> | <thead> | |||
| <tr> | <tr> | |||
| <th align="right">Name</th> | <th align="right">Name</th> | |||
| <th align="left">Label</th> | <th align="left">Label</th> | |||
| <th align="left">JSON Type</th> | <th align="left">JSON Type</th> | |||
| <th align="left">XML Type</th> | <th align="left">XML Type</th> | |||
| <th align="left">Reference</th> | <th align="left">Reference</th> | |||
| </tr> | </tr> | |||
| </thead> | </thead> | |||
| <tbody> | <tbody> | |||
| <tr> | <tr> | |||
| <td align="right">Base Content-Format</td> | <td align="right">Base Content-Format</td> | |||
| <td align="left">bct</td> | <td align="left">bct</td> | |||
| <td align="left">String</td> | <td align="left">String</td> | |||
| <td align="left">string</td> | <td align="left">string</td> | |||
| <td align="left">RFC-AAAA</td> | <td align="left">RFC 9193</td> | |||
| </tr> | </tr> | |||
| <tr> | <tr> | |||
| <td align="right">Content-Format</td> | <td align="right">Content-Format</td> | |||
| <td align="left">ct</td> | <td align="left">ct</td> | |||
| <td align="left">String</td> | <td align="left">String</td> | |||
| <td align="left">string</td> | <td align="left">string</td> | |||
| <td align="left">RFC-AAAA</td> | <td align="left">RFC 9193</td> | |||
| </tr> | </tr> | |||
| </tbody> | </tbody> | |||
| </table> | </table> | |||
| <t>Note that as per <xref section="12.2" sectionFormat="of" target="RFC842 8" format="default"/>, no CBOR labels or EXI | <t>Note that, per <xref section="12.2" sectionFormat="of" target="RFC8428" format="default"/>, no CBOR labels nor Efficient XML Interchange (EXI) | |||
| schemaId values (EXI ID column) are supplied.</t> | schemaId values (EXI ID column) are supplied.</t> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references> | <references> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="RFC2045" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 045"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2045. | |||
| <front> | xml"/> | |||
| <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8428. | |||
| of Internet Message Bodies</title> | xml"/> | |||
| <author fullname="N. Freed" initials="N." surname="Freed"> | ||||
| <organization/> | <reference anchor="IANA.senml" target="https://www.iana.org/assignments/senml"> | |||
| </author> | ||||
| <author fullname="N. Borenstein" initials="N." surname="Borenstein"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="November" year="1996"/> | ||||
| <abstract> | ||||
| <t>This initial document specifies the various headers used to des | ||||
| cribe the structure of MIME messages. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2045"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2045"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8428" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 428"> | ||||
| <front> | ||||
| <title>Sensor Measurement Lists (SenML)</title> | ||||
| <author fullname="C. Jennings" initials="C." surname="Jennings"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="Z. Shelby" initials="Z." surname="Shelby"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="J. Arkko" initials="J." surname="Arkko"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="A. Keranen" initials="A." surname="Keranen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="August" year="2018"/> | ||||
| <abstract> | ||||
| <t>This specification defines a format for representing simple sen | ||||
| sor measurements and device parameters in Sensor Measurement Lists (SenML). Rep | ||||
| resentations are defined in JavaScript Object Notation (JSON), Concise Binary Ob | ||||
| ject Representation (CBOR), Extensible Markup Language (XML), and Efficient XML | ||||
| Interchange (EXI), which share the common SenML data model. A simple sensor, su | ||||
| ch as a temperature sensor, could use one of these media types in protocols such | ||||
| as HTTP or the Constrained Application Protocol (CoAP) to transport the measure | ||||
| ments of the sensor or to be configured.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8428"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8428"/> | ||||
| </reference> | ||||
| <reference anchor="IANA.senml" target="https://www.iana.org/assignments/ | ||||
| senml"> | ||||
| <front> | <front> | |||
| <title>Sensor Measurement Lists (SenML)</title> | <title>Sensor Measurement Lists (SenML)</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 252"> | ||||
| <front> | ||||
| <title>The Constrained Application Protocol (CoAP)</title> | ||||
| <author fullname="Z. Shelby" initials="Z." surname="Shelby"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="K. Hartke" initials="K." surname="Hartke"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="June" year="2014"/> | ||||
| <abstract> | ||||
| <t>The Constrained Application Protocol (CoAP) is a specialized we | ||||
| b transfer protocol for use with constrained nodes and constrained (e.g., low-po | ||||
| wer, lossy) networks. The nodes often have 8-bit microcontrollers with small am | ||||
| ounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wir | ||||
| eless Personal Area Networks (6LoWPANs) often have high packet error rates and a | ||||
| typical throughput of 10s of kbit/s. The protocol is designed for machine- to- | ||||
| machine (M2M) applications such as smart energy and building automation.</t> | ||||
| <t>CoAP provides a request/response interaction model between appl | ||||
| ication endpoints, supports built-in discovery of services and resources, and in | ||||
| cludes key concepts of the Web such as URIs and Internet media types. CoAP is d | ||||
| esigned to easily interface with HTTP for integration with the Web while meeting | ||||
| specialized requirements such as multicast support, very low overhead, and simp | ||||
| licity for constrained environments.</t> | ||||
| </abstract> | ||||
| </front> | </front> | |||
| <seriesInfo name="RFC" value="7252"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7252"/> | ||||
| </reference> | </reference> | |||
| <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 234"> | ||||
| <front> | ||||
| <title>Augmented BNF for Syntax Specifications: ABNF</title> | ||||
| <author fullname="D. Crocker" initials="D." role="editor" surname="C | ||||
| rocker"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="P. Overell" initials="P." surname="Overell"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2008"/> | ||||
| <abstract> | ||||
| <t>Internet technical specifications often need to define a formal | ||||
| syntax. Over the years, a modified version of Backus-Naur Form (BNF), called A | ||||
| ugmented BNF (ABNF), has been popular among many Internet specifications. The c | ||||
| urrent specification documents ABNF. It balances compactness and simplicity with | ||||
| reasonable representational power. The differences between standard BNF and AB | ||||
| NF involve naming rules, repetition, alternatives, order-independence, and value | ||||
| ranges. This specification also supplies additional rule definitions and encod | ||||
| ing for a core lexical analyzer of the type common to several Internet specifica | ||||
| tions. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="68"/> | ||||
| <seriesInfo name="RFC" value="5234"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5234"/> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-httpbis-semantics" target="https://www.ietf. | ||||
| org/archive/id/draft-ietf-httpbis-semantics-19.txt"> | ||||
| <front> | ||||
| <title>HTTP Semantics</title> | ||||
| <author fullname="Roy T. Fielding"> | ||||
| <organization>Adobe</organization> | ||||
| </author> | ||||
| <author fullname="Mark Nottingham"> | ||||
| <organization>Fastly</organization> | ||||
| </author> | ||||
| <author fullname="Julian Reschke"> | ||||
| <organization>greenbytes GmbH</organization> | ||||
| </author> | ||||
| <date day="12" month="September" year="2021"/> | ||||
| <abstract> | ||||
| <t> The Hypertext Transfer Protocol (HTTP) is a stateless applic | ||||
| ation- | ||||
| level protocol for distributed, collaborative, hypertext information | ||||
| systems. This document describes the overall architecture of HTTP, | ||||
| establishes common terminology, and defines aspects of the protocol | ||||
| that are shared by all versions. In this definition are core | ||||
| protocol elements, extensibility mechanisms, and the "http" and | ||||
| "https" Uniform Resource Identifier (URI) schemes. | ||||
| This document updates RFC 3864 and obsoletes RFC 2818, RFC 7231, RFC | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7252. | |||
| 7232, RFC 7233, RFC 7235, RFC 7538, RFC 7615, RFC 7694, and portions | xml"/> | |||
| of RFC 7230. | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5234. | |||
| xml"/> | ||||
| <reference anchor='RFC9110'> | ||||
| <front> | ||||
| <title>HTTP Semantics</title> | ||||
| <author initials='R' surname='Fielding' fullname='Roy Fielding' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='M' surname='Nottingham' fullname='Mark Nottingham' role="edito | ||||
| r"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J' surname='Reschke' fullname='Julian Reschke' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year='2022' month='June' /> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9110"/> | ||||
| <seriesInfo name="STD" value="97"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9110"/> | ||||
| </reference> | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-semantics- | ||||
| 19"/> | ||||
| </reference> | ||||
| <reference anchor="IANA.media-types" target="https://www.iana.org/assign ments/media-types"> | <reference anchor="IANA.media-types" target="https://www.iana.org/assign ments/media-types"> | |||
| <front> | <front> | |||
| <title>Media Types</title> | <title>Media Types</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="IANA.core-parameters" target="https://www.iana.org/as signments/core-parameters"> | <reference anchor="IANA.core-parameters" target="https://www.iana.org/as signments/core-parameters"> | |||
| <front> | <front> | |||
| <title>Constrained RESTful Environments (CoRE) Parameters</title> | <title>Constrained RESTful Environments (CoRE) Parameters</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="IANA.http-parameters" target="https://www.iana.org/as signments/http-parameters"> | <reference anchor="IANA.http-parameters" target="https://www.iana.org/as signments/http-parameters"> | |||
| <front> | <front> | |||
| <title>Hypertext Transfer Protocol (HTTP) Parameters</title> | <title>Hypertext Transfer Protocol (HTTP) Parameters</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| <date/> | ||||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 119"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | |||
| <front> | xml"/> | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | |||
| le> | xml"/> | |||
| <author fullname="S. Bradner" initials="S." surname="Bradner"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" year="1997"/> | ||||
| <abstract> | ||||
| <t>In many standards track documents several words are used to sig | ||||
| nify the requirements in the specification. These words are often capitalized. | ||||
| This document defines these words as they should be interpreted in IETF document | ||||
| s. This document specifies an Internet Best Current Practices for the Internet | ||||
| Community, and requests discussion and suggestions for improvements.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author fullname="B. Leiba" initials="B." surname="Leiba"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" year="2017"/> | ||||
| <abstract> | ||||
| <t>RFC 2119 specifies common key words that may be used in protoco | ||||
| l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
| t only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| <references> | <references> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 648"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4648. | |||
| <front> | xml"/> | |||
| <title>The Base16, Base32, and Base64 Data Encodings</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8949. | |||
| <author fullname="S. Josefsson" initials="S." surname="Josefsson"> | xml"/> | |||
| <organization/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6838. | |||
| </author> | xml"/> | |||
| <date month="October" year="2006"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1590. | |||
| <abstract> | xml"/> | |||
| <t>This document describes the commonly used base 64, base 32, and | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6690. | |||
| base 16 encoding schemes. It also discusses the use of line-feeds in encoded d | xml"/> | |||
| ata, use of padding in encoded data, use of non-alphabet characters in encoded d | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4180. | |||
| ata, use of different encoding alphabets, and canonical encodings. [STANDARDS-T | xml"/> | |||
| RACK]</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8866. | |||
| </abstract> | xml"/> | |||
| </front> | ||||
| <seriesInfo name="RFC" value="4648"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4648"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 949"> | ||||
| <front> | ||||
| <title>Concise Binary Object Representation (CBOR)</title> | ||||
| <author fullname="C. Bormann" initials="C." surname="Bormann"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="P. Hoffman" initials="P." surname="Hoffman"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="December" year="2020"/> | ||||
| <abstract> | ||||
| <t>The Concise Binary Object Representation (CBOR) is a data forma | ||||
| t whose design goals include the possibility of extremely small code size, fairl | ||||
| y small message size, and extensibility without the need for version negotiation | ||||
| . These design goals make it different from earlier binary serializations such a | ||||
| s ASN.1 and MessagePack.</t> | ||||
| <t>This document obsoletes RFC 7049, providing editorial improveme | ||||
| nts, new details, and errata fixes while keeping full compatibility with the int | ||||
| erchange format of RFC 7049. It does not create a new version of the format.</t | ||||
| > | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="94"/> | ||||
| <seriesInfo name="RFC" value="8949"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8949"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 838"> | ||||
| <front> | ||||
| <title>Media Type Specifications and Registration Procedures</title> | ||||
| <author fullname="N. Freed" initials="N." surname="Freed"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="J. Klensin" initials="J." surname="Klensin"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="T. Hansen" initials="T." surname="Hansen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2013"/> | ||||
| <abstract> | ||||
| <t>This document defines procedures for the specification and regi | ||||
| stration of media types for use in HTTP, MIME, and other Internet protocols. Th | ||||
| is memo documents an Internet Best Current Practice.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="13"/> | ||||
| <seriesInfo name="RFC" value="6838"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6838"/> | ||||
| </reference> | ||||
| <reference anchor="RFC1590" target="https://www.rfc-editor.org/info/rfc1 | ||||
| 590"> | ||||
| <front> | ||||
| <title>Media Type Registration Procedure</title> | ||||
| <author fullname="J. Postel" initials="J." surname="Postel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="March" year="1994"/> | ||||
| <abstract> | ||||
| <t>Several questions have been raised about the requirements and a | ||||
| dministrative procedure for registering MIME content-type and subtypes, and the | ||||
| use of these Media Types for other applications. This document addresses these | ||||
| issues and specifies a procedure for the registration of new Media Types (conten | ||||
| t-type/subtypes). It also generalizes the scope of use of these Media Types to | ||||
| make it appropriate to use the same registrations and specifications with other | ||||
| applications. This memo provides information for the Internet community. This | ||||
| memo does not specify an Internet standard of any kind.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="1590"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC1590"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6690" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 690"> | ||||
| <front> | ||||
| <title>Constrained RESTful Environments (CoRE) Link Format</title> | ||||
| <author fullname="Z. Shelby" initials="Z." surname="Shelby"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="August" year="2012"/> | ||||
| <abstract> | ||||
| <t>This specification defines Web Linking using a link format for | ||||
| use by constrained web servers to describe hosted resources, their attributes, a | ||||
| nd other relationships between links. Based on the HTTP Link Header field defin | ||||
| ed in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carri | ||||
| ed as a payload and is assigned an Internet media type. "RESTful" refers to the | ||||
| Representational State Transfer (REST) architecture. A well-known URI is defin | ||||
| ed as a default entry point for requesting the links hosted by a server. [STAND | ||||
| ARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6690"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6690"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4180" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 180"> | ||||
| <front> | ||||
| <title>Common Format and MIME Type for Comma-Separated Values (CSV) | ||||
| Files</title> | ||||
| <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovi | ||||
| ch"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2005"/> | ||||
| <abstract> | ||||
| <t>This RFC documents the format used for Comma-Separated Values ( | ||||
| CSV) files and registers the associated MIME type "text/csv". This memo provide | ||||
| s information for the Internet community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4180"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4180"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8866" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 866"> | ||||
| <front> | ||||
| <title>SDP: Session Description Protocol</title> | ||||
| <author fullname="A. Begen" initials="A." surname="Begen"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="C. Perkins" initials="C." surname="Perkins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author fullname="M. Handley" initials="M." surname="Handley"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| <abstract> | ||||
| <t>This memo defines the Session Description Protocol (SDP). SDP i | ||||
| s intended for describing multimedia sessions for the purposes of session announ | ||||
| cement, session invitation, and other forms of multimedia session initiation. Th | ||||
| is document obsoletes RFC 4566.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8866"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8866"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| </references> | </references> | |||
| <section numbered="false" anchor="acks" toc="default"> | <section numbered="false" anchor="acks" toc="default"> | |||
| <name>Acknowledgements</name> | <name>Acknowledgments</name> | |||
| <t>The authors would like to thank <contact fullname="Sérgio Abreu"/> for the discussions leading | <t>The authors would like to thank <contact fullname="Sérgio Abreu"/> for the discussions leading | |||
| to the design of this extension and <contact fullname="Isaac Rivera"/> for revie ws and | to the design of this extension and <contact fullname="Isaac Rivera"/> for revie ws and | |||
| feedback. | feedback. | |||
| <contact fullname="Klaus Hartke"/> suggested not burdening this draft with a sep arate | <contact fullname="Klaus Hartke"/> suggested not burdening this document with a separate | |||
| mandatory-to-implement version of the fields. | mandatory-to-implement version of the fields. | |||
| <contact fullname="Alexey Melnikov"/>, <contact fullname="Jim Schaad"/>, and <co ntact fullname="Thomas Fossati"/> provided helpful | <contact fullname="Alexey Melnikov"/>, <contact fullname="Jim Schaad"/>, and <co ntact fullname="Thomas Fossati"/> provided helpful | |||
| comments at Working-Group last call. | comments at Working Group Last Call. | |||
| <contact fullname="Marco Tiloca"/> asked for clarifying and using the term Conte nt-Format-Spec.</t> | <contact fullname="Marco Tiloca"/> asked for clarifying and using the term Conte nt-Format-Spec.</t> | |||
| </section> | </section> | |||
| </back> | </back> | |||
| <!-- ##markdown-source: | ||||
| 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 | ||||
| </rfc> | </rfc> | |||
| End of changes. 62 change blocks. | ||||
| 664 lines changed or deleted | 189 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||