pub enum IfRange {
EntityTag(EntityTag),
Date(HttpDate),
}
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 hyperx::header::{IfRange, EntityTag, TypedHeaders};
let mut headers = http::HeaderMap::new();
headers.encode(&IfRange::EntityTag(EntityTag::new(false, "xyzzy".to_owned())));
use hyperx::header::{IfRange, TypedHeaders};
use std::time::{SystemTime, Duration};
let mut headers = http::HeaderMap::new();
let fetched = SystemTime::now() - Duration::from_secs(60 * 60 * 24);
headers.encode(&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§
Source§impl Header for IfRange
impl Header for IfRange
Source§impl StandardHeader for IfRange
impl StandardHeader for IfRange
Source§fn http_header_name() -> HeaderName
fn http_header_name() -> HeaderName
HeaderName
from the http crate for this header.