code: def receive_request_reverse(self, transaction):
          
          path = str("/" + transaction.request.uri_path)
          transaction.response = Response()
          transaction.response.destination = transaction.request.source
          transaction.response.token = transaction.request.token
          if path == defines.DISCOVERY_URL:
              transaction = self._server.resourceLayer.discover(transaction)
          else:
              new = False
              if transaction.request.code == defines.Codes.POST.number:
                  new_paths = self._server.root.with_prefix(path)
                  new_path = "/"
                  for tmp in new_paths:
                      if len(tmp) > len(new_path):
                          new_path = tmp
                  if path != new_path:
                      new = True
                  path = new_path
              try:
                  resource = self._server.root[path]
              except KeyError:
                  resource = None
              if resource is None or path == '/':
                  # Not Found
                  transaction.response.code = defines.Codes.NOT_FOUND.number
              else:
                  transaction.resource = resource
                  transaction = self._handle_request(transaction, new)
          return transaction
docs: Setup the transaction for forwarding purposes on Reverse Proxies.
           
          :type transaction: Transaction
          :param transaction: the transaction that owns the request
          :rtype : Transaction
          :return: the edited transaction