Re: Suggestions for HTTP/2, RFC 9113, Section 2.

Hi Martin,

Thanks for your reply.

I was aware of that kind of assumption/distinction/possibility because 9113
itself does try to clarify that.

So, we are basically saying that HTTP/2 (9113) is not a standalone
protocol, and that the HTTP semantics need to be read from 9110 in
conjunction ( which is apparently made clear here:  "Those semantics are
expressed “on the wire” in three ways"  https://httpwg.org/specs/ ; and, it
appears, not so explicitly in 9113 itself). One chief HTTP semantic being
that it is stateless, including w.r.t. authentication. In other words, 9113
doesn't concern with the semantics themselves, but the mapping to the TCP
layer; one may say, it deals with the frame layer. Being so it isn't at the
application-layer (HTTP semantics), but inserted at a layer between the
application-layer & the TCP layer  Which is where  I am trying to bring to
notice that, then, HTTP/2 can't being called specifically technically
"application-layer," though it is connection-oriented.

Were HTTP 1.1 ( 9112) ready to leave the HTTP semantics entirely to 9110
and concern itself entirely with "the wire, " it can describe itself as
connection-oriented too. It doesn't [https://httpwg.org/specs/rfc9112.html].
There might be historical reasons (e.g., backward compatibility)  for that
too. But we can bring that clarity vis-a-vis HTTP/2. When we say HTTP (or
HTTP 1.1) is stateless, we mean HTTP, at the application layer, admits no
idea of session-state or connection-state; there could be connections at
the lower TCP layer.

Kind regards.
Rupinder


On Thu, Jan 4, 2024 at 10:46 AM Martin Thomson <mt@lowentropy.net> wrote:

> Hi Rupinder,
>
> I think that perhaps you are looking at this more broadly than the
> document intends.
>
> HTTP/2 is a protocol between an HTTP client and server, as opposed to user
> agent or origin server or proxy or intermediary (or any of those terms that
> HTTP uses).  As a definition of a single "hop", using connection-oriented
> is entirely appropriate.  For instance, while HTTP itself is stateless,
> HTTP/2 uses a connection-oriented method to convey HTTP semantics.
>
> A lot of the older HTTP literature did not properly distinguish between
> HTTP in general and the specific HTTP/1.1 protocol.  A lot of that has been
> carefully cleaned up with the publication of RFC 9110, so I'd encourage you
> to read the document with that in mind.
>
> Cheers,
> Martin
>
> On Sat, Dec 30, 2023, at 04:56, Rupinder Singh wrote:
> > Hello,
> >
> > Most respectfully. I've the following suggestions w.r.t.  HTTP/2, RFC
> > 9113, Section 2.
> >
> > 1. "HTTP/2 is a connection-oriented application-layer protocol..."
> >
> > HTTP/2 is a stateless application-layer protocol...
> >
> > 2. Sub-section 2..2. The term "endpoint" may not be equated with a
> > client or server. The term endpoint refers specifically to a URI at the
> > application layer. By extension/overloading, it also refers to the
> > proxy software ( e.g., class) abstracting the endpoint. It can't refer
> > to the client IP address + port  or to the server IP address+port that
> > actually sets up the TCP connection at the transport layer. And  a
> > typical web client like a user agent/client (e.g. browser) doesn't have
> > a  URI.  Yes, maybe, the term endpoint can be used for the addresses of
> > the other stateless protocols, e.g., simply, an IP address at the IP
> > layer.
> >
> > 3. In the traditional HTTP 1.1 literature as well as software
> > documentation, the term HTTP connection or HTTP session are used.
> > However, from the context, it is clear that they refer to the
> > connection/session at the TCP layer, not at the the HTTP/application
> > layer itself, where communication exchange is
> > stateless/connectioness/sesssionless (simply Request-Response; or
> > additionally a Server push as in HTTP/2). We may clarify the
> > terminology in this RFC accordingly.
> >
> >
> > Kind regards,
> > Rupinder Singh
>
>

Received on Thursday, 4 January 2024 06:50:20 UTC