The `hyper::Server` is now a proper higher-level API for running HTTP servers. There is a related `hyper::server::Builder` type, to construct a `Server`. All other types (`Http`, `Serve`, etc) were moved into the "lower-level" `hyper::server::conn` module. The `Server` is a `Future` representing a listening HTTP server. Options needed to build one are set on the `Builder`. As `Server` is just a `Future`, it no longer owns a thread-blocking executor, and can thus be run next to other servers, clients, or what-have-you. Closes #1322 Closes #1263 BREAKING CHANGE: The `Server` is no longer created from `Http::bind`, nor is it `run`. It is a `Future` that must be polled by an `Executor`. The `hyper::server::Http` type has move to `hyper::server::conn::Http`.
148 lines
2.5 KiB
Rust
148 lines
2.5 KiB
Rust
#![deny(warnings)]
|
|
#[macro_use]
|
|
mod support;
|
|
use self::support::*;
|
|
|
|
t! {
|
|
get_1,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_implicit_path,
|
|
client:
|
|
request:
|
|
uri: "",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_body,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
"content-length" => 11,
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_body_chunked,
|
|
client:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
status: 200,
|
|
headers: {
|
|
// h2 doesn't actually receive the transfer-encoding header
|
|
},
|
|
body: "hello world",
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/",
|
|
;
|
|
response:
|
|
headers: {
|
|
// http2 should strip this header
|
|
"transfer-encoding" => "chunked",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
}
|
|
|
|
t! {
|
|
post_chunked,
|
|
client:
|
|
request:
|
|
method: "POST",
|
|
uri: "/post_chunked",
|
|
headers: {
|
|
// http2 should strip this header
|
|
"transfer-encoding" => "chunked",
|
|
},
|
|
body: "hello world",
|
|
;
|
|
response:
|
|
;
|
|
server:
|
|
request:
|
|
method: "POST",
|
|
uri: "/post_chunked",
|
|
body: "hello world",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_2,
|
|
client:
|
|
request:
|
|
uri: "/1",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
request:
|
|
uri: "/2",
|
|
;
|
|
response:
|
|
status: 200,
|
|
;
|
|
server:
|
|
request:
|
|
uri: "/1",
|
|
;
|
|
response:
|
|
;
|
|
request:
|
|
uri: "/2",
|
|
;
|
|
response:
|
|
;
|
|
}
|
|
|
|
t! {
|
|
get_parallel_http2,
|
|
parallel: 0..10
|
|
}
|
|
|