docs: async def send_http_response(writer,
                               http_code: int,
                               headers: List[Tuple[str, str]],
                               content: bytes,
                               http_status: str= None
                               ) -> None:
      """
      generate http response payload and send to writer
      """
      # generate response payload
      if not http_status:
          http_status = STATUS_CODES.get(http_code, 'Unknown')
  
      response: bytes = f'HTTP/1.1 {http_code} {http_status}\r\n'.encode()
      for k, v in headers:
          response += f'{k}: {v}\r\n'.encode()
      response += b'\r\n'
      response += content
  
      # send payload
      writer.write(response)
      await writer.drain()