pub struct IfRange(IfRange_);
Expand description
If-Range
header, defined in RFC7233
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 headers::IfRange;
use std::time::{SystemTime, Duration};
let fetched = SystemTime::now() - Duration::from_secs(60 * 60 * 24);
let if_range = IfRange::date(fetched);
Tuple Fields§
§0: IfRange_
Implementations§
source§impl IfRange
impl IfRange
sourcepub fn date(time: SystemTime) -> IfRange
pub fn date(time: SystemTime) -> IfRange
Create an IfRange
header with a date value.
sourcepub fn is_modified(
&self,
etag: Option<&ETag>,
last_modified: Option<&LastModified>,
) -> bool
pub fn is_modified( &self, etag: Option<&ETag>, last_modified: Option<&LastModified>, ) -> bool
Checks if the resource has been modified, or if the range request can be served.