Update IN-PROCESS-PROXY.md

This commit is contained in:
Wenbo Zhu 2020-04-23 14:24:46 -07:00 committed by GitHub
parent e908cd0f60
commit acdd180c7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 3 deletions

View File

@ -17,13 +17,17 @@ intermediaries to negotiate the HTTP version, which is mostly transparent to the
For most languages, the gRPC-Web module will handle the gRPC-Web request, do the translation, and then proxy the request using a gPRP client
to the gRPC server via a local socket. The gRPC-Web support is totally transparent to the gRPC server.
For some languages, such as Swift, if the gRPC server implementation uses the same HTTP stack as gRPC-Web, then gRPC-Web may be supported
directly as part of the gRPC server implementation. The added complexity to the gRPC iteslf is still a concern.
For some languages, such as Swift, .NET, if the gRPC server implementation uses the same HTTP stack that the gRPC-Web module uses, then gRPC-Web may be supported
directly as part of the gRPC server implementation. The added complexity to the gRPC implementation iteslf is still a concern.
# HTTP port
We expect that gRPC-Web requests are handled on a separate port. If the HTTP stack supports both HTTP/2 and HTTP/1.1, port sharing could be supported.
However, since CORS is a mandatory feature for gRPC-Web proxies, port sharing is optional for in-process proxies.
However, since CORS is a mandatory feature for gRPC-Web proxies, port sharing should be optional for in-process proxies.
# Core features
The gRPC-Web module should implement only the [core gRPC-Web features](https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md) and leave to the HTTP/Web stack provided by the language platform to handle [Web-framework-level features](https://github.com/grpc/grpc-web/blob/master/BROWSER-FEATURES.md) such as XSRF, CORS policies. Some of those features may be incompatible with what Envoy supports.