mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.4 KiB
31 lines
1.4 KiB
9 years ago
|
# HTTP to gRPC Status Code Mapping
|
||
|
|
||
|
Since intermediaries are a common part of HTTP infrastructure some responses to
|
||
|
gRPC requests may be received that do not include the grpc-status header. In
|
||
|
some cases mapping error codes from an intermediary allows the gRPC client to
|
||
|
behave more appropriately to the error situation without overloading the
|
||
|
semantics of either error code.
|
||
|
|
||
|
This table is to be used _only_ for clients that received a response that did
|
||
|
not include grpc-status. If grpc-status was provided, it _must_ be used. Servers
|
||
|
_must not_ use this table to determine an HTTP status code to use; the mappings
|
||
|
are neither symmetric nor 1-to-1.
|
||
|
|
||
|
| HTTP Status Code | gRPC Status Code |
|
||
|
|----------------------------|--------------------|
|
||
|
| 400 Bad Request | INTERNAL |
|
||
|
| 401 Unauthorized | UNAUTHENTICATED |
|
||
|
| 403 Forbidden | PERMISSION\_DENIED |
|
||
|
| 404 Not Found | UNIMPLEMENTED |
|
||
|
| 429 Too Many Requests | UNAVAILABLE |
|
||
|
| 502 Bad Gateway | UNAVAILABLE |
|
||
|
| 503 Service Unavailable | UNAVAILABLE |
|
||
|
| 504 Gateway Timeout | UNAVAILABLE |
|
||
|
| _All other codes_ | UNKNOWN |
|
||
|
|
||
|
Technically, 1xx should have the entire header skipped and a subsequent header
|
||
|
be read. See RFC 7540 §8.1.
|
||
|
|
||
|
200 is UNKNOWN because there should be a grpc-status in case of truly OK
|
||
|
response.
|