Today I was reminded that HTTP/2 servers can deny communication quite unceremoniously by sending back a #GOAWAY signal. What do you do to resume communication? Simply retry the request? Or also refresh the #HTTP client that makes the requests?
#NGINX and other #HTTP servers will throw a fit if a client sends 1000 requests, and literally tell the client to go away. In the #java programming language, the #HttpClient built into the #jdk throws an IOException, without any further specialization. The #Jetty client for HTTP/2 does throw a specific error and also indicates the lost frame ID, for easy resumes. I guess we could switch clients, or I could find a nice way to catch this error and resume communications. Any suggestions?
@feld I will take your word for that. But we experience GOAWAY signals after 1000 requests, and we are not the only one, according to StackOverflow.com. We didn't implement the server, so we can't vouch for how or why it does anything.
> can't tell how much of the GOAWAY is signaled by them or by the destination server.
If CloudFlare is in the middle as a proxy it's handling both ends as completely separate HTTP2 sessions. I do not think a GOAWAY from the origin will be passed through to the client. An origin GOAWAY would be received by the reverse proxy at CloudFlare and then it would restart the HTTP2 session and resume sending requests it has queued/buffered
@feld That server may or may not be hosted by #cloudflare ... And we can't tell how much of the GOAWAY is signaled by them or by the destination server.