Crate uhttp_request [−] [src]
This crate provides barebone, slice-based parsers for extracting request line components and header fields from HTTP requests.
In general, components are extracted along defined delimiters, but further processing and syntax validation is left to higher layers.
Example
use uhttp_request::{RequestLine, Headers}; let req = b"GET /abc?k=v HTTP/1.1\r\nHost: example.com\r\nAccept: text/*\r\n\r\nbody"; let (reqline, rest) = RequestLine::new(req).unwrap(); assert_eq!(reqline.method, "GET"); assert_eq!(reqline.target, "/abc?k=v"); assert_eq!(reqline.version, "HTTP/1.1"); let mut headers = Headers::new(rest); let h = headers.next().unwrap().unwrap(); assert_eq!(h.name, "Host"); assert_eq!(h.val, b" example.com"); let h = headers.next().unwrap().unwrap(); assert_eq!(h.name, "Accept"); assert_eq!(h.val, b" text/*"); assert!(headers.next().is_none()); let rest = headers.into_inner(); assert_eq!(rest, b"body");
Structs
Header |
An HTTP request header field [RFC7230§3.2]. |
Headers |
Iterator over all header fields in a request. |
RequestLine |
A "Request-Line" [RFC7230§3.1.1] that begins an HTTP request. |
Enums
Error |
Errors that may occur when processing request header. |
Type Definitions
Result |
Specialized result using custom |