- From: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
- Date: Fri, 3 Mar 2017 07:11:38 +0200 (EET)
- To: HTTP working group mailing list <ietf-http-wg@w3.org>
- CC: Mike Bishop <Michael.Bishop@microsoft.com>, Alex Rousskov <rousskov@measurement-factory.com>, Willy Tarreau <w@1wt.eu>, Kari Hurtta <hurtta-ietf@elmme-mailer.org>
> > Mike Bishop <Michael.Bishop@microsoft.com>: (Thu Mar 2 00:35:11 2017) > > > A couple problems with that model. First, the wholly protocol-based: A stream is opened by a HEADERS frame; sending an earlier frame on a stream is a breaking protocol change that would require negotiation prior to use. (Sending the frame between HEADERS and DATA, and requiring a zero-length DATA frame to close the stream might be a reasonable workaround to this.) > > > > > > > > There may be reason to send SETTINGS frame with > > TRUSTED_PROXY_CONFIGURED = 1 > > from browser to proxy, but reason is not > "Origin certificate" -frame. I think > that stream is open on that situation even > when it is first frame on direction > proxy -> browser. > > > Sequence A: (HTTP/2 inside of TLS connection between browser and broxy) > > > browser => proxy > HEADERS (stream 1) > - END_STREAM > + END_HEADERS > :method = CONNECT > :authority = example.com > > proxy => browser (XXXXXX) > HEADERS (stream 1) > - END_STREAM > + END_HEADERS > :status = 5xx (Content Inspection Required) > content-type = text/html;charset=utf-8 > > proxy => browser > DATA (stream 1) > + END_STREAM > <body> > Connection to example.com refused by Content Inspection Gateway > </body> > > proxy => browser > RST_STREAM (stream 1) > > browser => proxy > HEADERS (stream 3) > + END_STREAM > + END_HEADERS > :method = GET > :scheme = https > :path = / > :authority = example.com > > proxy => browser > ORIGINCERT (stream 3) > > HEADERS (stream 3) > + END_HEADERS > - END_STREAM > :status = 200 > content-type = text/html;charset=utf-8 > {other headers] > > DATA (stream 3) > + END_STREAM > payload > There is another use case what that does not yet solve. browser: (or user actually) I want proxy cache pages if I know that proxy supports https forwarding and that proxy does certificate checks. ( And I want use tunnel instead if origin have EV certificate ? ) In that case proxy never does :status = 5xx (Content Inspection Required) for CONNECT request. SETTINGS TRUSTED_PROXY_CONFIGURED = 1 from browser to proxy does not help. So proxy needs tells that "I support GET https" ( and proxy needs to cache origin'n certificate for cached pages so that it can send "ORIGINCERT" frame. ) But WG is solving that caching problem from origin server's direction (where draft-ietf-httpbis-encryption-encoding is one part of that.) So it is not easy to decide when do browser => proxy HEADERS + END_STREAM + END_HEADERS :method = GET :scheme = https :path = / :authority = example.com / Kari Hurtta
Received on Friday, 3 March 2017 05:12:13 UTC