code: def _apply_xheaders(self, headers: httputil.HTTPHeaders) -> None:
          
          # Squid uses X-Forwarded-For, others use X-Real-Ip
          ip = headers.get("X-Forwarded-For", self.remote_ip)
          # Skip trusted downstream hosts in X-Forwarded-For list
          for ip in (cand.strip() for cand in reversed(ip.split(","))):
              if ip not in self.trusted_downstream:
                  break
          ip = headers.get("X-Real-Ip", ip)
          if netutil.is_valid_ip(ip):
              self.remote_ip = ip
          # AWS uses X-Forwarded-Proto
          proto_header = headers.get(
              "X-Scheme", headers.get("X-Forwarded-Proto", self.protocol)
          )
          if proto_header:
              # use only the last proto entry if there is more than one
              # TODO: support trusting mutiple layers of proxied protocol
              proto_header = proto_header.split(",")[-1].strip()
          if proto_header in ("http", "https"):
              self.protocol = proto_header
docs: Rewrite the ``remote_ip`` and ``protocol`` fields.