Why the limit is per route
Different routes accept different things. One global limit is a limit that is wrong for most of them.
The symptom of no limit
A process that grows and is killed. The symptom names the input, and the input names the route.
The body is not a size, it is a stream. Reading without a limit is reading a number someone else chose, and the number can be larger than memory.
About 1 min of reading
Enforce a body limit
Write the route limit
Before you run it, say out loud what it will print. Then open the answer.
Attempt a larger body
Before you run it, say out loud what it will print. Then open the answer.
Write the reason for the limit
Before you run it, say out loud what it will print. Then open the answer.
Different routes accept different things. One global limit is a limit that is wrong for most of them.
A process that grows and is killed. The symptom names the input, and the input names the route.
It is a header written by the client. Trusting it is trusting the input, and the input is the thing being defended.
The count is checked while reading. A check after the read is a check that already spent the memory.
It has a number and a reason. A limit with no reason is a limit that will be raised in review.
Each one is defined here on this site. Open the entry for the full definition and the other words it points at.