Fragile defines a strict subset of HTTP/1.1 request syntax.
Only well-formed and unambiguous messages are accepted.
All other input is rejected.
This specification intentionally restricts the accepted grammar
to eliminate ambiguity and reduce implementation complexity.
Fragile focuses on syntax only.
Semantics and higher-level behavior are out of scope.
The key words "MUST", "MUST NOT", and "SHOULD" are to be interpreted
as requirements enforced by this implementation.
These requirements apply only within the scope of Fragile.
Fragile defines a minimal grammar derived from HTTP/1.1.
request-line = method SP request-target SP protocol CRLF
method = "GET" / "HEAD" / "POST" / "PUT" / "DELETE" / "CONNECT" / "OPTIONS" / "TRACE"
request-target = "/" *( %x21-7E )
protocol = "HTTP/1.1"
header-field = field-name ":" SP field-value
field-name = 1*( %x21-7E )
field-value = *( %x20-7E )
CRLF = "\r\n"
SP = " "
Fragile requires: