mirror of https://github.com/fafhrd91/actix-web
Implements RFC 7230 Section 3.3.2 which allows servers to send Content-Length headers in HEAD responses. This enables support for APIs like AWS S3 HeadObject that require Content-Length headers even with empty response bodies. Previously, manually set Content-Length headers on empty body responses were being overridden by automatic "content-length: 0" headers. Now the encoder checks for existing Content-Length headers before adding automatic ones. |
||
---|---|---|
.. | ||
benches | ||
examples | ||
src | ||
tests | ||
CHANGES.md | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
README.md
actix-http
HTTP types and services for the Actix ecosystem.
Examples
use std::{env, io};
use actix_http::{HttpService, Response};
use actix_server::Server;
use futures_util::future;
use http::header::HeaderValue;
use tracing::info;
#[actix_rt::main]
async fn main() -> io::Result<()> {
env::set_var("RUST_LOG", "hello_world=info");
env_logger::init();
Server::build()
.bind("hello-world", "127.0.0.1:8080", || {
HttpService::build()
.client_timeout(1000)
.client_disconnect(1000)
.finish(|_req| {
info!("{:?}", _req);
let mut res = Response::Ok();
res.header("x-head", HeaderValue::from_static("dummy value!"));
future::ok::<_, ()>(res.body("Hello world!"))
})
.tcp()
})?
.run()
.await
}