Почему IIS 7.0 возвращает недопустимые коды состояния HTTP?

#http #iis #status

Вопрос:

Документация IIS 7.0 показывает, что IIS может возвращать коды состояния (например, 401.1), которые не соответствуют RFC7231, в котором говорится:

Элемент status-code представляет собой трехзначный целочисленный код, дающий результат попытки понять и удовлетворить запрос

Почему IIS возвращает несоответствующие коды состояния, которые нарушают совместимые клиентские реализации?

Ответ №1:

Ваша интерпретация документации IIS неверна.

Если вы используете такой инструмент, как Wireshark, для тщательного анализа ответных сообщений HTTP, сгенерированных IIS/HTTP.sys , вы увидите, что они содержат только трехзначный код состояния, как того требует RFC.

Однако именно в файлах журналов IIS, а также на других страницах трассировок / ошибок добавляется код подстатуса, чтобы лучше классифицировать фактические ошибки.

Имейте в виду, что IIS существует уже несколько десятилетий. Поэтому, если что-то не соответствует требованиям, менее вероятно, что это будет обнаружено так поздно.

Комментарии:

1. Большое вам спасибо, я ценю разъяснение (которое мне не было ясно из документации).