Each name=value pair in a form, query string or multipart body is a field. A request with tens of thousands of fields forces the server to build a large table in memory, and it can slow parsing sharply. Some hash table implementations can even be driven into worst-case behavior by choosing field names that collide.
PHP has a setting for this called max_input_vars, which defaults to 1000 and limits how many input variables are accepted per request. Other platforms have similar controls. The related setting max_input_nesting_level limits how deep array-style fields such as a[b][c] can go.
Limits like these are inexpensive protection. They fail safely, so that an oversized request is cut off, and they do not need a new rule for each new attack. The right value depends on your forms: a large admin page with many fields may need a higher number than a login page.
Review the defaults for your platform and lower them on public endpoints where you can.