class_docstr: Implements the HTTP/1.x protocol.
  
  This class can be on its own for clients, or via `HTTP1ServerConnection`
  for servers.
class_docstr_tok: ["Implements","the","HTTP\/1.x","protocol",".","This","class","can","be","on","its","own","for","clients",",","or","via","`","HTTP1ServerConnection","`","for","servers","."]
code: def _can_keep_alive(
      self,
      start_line: httputil.RequestStartLine,
      headers: httputil.HTTPHeaders,
  ) -> bool:
      if self.params.no_keep_alive:
          return False
      connection_header = headers.get("Connection")
      if connection_header is not None:
          connection_header = connection_header.lower()
      if start_line.version == "HTTP/1.1":
          return connection_header != "close"
      elif (
          "Content-Length" in headers
          or headers.get("Transfer-Encoding", "").lower() == "chunked"
          or getattr(start_line, "method", None) in ("HEAD", "GET")
      ):
          # start_line may be a request or response start line; only
          # the former has a method attribute.
          return connection_header == "keep-alive"
      return False
  
imports: import asyncio
  import logging
  import re
  import types
  from tornado.concurrent import Future, future_add_done_callback, future_set_result_unless_cancelled
  from tornado.escape import native_str, utf8
  from tornado import gen
  from tornado import httputil
  from tornado import iostream
  from tornado.log import gen_log, app_log
  from tornado.util import GzipDecompressor
  from typing import cast, Optional, Type, Awaitable, Callable, Union, Tuple
label_desc: Use image node_id 15 for calling the HTTP1Connection obj's underlying member method code with example usage: obj._can_keep_alive(start_line, headers) and returns: False, False, unknown, unknown