Struct XForwardedProto
pub struct XForwardedProto(/* private fields */);http and std only.Expand description
The X-Forwarded-Proto (XFP) header is a de-facto standard header for identifying the protocol (HTTP or HTTPS) that a client used to connect to your proxy or load balancer.
Your server access logs contain the protocol used between the server and the load balancer, but not the protocol used between the client and the load balancer. To determine the protocol used between the client and the load balancer, the X-Forwarded-Proto request header can be used.
It is recommended to use the Forwarded header instead if you can.
More info can be found at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto.
§Syntax
X-Forwarded-Proto: <protocol>Proxies that append keep one protocol per hop, on one line or several, nearest last: every
one is kept, and protocol reads the nearest, as the default
ForwardedSelectionPolicy does.
§Example values
httpshttp
Implementations§
§impl XForwardedProto
impl XForwardedProto
pub fn protocol(&self) -> &ForwardedProtocol
pub fn protocol(&self) -> &ForwardedProtocol
The nearest hop’s ForwardedProtocol.
pub fn protocols(&self) -> &NonEmptyVec<ForwardedProtocol>
pub fn protocols(&self) -> &NonEmptyVec<ForwardedProtocol>
Every hop’s protocol, nearest last.
pub fn into_protocols(self) -> NonEmptyVec<ForwardedProtocol>
pub fn into_protocols(self) -> NonEmptyVec<ForwardedProtocol>
Consume this header into every hop’s protocol, nearest last.
Trait Implementations§
§impl Clone for XForwardedProto
impl Clone for XForwardedProto
§fn clone(&self) -> XForwardedProto
fn clone(&self) -> XForwardedProto
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for XForwardedProto
impl Debug for XForwardedProto
impl Eq for XForwardedProto
§impl ForwardHeader for XForwardedProto
impl ForwardHeader for XForwardedProto
§fn try_from_forwarded<'a, I>(input: I) -> Option<XForwardedProto>where
I: IntoIterator<Item = &'a ForwardedElement>,
fn try_from_forwarded<'a, I>(input: I) -> Option<XForwardedProto>where
I: IntoIterator<Item = &'a ForwardedElement>,
ForwardedElement into the header. Read more§impl HeaderDecode for XForwardedProto
impl HeaderDecode for XForwardedProto
§fn decode<'i, I>(values: &mut I) -> Result<XForwardedProto, Error>where
I: Iterator<Item = &'i HeaderValue>,
fn decode<'i, I>(values: &mut I) -> Result<XForwardedProto, Error>where
I: Iterator<Item = &'i HeaderValue>,
HeaderValues.§impl HeaderEncode for XForwardedProto
impl HeaderEncode for XForwardedProto
§fn encode<E>(&self, values: &mut E)where
E: Extend<HeaderValue>,
fn encode<E>(&self, values: &mut E)where
E: Extend<HeaderValue>,
HeaderValue, and add it to a container
which has HeaderValue type as each element. Read more§fn encode_to_value(&self) -> Option<HeaderValue>
fn encode_to_value(&self) -> Option<HeaderValue>
HeaderValue. Read more§impl IntoIterator for XForwardedProto
impl IntoIterator for XForwardedProto
§type Item = ForwardedElement
type Item = ForwardedElement
§fn into_iter(self) -> <XForwardedProto as IntoIterator>::IntoIter
fn into_iter(self) -> <XForwardedProto as IntoIterator>::IntoIter
§impl PartialEq for XForwardedProto
impl PartialEq for XForwardedProto
impl StructuralPartialEq for XForwardedProto
§impl TypedHeader for XForwardedProto
impl TypedHeader for XForwardedProto
§fn name() -> &'static HeaderName
fn name() -> &'static HeaderName
Auto Trait Implementations§
impl Freeze for XForwardedProto
impl RefUnwindSafe for XForwardedProto
impl Send for XForwardedProto
impl Sync for XForwardedProto
impl Unpin for XForwardedProto
impl UnsafeUnpin for XForwardedProto
impl UnwindSafe for XForwardedProto
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more