'Connect to a backend node and send the headers.
:returns: Putter instance
:raises ConnectionTimeout: if initial connection timed out
:raises ResponseTimeout: if header retrieval timed out
:raises InsufficientStorage: on 507 response from node
:raises PutterConnectError: on non-507 server error response from node'

@classmethod
def connect(cls, node, part, path, headers, conn_timeout, node_timeout, logger=None, chunked=False, **kwargs):

    (conn, expect_resp, final_resp, connect_duration) = cls._make_connection(node, part, path, headers, conn_timeout, node_timeout)
    return cls(conn, node, final_resp, path, connect_duration, logger, chunked=chunked)
