Expand description

HTTP Server

A Server is created to listen on a port, parse HTTP requests, and hand them off to a Service.

There are two levels of APIs provide for constructing HTTP servers:

  • The higher-level Server type.
  • The lower-level conn module.

Server

The Server is main way to start listening for HTTP requests. It wraps a listener with a MakeService, and then should be executed to start serving requests.

Server accepts connections in both HTTP1 and HTTP2 by default.

Example

extern crate hyper;

use hyper::{Body, Response, Server};
use hyper::service::service_fn_ok;

fn main() {
    // Construct our SocketAddr to listen on...
    let addr = ([127, 0, 0, 1], 3000).into();

    // And a MakeService to handle each connection...
    let make_service = || {
        service_fn_ok(|_req| {
            Response::new(Body::from("Hello World"))
        })
    };

    // Then bind and serve...
    let server = Server::bind(&addr)
        .serve(make_service);

    // Finally, spawn `server` onto an Executor...
    hyper::rt::run(server.map_err(|e| {
        eprintln!("server error: {}", e);
    }));
}

Modules

Lower-level Server connection API.

Structs

A builder for a Server.

A listening HTTP server that accepts connections in both HTTP1 and HTTP2 by default.