docs: protected boolean shouldCloseConnection(HttpConnection conn) {
          // Connection must be closed due to an abnormal circumstance 
          if (isConnectionCloseForced()) {
              LOG.debug("Should force-close connection.");
              return true;
          }
  
          Header connectionHeader = null;
          // In case being connected via a proxy server
          if (!conn.isTransparent()) {
              // Check for 'proxy-connection' directive
              connectionHeader = responseHeaders.getFirstHeader("proxy-connection");
          }
          // In all cases Check for 'connection' directive
          // some non-complaint proxy servers send it instread of
          // expected 'proxy-connection' directive
          if (connectionHeader == null) {
              connectionHeader = responseHeaders.getFirstHeader("connection");
          }
          // In case the response does not contain any explict connection
          // directives, check whether the request does
          if (connectionHeader == null) {
              connectionHeader = requestHeaders.getFirstHeader("connection");
          }
          if (connectionHeader != null) {
              if (connectionHeader.getValue().equalsIgnoreCase("close")) {
                  if (LOG.isDebugEnabled()) {
                      LOG.debug("Should close connection in response to directive: " 
                          + connectionHeader.getValue());
                  }
                  return true;
              } else if (connectionHeader.getValue().equalsIgnoreCase("keep-alive")) {
                  if (LOG.isDebugEnabled()) {
                      LOG.debug("Should NOT close connection in response to directive: " 
                          + connectionHeader.getValue());
                  }
                  return false;
              } else {
                  if (LOG.isDebugEnabled()) {
                      LOG.debug("Unknown directive: " + connectionHeader.toExternalForm());
                  }
              }
          }
          LOG.debug("Resorting to protocol version default close connection policy");
          // missing or invalid connection header, do the default
          if (this.effectiveVersion.greaterEquals(HttpVersion.HTTP_1_1)) {
              if (LOG.isDebugEnabled()) {
                  LOG.debug("Should NOT close connection, using " + this.effectiveVersion.toString());
              }
          } else {
              if (LOG.isDebugEnabled()) {
                  LOG.debug("Should close connection, using " + this.effectiveVersion.toString());
              }
          }
          return this.effectiveVersion.lessEquals(HttpVersion.HTTP_1_0);
      }