Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtime Contract: Update Protocols and Ports section #4286

Closed
wants to merge 1 commit into from

Conversation

dgerd
Copy link

@dgerd dgerd commented Jun 6, 2019

  • Describe current behavior for HTTP1.1 and HTTP2
  • Provide links to relevant tests for keywords

Ref: #4035
Fixes: #4283

Release Note

Update Protocols and Ports section of the runtime contract.

* Describe current behavior for HTTP1.1 and HTTP2
* Provide links to relevant tests for keywords

Ref: knative#4035
Fixes: knative#4283
@googlebot googlebot added the cla: yes Indicates the PR's author has signed the CLA. label Jun 6, 2019
@knative-prow-robot knative-prow-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jun 6, 2019
@dgerd dgerd requested a review from evankanderson June 6, 2019 21:42
@knative-prow-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: dgerd
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: mdemirhan

If they are not already assigned, you can assign the PR to them by writing /assign @mdemirhan in a comment when ready.

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@dgerd dgerd mentioned this pull request Jun 6, 2019
@evankanderson
Copy link
Member

The automatic upgrade would be that the queue-proxy would include the Upgrade: h2c header. The client could continue to return HTTP1/.1 results.

https://tools.ietf.org/html/rfc7540#section-3.2

   A server that does not support HTTP/2 can respond to the request as
   though the Upgrade header field were absent:

If the container wants to support HTTP/2, they can respond with a 101 Switching Protocols and then send the response by HTTP/2 if it wants to.

   A server that supports HTTP/2 accepts the upgrade with a 101
   (Switching Protocols) response.  After the empty line that terminates
   the 101 response, the server can begin sending HTTP/2 frames.  These
   frames MUST include a response to the request that initiated the
   upgrade.

We might be able to handle this in the queue-proxy, rather than needing to do it in Envoy (e.g. always HTTP/2 to the queue-proxy and then convert it there).

@markusthoemmes
Copy link
Contributor

@dgerd this seems to need a rebase.

/assign @evankanderson

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes Indicates the PR's author has signed the CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support GRPC and HTTP2 without explicit port labeling
5 participants