Alexander Pelov
2017-04-09 14:12:49 UTC
Dear all,
IANA has received a request from Michael Koster to register two new CoAP options:
- Accept-Content-Format-Version
- Content-Format-Version
The registration happens after an expert review and after a couple of mail exchanges and meeting Michael in person in Chicago, we (the experts and Michael) decided that the discussion should be brought to the mailing list, before getting the final approval.
One of the major questions that needs to be discussed is the following:
What are the reasons *NOT* to allocate a new Content-Format number (RFC 7252) for each new version? (in the HTTP world, "version" is a simple parameter to the Content-Type, so why not treat it as such?)
The question is not trivial, as it touches upon content format negotiation, e.g. how should the Server use the Accept-Content-Format-Version in order to indicate that it is willing to accept both application/vnd.ocf+cbor AND application/application/vnd.ocf+cbor;version=2.0, with a preference for the latter? In the semantics of the version parameter, the two should be considered completely independent/incompatible types.
The current way of doing this would be to allocate separate Content-Format numbers to "application/application/vnd.ocf+cbor" (10000 as it stands now) and "application/application/vnd.ocf+cbor;version=2.0" (e.g. 10001).. and then use some form of content negotiation.
This however can have its disadvantages, .. and the way industry does use versioning in some cases (e.g. people DO use the version parameter to version their RESTful APIs.. which means, that NOT having such mechanism in CoAP could theoretically drive them to re-register blocks of Content-Format numbers, just to differentiate between their APIs).
In any case, we need to have this discussion documented on the mailing list (as previously discussed with Michael), so here we go..
Best,
Alexander
IANA has received a request from Michael Koster to register two new CoAP options:
- Accept-Content-Format-Version
- Content-Format-Version
The registration happens after an expert review and after a couple of mail exchanges and meeting Michael in person in Chicago, we (the experts and Michael) decided that the discussion should be brought to the mailing list, before getting the final approval.
One of the major questions that needs to be discussed is the following:
What are the reasons *NOT* to allocate a new Content-Format number (RFC 7252) for each new version? (in the HTTP world, "version" is a simple parameter to the Content-Type, so why not treat it as such?)
The question is not trivial, as it touches upon content format negotiation, e.g. how should the Server use the Accept-Content-Format-Version in order to indicate that it is willing to accept both application/vnd.ocf+cbor AND application/application/vnd.ocf+cbor;version=2.0, with a preference for the latter? In the semantics of the version parameter, the two should be considered completely independent/incompatible types.
The current way of doing this would be to allocate separate Content-Format numbers to "application/application/vnd.ocf+cbor" (10000 as it stands now) and "application/application/vnd.ocf+cbor;version=2.0" (e.g. 10001).. and then use some form of content negotiation.
This however can have its disadvantages, .. and the way industry does use versioning in some cases (e.g. people DO use the version parameter to version their RESTful APIs.. which means, that NOT having such mechanism in CoAP could theoretically drive them to re-register blocks of Content-Format numbers, just to differentiate between their APIs).
In any case, we need to have this discussion documented on the mailing list (as previously discussed with Michael), so here we go..
Best,
Alexander