Lines Matching +full:base64 +full:- +full:js
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
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
105 atomically the client library should not assume base64 padding always
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
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…