Enum hyper::header::IfRange [] [src]

pub enum IfRange {
    EntityTag(EntityTag),
    Date(HttpDate),
}

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

Examples

use hyper::header::{Headers, IfRange, EntityTag};

let mut headers = Headers::new();
headers.set(IfRange::EntityTag(EntityTag::new(false, "xyzzy".to_owned())));
// extern crate time;

use hyper::header::{Headers, IfRange, HttpDate};
use time::{self, Duration};

let mut headers = Headers::new();
headers.set(IfRange::Date(HttpDate(time::now() - Duration::days(1))));

Variants

EntityTag(EntityTag)

The entity-tag the client has of the resource

Date(HttpDate)

The date when the client retrieved the resource