Просто. ОС чувствительна к регистру. Веб-серверам, как правило, все равно, если только они не попадут в файловую систему. Именно здесь Linux и другие операционные системы на основе Unix применяют правила файловой системы, в которых чувствительность к регистру является основной частью. Вот почему IIS никогда не учитывал регистр символов; потому что Windows никогда не чувствительна к регистру.
[Обновить]
В комментариях было несколько веских аргументов (так как они были удалены) о том, имеют ли URL какие-либо связи с файловой системой, как я уже говорил. Эти аргументы стали горячими. Чрезвычайно близоруко полагать, что нет никаких отношений. Там абсолютно есть! Позвольте мне объяснить дальше.
Программисты приложений обычно не являются системными программистами. Я не оскорбляю. Это две отдельные дисциплины, и знание внутренних систем не требуется для написания приложений, когда приложения могут просто совершать вызовы в ОС. Поскольку прикладные программисты не являются системными программистами, обход сервисов ОС невозможен. Я говорю это потому, что это два отдельных лагеря, и они редко пересекаются. Приложения пишутся для использования сервисов ОС как правило. Конечно, есть редкие исключения.
Когда веб-серверы начали появляться, разработчики приложений не пытались обойти службы ОС. Для этого было несколько причин. Во-первых, это было не нужно. Во-вторых, прикладные программисты, как правило, не знали, как обойти службы ОС. В-третьих, большинство ОС были либо чрезвычайно стабильными и надежными, либо чрезвычайно простыми и легкими и не стоили затрат.
Имейте в виду, что ранние веб-серверы либо работали на дорогих компьютерах, таких как серверы DEC VAX / VMS и Unix-системы того времени (Беркли и Ультрикс, а также другие), на компьютерах с основным или средним кадром, а затем вскоре после легкие компьютеры, такие как ПК и Windows 3.1. Когда начали появляться более современные поисковые системы, такие как Google в 1997/8 году, Windows перешла на Windows NT, а другие ОС, такие как Novell и Linux, также начали использовать веб-серверы. Apache был доминирующим веб-сервером, хотя были и другие, такие как IIS и O'Reilly, которые также были очень популярны. Никто из них на тот момент не обошел сервисы ОС. Вполне вероятно, что ни один из веб-серверов не делает даже сегодня.
Ранние веб-серверы были довольно просты. Они все еще сегодня. Любой запрос, сделанный для ресурса через HTTP-запрос, который существует на жестком диске, был / сделан веб-сервером через файловую систему ОС.
Файловые системы - довольно простые механизмы. Когда делается запрос на доступ к файлу, если этот файл существует, запрос передается в подсистему авторизации и, если он получен, исходный запрос удовлетворяется. Если ресурс не существует или не авторизован, система выдает исключение. Когда приложение делает запрос, устанавливается триггер, и приложение ожидает. Когда на запрос получен ответ, запускается триггер, и приложение обрабатывает ответ на запрос. Это все еще работает сегодня. Если приложение видит, что запрос был удовлетворен, оно продолжает работу, если оно не удалось, приложение выполняет условие ошибки в своем коде или умирает, если не обрабатывается. Просто.
В случае веб-сервера, предполагая, что сделан запрос URL для пути / файла, веб-сервер берет часть пути / файла запроса URL (URI) и делает запрос к файловой системе, и он либо удовлетворяется или выбрасывает исключение. Затем веб-сервер обрабатывает ответ. Если, например, запрошенный путь и файл найдены и доступ предоставлен подсистемой авторизации, то веб-сервер обрабатывает этот запрос ввода-вывода как обычно. Если файловая система выдает исключение, то веб-сервер возвращает ошибку 404, если файл не найден, или 403 Запрещено, если код причины не авторизован.
Поскольку некоторые ОС чувствительны к регистру, а файловые системы этого типа требуют точного соответствия, путь / файл, запрашиваемый веб-сервером, должен точно соответствовать тому, что существует на жестком диске. Причина этого проста. Веб-серверы не догадываются, что вы имеете в виду. Ни один компьютер не может сделать это без программирования. Веб-серверы просто обрабатывают запросы по мере их получения. Если часть пути / файла URL-запроса, передаваемого непосредственно в файловую систему, не совпадает с тем, что находится на жестком диске, тогда файловая система выдает исключение, и веб-сервер возвращает ошибку 404 Not Found.
Это действительно так просто. Это не ракетостроение. Существует абсолютная связь между частью пути / файла URL-адреса и файловой системой.