Skip to main content

Minutes IETF98: httpbis
minutes-98-httpbis-00

Meeting Minutes HTTP (httpbis) WG
Date and time 2017-03-31 14:00
Title Minutes IETF98: httpbis
State Active
Other versions plain text
Last updated 2017-04-18

minutes-98-httpbis-00
HTTP Working Group Minutes- IETF 98
Friday, 31 March 2017
Status

    draft-ietf-httpbis-rfc5987bis-05 in RFC Editor queue
    draft-ietf-httpbis-http2-encryption-11 also in RFC Editor queue

Active Drafts (12 minutes each)
RFC6265bis: Cookies

Mike West: 3 drafts adopted.

Drafts are tested in implementations:

* [Cookie
Prefixes](https://tools.ietf.org/html/draft-ietf-httpbis-cookie-prefixes):

* Shipped in Chrome 51 (May, 2016) and Firefox 50 (November, 2016)
* Google see some usage of these new cookies
    * 0.004% of `Set-Cookie` headers Chrome sees are using `__Host-` (seen by
    1.08% of users) * 0.00001% using `__Secure-` (0.03% of users)

    Strict secure: Ramped up to 100% in Chrome 56 (January), Firefox 52 (March)
    Impact to developers low enough compared to benefits. Not too many bugs
    reports. The web-view developers are however also noting this change, they
    have more expectations on stability.

Same-site cookies: Chrome 51. 0.01% of usage.

Expect to update the RFC in April.

Issue list not huge. Issues seen in Chrome seem pretty straightforward.

Jim Roskind: stats in number of users. Number given regarding 'set-cookies'.
Could get numbers on users, but not easy. Early Hints

Kazuho

Mechanism for the server to notify to client what headers are expected to look
like in the final response.

Two changes.

Security considerations about cross-origin information leak. If client doesn't
recognize 1xx response and connects through a forward proxy. Non-issue for
HTTPS and for HTTP/2.

Mike Bishop: would apply to client doing pipelining? K: would affect both. Mike
Bishop: would apply for pipelining without a forward proxy Roy Fielding:
Already a concern as 1xx codes can be extended by anyone. Thus this could
happen in other cases also.

When to apply 103 headers. Part of the informational response itself, as well
as (speculative) part of final response. RFC 7231: MAY ignore unexpected 1xx
responses. Two options: - Leave it a MAY or be explicit Current solution: be
explicit to have a well-defined behaviour.

Roy Fielding: Some problem with wording, as it can be interpreted as one do not
parse the headers. Will send to mail list..

Patrick: good idea to be explicit.

Patrick: no open issue in github.

Kahuzo: once 'when to apply' issue is solve, could move to LC.

Roy: could move to LC anyway.

Martin: tweak this, and ship the draft.
Expect-CT (presentation)

Emily Stark

Expect-CT: response header to allow sites to opt in to Certificate Transparency
enforcement and/or reporting

Implementation underway in Chrome.

Blockers from TRANS WG

    Need to settle architecture questions for CT
    Plan for distributing log metadata, for server to know when to update
    regarding CTs.

Richard Barnes: Expectation out of TRANS may be to big. Unlikely to result in
an consistent policy.

Emily: Don't have such strong expectation. Want to have something for shipping
in Chrome.

Patrick: issues?

Emily: mostly editorial issues.

Set content-type header when sending reports.

Patrick: how do you see next steps?

Emily: maybe TRANS will settle in the next few weeks. Possibly go to LC in
Prague

Martin: don't put expectation in work of TRANS. Once TRANS done, Emily should
tell WG and see how it works.

Emily: implementation for LC?

Patrick: has Julian done a review?

Emily: Commented on an issue.

Roy: uses Cookie syntax, which is bad. Copy any other headers. Will file issue.

Roy: still don't understand why it is not an option on certificates.

Emily: this is not something to keep forever. Hope to remove this header in a
few years, when browser have a direct support for CT.

Roy: don't think it is a good idea to deploy header fields for a limited time.

Martin: regarding syntax should use header structure draft.

Suboh Iyengar: Maybe adding a header from clients to inform server that they
are enforcing CT ?, Will file issue

Julian Reschke: I don't think expect-ct actually uses cookie syntax
Header Common Structure

Patrick: in fairly early stage. Poul is editing it but has limited time to do
it.

Patrick: should discuss about it. Whether this work is valuable?

Martin: raised an issue: what's the posture regarding repeated parameter names.
Issue was closed without discussion.

Mnot: intend to make pull requests on this spec.

Patrick: recuring problem. Show of hands for having read draft: 6 people.
Immutable Responses (presentation)

Patrick: need document to update list of cache-control values. But this
document is pretty straightforward.

Proposal: LC ready.

Number of thumb-ups.
Cache Digests for HTTP/2

Kazuho:

Two new issues.
Issue #264 Overhead in cache digest algorithm:

    Dedupe URLs before hashing
    Change from SHA256(url) to SHA256(path). Path is shorter. But caches cannot
    reusue SHA256(url) they might already use.

Mike Bishop: don't know what our key are.
Issue #268 Enabling O(1) removal from digest

    Reduce cost of building/maintaining Cache Digests
    Using Cuckoo filters in place of Golomb-coded sets
    Exact encoding or implementation is not available yet.

Stefan Eissing: are browser interested in this?

Patrick: Good to get feedback on implementation status and who.

Kazuho: server-side in Node.js, client-side service-worker. Should have an
apendix on how cache-digest should be encoded as HTTP header.

Patrick: what kind of interest got on this work.

Kazuho: browser vendors wondering on whether doing this. Server vendors seem to
be more interested.

Stefan: httpd has support, but has not seen any client.

Mike Bishop: interested in it, but don't have time to implement this. Blind
push can be a waste of bandwidth.

Patrick: seems #268 will be hard to resolve without running code.

mnot: I’ve had a discussion with one browser engineer who says they might be
trying to implement in the (somewhat) near future; that’s not a commitment,
however. I think the question is whether we wait for a browser implementation,
or ship it as experimental and see.

Martin: how much to expect to learn from 1 person implementing this. #268 could
be resolve on paper. Two paths: park it, or publish it as an experimental draft.

EKR: agree. Either park it or decided on one algorithm to run an experiment
with. The ORIGIN HTTP/2 Frame

Erik Nygren: changes since last version.

    Origin frame: incremental.
    Relaxing requirement for HTTPS: can ignore the DNS.
    Security considerations
    Introducing wildcards without following the DNS may be dangerous.

Mnot: parked it. Thing it is ready to unpark.

Mike Bishop: relaxing the DNS portion. HTTP/2 says do check the DNS. Do you
intended to update RFC 7540?

EKR: two reasons to check the DNS. Want to know where you're going. For
security reasons.

Erik: security aspect and operational aspect. Not following DNS would change
many things.

?: Whole point seems to be coasleasing connections.

Patrick: Looked at implementing it and found another experiment on the code
point chosen. Issue with reusing?

Martin: We have holes in the registry, but no problem to pick the next value.

Mike: about checking the DNS. If multiple host names, multiple IPs that don't
overlap. Any of these IPs same server, but different certs. Therefore when
using origin, these IPs don't match.

Patrick: privacy aspect on allowing host to replace the DNS. Origin is not
block by secondary certs, but the two go well together.

Nick Sullivan: summarize 3 main benefits

    Use the same connections for servers on same machine SNI or not.
    Not doing the DNS lookup could also provide a performance benefit.

Mike: TLS WG: hum showing interest in ???

Patrick: from implementation side Firefox very interested. At least 4 large
servers very interested.

Mike: Additional cert draft requires to check the DNS. If compromised Cert need
to convince you to connect on any domain.

Nick Sullivan: secondary certs should also skip DNS.

Kile Nekritz:

Erik: right now, DNS as second factor (maybe weak). If compromised cert, need
also to compromise DNS for an effective attack.

EKR: 1st attack factor: compromise CA, can do whatever I want.

Erik: still not convinced that origin frame is safe by itself.

Piotr Sikora: origin could allow to hijack all the trafic.

Mike: If connected to server authoritative for several host names, could use it
even if DNS tells otherwise.

Suboh: did the original intent changed?

Patrick: original intent was more complex.

Erik: does seem to have been a change in scope. Probably need a broader
security analysis on how coalescing works?

Martin: notion of constraining space and expanding it could be made separate.
Concerned by middleboxes on the path that want to use these things. Have full
control on where packets end. None options relying on DNS help in these
scenarios. Only certs work.

Patrick: never fully worked on security properties of routing.

Nick: secondary certs expand domains, origin frame restricts.

Mike: have ability to connect to a proxy: delegates DNS resolving to the proxy.

Patrick: list discussion for consensus on DNS issue. Will ask document authors
to bring those issues on the list. Random Access and Live Content

Darshak Thakore

Range has limitations. Proposal is sort of a hack, but best one could came to.

Martin: advise not to pick too large numbers. Concerned about overflow while
server is parsing.

Patrick: no issues. Need more information from WG?

Darshak: feedback from WG would be good. Will update a few things.

Martin: open issues for those things. Once resolved, ask for LC.

Patrick: reviews: Martin, Hanes?, Mark.

Darshak: marked as experimental. Link from 7233?

Martin: would be more confortable once has been tested on the web. Hit some
reseanable number of sites to check on server support. Check that results are
not really bad, in which case Proposed Standard would be fine. Otherwise can
only publish an experimental doc. QUIC Working Group Collaboration 25 min -
Mike Bishop -- [Update on the mapping of HTTP/2 and QUIC]

(https://www.ietf.org/proceedings/98/slides/slides-98-httpbis-quic-00.pdf)

Mike Bishop presenting slides from QUIC WG + QUIC Tutorial.

Settings are unchangeable during the connection

EKR: for changing settings, server need to be able to kill the connection while
asking the client to restart.

Mike: harder for the server. Would use GOAWAY in HTTP/2.

EKR: difficult to differentiate close and don't reconnect vs. close and
reconnect.

Martin: Proposal was for a flag, I am done and go away

Mike: Aware of one case where settings are used midstream. However, that need
will disapear with ?

Martin: do have AltSvc to push someone somewhere else.

HPack replacements

Krasic's proposal: Add some additional to HPACK: can reference things in same
packets or known as received. More complicated, but enables code-reuse

Mike Bishop proposal (presentation from QUIC WG QPACK).

Design issue: how the selected solution for HPACK in QUIC will impact
connections?

Need to decide if frame and SETTINGS registries are common between HTTP/2 and
QUIC or not.

Mnot: I think that the overlap is at the HTTP semantic layer; frame types,
error codes are below that, and using the same registry is going to cause
confusion.

Roy: if there are fields values valid in H2 but not QUIC, then have different
registries.

Martin: semantic very similar, but with subtle differences.

Mike: HTTP over QUIC, big section on difference of H2 frames in QUIC.

Ben Kadak: If you are going to have the situation that you have similar things
but they are subtle different. Then using differnet code point avoids
missinterpretation of those subtle differences.

Stefan Eissing: mic: it's usedul to have extensions for one or the other
without taking care of both all the time

Martin: agree with that.

Julian Reschke: question reminds me of the common field registry for email and
http

EKR: don't want someone defining something for H2 and not being ported to QUIC.

Erik: 2 different WG. New feature would need 2 drafts? Or a single draft would
be sufficient?

Gabriel Montenegro: Referencing work around link layers. We had a mental model
applied to different use cases. We tried to use the same code point when
applicable, but in some cases there where was a requirement to use different
code points.

Jim Roskind: question of re-ordering. Reordering very infrequent thing. Chrome:
can show how much reordering occurs to you. It is really something that
happens. Some routers are multithreaded. Feedback 10 min - Feng Qian -- Cross
Layer Interaction of H2 Connection Management

Feng Qian

Presentation of results from research work.

Problem: a large transfer fills the TCP buffer and blocks a smaller file when
using HTTP/2.

Proposal: new frame for migrating a response to a new connection. Includes
provisions for ensuring correct ordering of response-bytes sent across the
different connections.

Roy: how does the server knows that two connections belong to the same client?

Feng: need some identifier for the client, that is added to the protocol.

Jim Roskind: how do you cause the second connection to arrive at the same
machine? Problem is with load balancing. In addition common that second
connection has other egress port and will be directed to different machine.

Feng: haven't really considered this.

Piotr Sikora: solution: lowering the TCP buffer, so that the frame can stay in
the HTTP server.

Feng: if too small, performance can be affected. Difficult to come with the
optimal value for the TCP buffer.

Kazuho: setting TCP buffer to exact size of RTT.

Feng: difficult to predict the network condition changes to set the right value.

Patrick: this is a hard problem, but not impossible. Survey to find what people
are doing in the real?

Feng: want to do some measurements on how servers are behaving. Most important
thing is the behaviour of the user.

Mike: both Linux and Windows expose info on how much data is needed by TCP to
maintain the link saturated. Would be interested to find what sites take
advantage of that.

Feng: did some experimentations and found all servers have this problem to
different degrees.

Jim Roskind: this is bufferbloat in the server. Should be addressed at the
server level, not at the HTTP level.

Benjamin Schwartz: TCP_NOT_SEND_LO_WHAT? option in TCP. It's recommended in
some documentation for implementating HTTP servers.

Piotr Sikora: ???

Kazuho: connection migration has benefits: could migrate one request to a cache.