Expand description
If-Range
header, defined
in RFC 7233 §3.2
If a client has a partial copy of a representation and wishes to have an up-to-date copy of the entire representation, it could use the Range header field with a conditional GET (using either or both of If-Unmodified-Since and If-Match.) However, if the precondition fails because the representation has been modified, the client would then have to make a second request to obtain the entire current representation.
The If-Range
header field allows a client to "short-circuit" the
second request. Informally, its meaning is as follows: if the
representation is unchanged, send me the part(s) that I am requesting
in Range; otherwise, send me the entire representation.
ABNF
If-Range = entity-tag / HTTP-date
Example Values
Sat, 29 Oct 1994 19:43:31 GMT
\"xyzzy\"
Examples
use actix_web::HttpResponse;
use actix_web::http::header::{EntityTag, IfRange};
let mut builder = HttpResponse::Ok();
builder.insert_header(
IfRange::EntityTag(
EntityTag::new(false, "abc".to_owned())
)
);
use std::time::{Duration, SystemTime};
use actix_web::{http::header::IfRange, HttpResponse};
let mut builder = HttpResponse::Ok();
let fetched = SystemTime::now() - Duration::from_secs(60 * 60 * 24);
builder.insert_header(
IfRange::Date(fetched.into())
);
Variants
EntityTag(EntityTag)
The entity-tag the client has of the resource.
Date(HttpDate)
The date when the client retrieved the resource.
Trait Implementations
sourceimpl Header for IfRange
impl Header for IfRange
sourcefn name() -> HeaderName
fn name() -> HeaderName
Returns the name of the header field
sourcefn parse<T>(msg: &T) -> Result<Self, ParseError> where
T: HttpMessage,
fn parse<T>(msg: &T) -> Result<Self, ParseError> where
T: HttpMessage,
Parse a header
sourceimpl TryIntoHeaderValue for IfRange
impl TryIntoHeaderValue for IfRange
type Error = InvalidHeaderValue
type Error = InvalidHeaderValue
The type returned in the event of a conversion error.
sourcefn try_into_value(self) -> Result<HeaderValue, Self::Error>
fn try_into_value(self) -> Result<HeaderValue, Self::Error>
Try to convert value to a HeaderValue.
impl StructuralPartialEq for IfRange
Auto Trait Implementations
impl RefUnwindSafe for IfRange
impl Send for IfRange
impl Sync for IfRange
impl Unpin for IfRange
impl UnwindSafe for IfRange
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> TryIntoHeaderPair for T where
T: Header,
impl<T> TryIntoHeaderPair for T where
T: Header,
type Error = <T as TryIntoHeaderValue>::Error
fn try_into_pair(
self
) -> Result<(HeaderName, HeaderValue), <T as TryIntoHeaderPair>::Error>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more