RFC 1945 (1996) говорит
5.1.1 Метод
Маркер метода указывает метод, который должен выполняться для ресурса , указанного в Request-URI. Метод чувствителен к регистру.
Method = "GET" ; Section 8.1
| "HEAD" ; Section 8.2
| "POST" ; Section 8.3
| extension-method
Что касается , почему , вероятно, это было влияние более ранних протоколов, таких как telnet ( RFC 854 , 1983), которые достаточно стары, чтобы прописные буквы считались более переносимыми (и надежными) чем игнорировать регистр.
Некоторые из RFC 1945 нечувствительны к регистру, например,
Аутентификация доступа
HTTP предоставляет простой механизм аутентификации запрос-ответ , который может использоваться сервером для оспаривания запроса клиента и клиент для предоставления информации аутентификации. Для идентификации схемы аутентификации используется расширяемый токен без учета регистра, за которым следует разделенный запятыми список пар атрибут-значение, которые несут параметры, необходимые для аутентификации. через эту схему .
, а также сам URL-адрес http:
Каноническая форма URL-адресов «http» получается преобразованием любых символов UPALPHA в хосте в их эквивалент LOALPHA (имена хостов регистронезависимы ), исключая [":" порт], если порт 80, и заменяя пустой abs_path на "/".
Поскольку вы уже обнаружили, что эта проблема не появляется с тире, кажется очевидным, что существует высокая вероятность того, что это вызвано ошибкой.
Он также растет, если вы используете bash-3.x, но очень медленно - все еще быстрее, чем с другими оболочками.
Я рекомендую вам сделать отчет об ошибке в вашей версии bash.
Кстати: я провел несколько тестов, и есть только две оболочки, в которых нет роста вообще - независимо от того, как долго вы ждете: mksh
и исходная Bourne Shell
, которой не было но преобразован для использования malloc () вместо sbrk ().
Все остальные оболочки растут очень медленно.