code: def _handle_request(self, transaction, new_resource):
          
          client = HelperClient(transaction.resource.remote_server)
          request = Request()
          request.options = copy.deepcopy(transaction.request.options)
          del request.block2
          del request.block1
          del request.uri_path
          del request.proxy_uri
          del request.proxy_schema
          # TODO handle observing
          del request.observe
          # request.observe = transaction.request.observe
  
          request.uri_path = "/".join(transaction.request.uri_path.split("/")[1:])
          request.destination = transaction.resource.remote_server
          request.payload = transaction.request.payload
          request.code = transaction.request.code
          response = client.send_request(request)
          client.stop()
          transaction.response.payload = response.payload
          transaction.response.code = response.code
          transaction.response.options = response.options
          if response.code == defines.Codes.CREATED.number:
              lp = transaction.response.location_path
              del transaction.response.location_path
              transaction.response.location_path = transaction.request.uri_path.split("/")[0] + "/" + lp
              # TODO handle observing
              if new_resource:
                  resource = RemoteResource('server', transaction.resource.remote_server, lp, coap_server=self,
                                            visible=True,
                                            observable=False,
                                            allow_children=True)
                  self._server.add_resource(transaction.response.location_path, resource)
          if response.code == defines.Codes.DELETED.number:
              del self._server.root["/" + transaction.request.uri_path]
          return transaction
docs: Forward requests. Used by reverse proxies to also create new virtual resources on the proxy 
          in case of created resources
          
          :type new_resource: bool
          :type transaction: Transaction
          :param transaction: the transaction that owns the request
          :rtype : Transaction
          :param new_resource: if the request will generate a new resource 
          :return: the edited transaction