Почему процентный вход в URL-адрес вызывает ошибку неправильного запроса HTTP 400?

я случайно наткнулся на это при опечатке URL-адреса веб-страницы в моем веб-браузере.

почему посещение http://example.com/% вызывает ошибку HTTP ошибка 400: неверный запрос, чтобы быть брошенным? Сервер ожидает чего-то еще после или перед знаком процента?

похоже, это происходит для серверов Apache и Nginx.

3
задан Community
16.04.2023 4:43 Количество просмотров материала 3565
Распечатать страницу

2 ответа

короткий ответ:

по состоянию на RFC 3986, голой % недопустимый символ URI синтаксис; за ним должны следовать два значимых шестнадцатеричное цифр.

ответ

The HTTP код состояния вы получили принадлежит 4xx класс:

4xx: Client Error - The request contains bad syntax or cannot be fulfilled

источник: код состояния протокола передачи гипертекста (HTTP) Реестр

в частности, код 400 определяется Internet Engineering Целевая Группа (IETF) in RFC 2616:

10.4.1 400 Неверный Запрос

запрос не может быть понят сервером из-за синтаксических ошибок. Клиент не должен повторять запрос без изменений.

источник: RFC 2616-Hypertext Протокол передачи -- HTTP / 1.1

цитирование Википедии (жирный акцент мой):

символы, разрешенные в URI:резерв или безоглядной (или символ процента в процентной кодировке).

источник: процент-кодирование-процент-кодирование в URI

если вы хотите вставить литерал % символ, необходимо использовать его процентное представление:%25.

более дальнеишее чтение

31
отвечен and31415 2023-04-17 12:31

знак процента предназначен для вставки символа, который обычно не поддерживается в url. Например, %20 совпадает с пробелом.

9
отвечен LPChip 2023-04-17 14:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх