Struct hyper::header::Upgrade
[−]
[src]
pub struct Upgrade(pub Vec<Protocol>);
Upgrade
header, defined in RFC7230
The Upgrade
header field is intended to provide a simple mechanism
for transitioning from HTTP/1.1 to some other protocol on the same
connection. A client MAY send a list of protocols in the Upgrade
header field of a request to invite the server to switch to one or
more of those protocols, in order of descending preference, before
sending the final response. A server MAY ignore a received Upgrade
header field if it wishes to continue using the current protocol on
that connection. Upgrade cannot be used to insist on a protocol
change.
ABNF
Upgrade = 1#protocol
protocol = protocol-name ["/" protocol-version]
protocol-name = token
protocol-version = token
Example values
HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Examples
use hyper::header::{Headers, Upgrade, Protocol, ProtocolName}; let mut headers = Headers::new(); headers.set(Upgrade(vec![Protocol::new(ProtocolName::WebSocket, None)]));
use hyper::header::{Headers, Upgrade, Protocol, ProtocolName}; let mut headers = Headers::new(); headers.set( Upgrade(vec![ Protocol::new(ProtocolName::Http, Some("2.0".to_owned())), Protocol::new(ProtocolName::Unregistered("SHTTP".to_owned()), Some("1.3".to_owned())), Protocol::new(ProtocolName::Unregistered("IRC".to_owned()), Some("6.9".to_owned())), ]) );