Lines Matching +full:whatwg +full:- +full:encoding
3 gRPC-Web provides a JS client library that supports the same API
4 as gRPC-Node to access a gRPC service. Due to browser limitation,
6 [native gRPC protocol](PROTOCOL-HTTP2.md).
13 [native gRPC protocol](PROTOCOL-HTTP2.md).
17 For the gRPC-Web protocol, we have decided on the following design goals:
22 * support text streams (e.g. base64) in order to provide cross-browser
23 support (e.g. IE-10)
26 intend to keep the protocol as an internal detail to gRPC-Web.
30 web-specific features such as CORS, XSRF
31 * become optional (in 1-2 years) when browsers are able to speak the native
32 gRPC protocol via the new [whatwg streams API](https://github.com/whatwg/streams)
34 # Protocol differences vs [gRPC over HTTP2](PROTOCOL-HTTP2.md)
36 Content-Type
38 1. application/grpc-web
39 * e.g. application/grpc-web+[proto, json, thrift]
41 … default is "+proto" when the message format is missing in Content-Type (as "application/grpc-web")
42 2. application/grpc-web-text
43 * text-encoded streams of “application/grpc-web”
44 * e.g. application/grpc-web-text+[proto, thrift]
46 ---
51 2. header names may be upper- or mixed-case over HTTP/1.1, but trailers encoded in
52 the last length-prefixed message must always use lower-case names.
55 ---
57 HTTP/2 related behavior (specified in [gRPC over HTTP2](PROTOCOL-HTTP2.md))
59 1. stream-id is not supported or used
60 2. go-away is not supported or used
62 ---
64 Message framing (vs. [http2-transport-mapping](PROTOCOL-HTTP2.md#http2-transport-mapping))
67 …* Key-value pairs encoded as a HTTP/1 headers block (without the terminating newline), per https:/…
81 4. Trailers-only responses: no change to the gRPC protocol spec.
85 ---
89 * Do NOT use User-Agent header (which is to be set by browsers, by default)
90 * Use X-User-Agent: grpc-web-javascript/0.1 (follow the same format as specified in [gRPC over HTTP…
92 ---
94 Text-encoded (response) streams
99 * Accept: application/grpc-web-text
100 2. The default text encoding is base64
101 * Note that “Content-Transfer-Encoding: base64” should not be used.
102 Due to in-stream base64 padding when delimiting messages, the entire
103 response body is not necessarily a valid base64-encoded entity
104 * While the server runtime will always base64-encode and flush gRPC messages
106 …happens at the boundary of message frames. That is, the implementation may send base64-encoded "ch…
117 ---
119 Keep-alive
122 * Will not support send-beacon (GET)
124 ---
126 Bidi-streaming, with flow-control
128 * Pending on [whatwg fetch/streams](https://github.com/whatwg/fetch) to be
130 * gRPC-Web client will support the native gRPC protocol with modern browsers
132 ---
138 ---
140 Browser-specific features
142 …he [spec doc](https://github.com/grpc/grpc-web/blob/master/doc/browser-features.md) published in t…