@Override
    public boolean canSendRequest() {
        assert responseDecoder != null;
        if (!channel.isActive()) {
            return false;
        }

        if (responseDecoder instanceof Http2ResponseDecoder) {
            // New requests that have already acquired this session can be sent over this session before a
            // GOAWAY is sent or received.
            final Http2GoAwayHandler goAwayHandler = ((Http2ResponseDecoder) responseDecoder).goAwayHandler();
            return !goAwayHandler.sentGoAway() && !goAwayHandler.receivedGoAway();
        } else {
            // Don't allow to send a request if a connection is closed or about to be closed for HTTP/1.
            return isAcquirable(responseDecoder.keepAliveHandler());
        }
    }
{@code true} if an {@link Http2Settings} has been received from the remote endpoint.
core/src/main/java/com/linecorp/armeria/client/HttpSessionHandler.java