# RFC 9110 Specification Map

| RFC 9110 area | Project behavior | Implementation | Representative tests |
| --- | --- | --- | --- |
| 14.1 Range Units | Case-insensitive `bytes`; unknown units retained | `model.mbt`, `range_parser.mbt` | `test_range_parser.mbt` |
| 14.1.1 Range Specifiers | Range unit and range set separated; order retained | `range_parser.mbt` | `test_range_parser.mbt` |
| 14.1.2 Byte Ranges | Closed, open-ended, suffix, clipping, satisfiability | `decimal.mbt`, `resolver.mbt` | `test_decimal.mbt`, `test_resolver.mbt` |
| 14.2 Range | Structured parse, limits, canonical serialization | `range_parser.mbt`, `serializer.mbt` | `test_serializer.mbt`, `test_limits.mbt` |
| 14.3 Accept-Ranges | `none`, unit lists, ASCII-insensitive lookup | `accept_ranges.mbt` | `test_accept_ranges.mbt` |
| 14.4 Content-Range | Satisfied, unknown length, unsatisfied form | `content_range.mbt` | `test_content_range.mbt` |
| 14.6 multipart/byteranges | Caller boundary and per-part metadata plan | `multipart_plan.mbt` | `test_response_plan.mbt` |
| 15.3.7 206 Partial Content | Single and multiple response plans | `response_plan.mbt` | `test_response_plan.mbt` |
| 15.5.17 416 Range Not Satisfiable | All-unsatisfied plan and `bytes */length` helper | `response_plan.mbt`, `content_range.mbt` | `test_response_plan.mbt`, `test_content_range.mbt` |
| 17.15 Range DoS considerations | Bounded parsing plus advisory request audit | `limits.mbt`, `audit.mbt` | `test_limits.mbt`, `test_audit.mbt` |

The mapping covers the documented byte-range scope, not all HTTP semantics.
Conditional requests, server selection logic, transport, and body production are
deliberately outside the project.
