Skip to main content

Early Review of draft-ralston-mimi-protocol-02
review-ralston-mimi-protocol-02-httpdir-early-nottingham-2024-03-12-00

Request Review of draft-ralston-mimi-protocol
Requested revision No specific revision (document currently at 02)
Type Early Review
Team HTTP Directorate (httpdir)
Deadline 2024-03-29
Requested 2024-02-18
Requested by Mark Nottingham
Authors Richard Barnes , Matthew Hodgson , Konrad Kohbrok , Rohan Mahy , Travis Ralston , Raphael Robert
I-D last updated 2024-03-12
Completed reviews Httpdir Early review of -02 by Mark Nottingham
Assignment Reviewer Mark Nottingham
State Completed
Request Early review on draft-ralston-mimi-protocol by HTTP Directorate Assigned
Reviewed revision 02
Result On the Right Track
Completed 2024-03-12
review-ralston-mimi-protocol-02-httpdir-early-nottingham-2024-03-12-00
This is an early HTTP Directorate review. See our review guidlines at
<https://httpwg.org/admin/directorate/>.

I understand that this document is still changing rapidly and not yet complete;
by undertaking an early review, we hope to be able to point out issues, promote
discussion, and give feedback before they become too difficult to change.

My main feedback is that I wonder about the resource modelling of a room in
this protocol; just as in object oriented programming, HTTP interface design is
largely about figuring out how to model the components of your program.

In the example well-known file, rooms are parameters to operations, rather than
operations being performed on rooms. I wonder (but don't know) if there has
been a lost opportunity here -- e.g., to GET the state of a room, its
participants, and so forth.

I understand that the cryptographic requirements of MIMI make modelling things
as GETs is more difficult here, but it does seem that features like negotiation
(for acceptable ciphersuites and capabilities) _might_ leverage or extend
already-existing HTTP mechanisms, rather than being embedded in
application-specific payload parameters.

This is food for thought, more than anything; I'm happy to have a chat with the
authors about potential ways they could get more value out of using HTTP.

Other things I noticed (all relatively minor, except for perhaps the first):

* I don't see any discussion of why a new 'mimi' URI scheme is required. See
<https://www.rfc-editor.org/rfc/rfc9205.html#name-considering-uri-schemes>.

* 4.1 seems to refer to HTTP as a 'transport layer'. Besides the
transport/application split, HTTP is a _transfer_ protocol; characterising it
as a transport is turning it into a "tunnel", which is not using the protocol
well (unless that's the specific intent, e.g., like MASQUE). I'd suggest using
terminology more carefully here, because some in the community are sticklers
for this.

* 4.1 states that the 'target provider is indicated using a Host header'. This
is specified at the wrong layer of abstraction -- you probably want to use
terminology like 'the target URI's authority', or connect it to the origin
concept (RFC 9110 section 4.3.1).

* Don't reuse the From header like this; it's not interoperable. Use an
application-specific one. Don't call it From-Host; make it specific to _your_
application unless it's genuinely reusable in other applications.

* Section 5.2 and following subsections don't specify content types for
requests or responses.

* See <https://httpwg.org/admin/editors/style-guide> for guidlines about
editing HTTP-related specifications (especially examples; having some
on-the-wire examples would be very helpful).