Closed mnot closed 8 years ago
Same example - Pragma is a request header field, it is not valid in responses.
Finally, "RESTCONF" is a horrible name; is it too late to change it to "NETCONF-HTTP"?
RESTCONF is not state-full or session-based like NETCONF. The RESTCONF term has already stuck. We tried YANG-API at first and tried to avoid RESTCONF but people insisted on changing it to RESTCONF
It's a horrible name because REST has become quite a muddied term, and this use further muddies it. REST is an architectural style, whereas what you're doing is a very specific protocol built on top of HTTP.
Given that the standard has not been approved by the IESG, I don't see how it can have "stuck" -- while the set of people working on it now and using early implementations might be familiar with it, the set of people involved if it succeeds as a standard will be much larger.
Ping @royfielding for any thoughts he'd like to add.
fixed in draft -15 media types will have -xml added in draft 16
I'm not sure this is the most appropriate way to give feedback, but it's the easiest :)
Some things I noticed in a reading -13:
Terms
, there are a few "resources" that are defined as "a resource with the media type...". It would be more accurate to say "a resource that has a representation with the media type..." (because resources don't have media types in HTTP).I'd say this differently; AIUI the client is able to use the data presented by NETCONF to determine the links it needs.
It's not appropriate to re-state requirements from HTTP; if it's a HTTP/1.1 server, it will support pipelining. Also, see below RE: versions.
As noted elsewhere, this seems needlessly restrictive, and probably impossible to enforce. HTTP versioning is hop-by-hop, so a client behind a proxy can't control the version of HTTP presented to the server, and vice versa.
401 is used for authentication challenges, not authorisation. It might equally be appropriate to present 403 Forbidden (especially if client cert authentication is in use, since it doesn't (currently) use 401). Also, there are situations where this MUST can be reasonably violated, e.g., if a 400, 500, 501, etc. status code is more appropriate; it needs to be a SHOULD.
As elsewhere, resources don't have media types.
Server example.com
-- missing colonETag: a74eefc993a2b
-- missing quotes around the etag-valuePragma
is a request header field, it is not valid in responses.It's not "completely incompatible"; as described below that passage, responses can be cached, but need to be validated before being used to satisfy a request (i.e.,
Cache-Control: no-cache
semantics). I also strongly suspect you could assign a freshness lifetime if appropriateVary
orKey
headers are sent.Other users of these resources might find a response body helpful (e.g., negotiated by
Prefer
); it shouldn't be prohibited (while there's no 2119 language here, some might interpret it as such). Also, "there is no response message-body" is true for 204, it's best to leave the definition of what does and does not have a message body to RFC7230 (as this is an area rife with bugs and interop problems).This is very informal; the syntax you're referring to is defined by HTML5, not HTTP or URIs, so you need to refer to that spec.
It would be good if the media types clearly specify their fragment identifier semantics where possible, so that future uses can leverage them, even if this protocol doesn't use them.
See above re: caching.
See above re: appropriate use of
Pragma
.Status codes, not status lines. The status line includes the reason phrase, which is not guaranteed to persist end-to-end.
This table makes me really uncomfortable; it will be read by many as redefining / specialising the semantics of HTTP status codes.