docs(headers): clarify TransferEncoding xor ContentLength
Update the docs for `Content-Length` and `Transfer-Encoding` to mention that they are mutually exclusive, and that setting one will unset the other, in accordance with RFC7230. Also expand the docs for `Request::set_body` to say that chunked encoding is used by default, and mention how to disable this feature.
This commit is contained in:
@@ -14,6 +14,13 @@ use header::{Header, Raw, parsing};
|
|||||||
/// body, the Content-Length indicates the size of the selected
|
/// body, the Content-Length indicates the size of the selected
|
||||||
/// representation.
|
/// representation.
|
||||||
///
|
///
|
||||||
|
/// Note that setting this header will *remove* any previously set
|
||||||
|
/// `Transfer-Encoding` header, in accordance with
|
||||||
|
/// [RFC7230](http://tools.ietf.org/html/rfc7230#section-3.3.2):
|
||||||
|
///
|
||||||
|
/// > A sender MUST NOT send a Content-Length header field in any message
|
||||||
|
/// that > contains a Transfer-Encoding header field.
|
||||||
|
///
|
||||||
/// # ABNF
|
/// # ABNF
|
||||||
/// ```plain
|
/// ```plain
|
||||||
/// Content-Length = 1*DIGIT
|
/// Content-Length = 1*DIGIT
|
||||||
|
|||||||
@@ -8,6 +8,13 @@ header! {
|
|||||||
/// corresponding to the sequence of transfer codings that have been (or
|
/// corresponding to the sequence of transfer codings that have been (or
|
||||||
/// will be) applied to the payload body in order to form the message
|
/// will be) applied to the payload body in order to form the message
|
||||||
/// body.
|
/// body.
|
||||||
|
///
|
||||||
|
/// Note that setting this header will *remove* any previously set
|
||||||
|
/// `Content-Length` header, in accordance with
|
||||||
|
/// [RFC7230](http://tools.ietf.org/html/rfc7230#section-3.3.2):
|
||||||
|
///
|
||||||
|
/// > A sender MUST NOT send a Content-Length header field in any message
|
||||||
|
/// > that contains a Transfer-Encoding header field.
|
||||||
///
|
///
|
||||||
/// # ABNF
|
/// # ABNF
|
||||||
/// ```plain
|
/// ```plain
|
||||||
|
|||||||
@@ -91,6 +91,10 @@ impl<B> Request<B> {
|
|||||||
pub fn set_version(&mut self, version: HttpVersion) { self.version = version; }
|
pub fn set_version(&mut self, version: HttpVersion) { self.version = version; }
|
||||||
|
|
||||||
/// Set the body of the request.
|
/// Set the body of the request.
|
||||||
|
///
|
||||||
|
/// By default, the body will be sent using `Transfer-Encoding: chunked`. To
|
||||||
|
/// override this behavior, manually set a [`ContentLength`] header with the
|
||||||
|
/// length of `body`.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn set_body<T: Into<B>>(&mut self, body: T) { self.body = Some(body.into()); }
|
pub fn set_body<T: Into<B>>(&mut self, body: T) { self.body = Some(body.into()); }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user