Hello! On Mon, Jun 16, 2014 at 11:20:57PM +0300, Gena Makhomed wrote:
> On 16.06.2014 15:00, Maxim Dounin wrote: > > >>озвученные в RFC 7230 требования к клиенту: > >> > >>http://tools.ietf.org/html/rfc7230#section-5.4 > >> > >> A client MUST send a Host header field in all HTTP/1.1 request > >> messages. If the target URI includes an authority component, then a > >> client MUST send a field-value for Host that is identical to that > >> authority component, excluding any userinfo subcomponent and its "@" > >> delimiter (Section 2.7.1). > >> > >>- это ведь требования к синтаксису, которые обязательны для выполнения. > > > >Нет, это не требования к синтаксису, это требования к семантике. > > Запись target URI в виде valid request message - это разве не syntax? Синтаксис - это то, что нарушает требования приведённых нормативных грамматик, см. http://tools.ietf.org/html/rfc7231#section-1.2 и далее. [...] > >>Разве ответить на такой запрос 400-м статусом не будет лучше? > > > >Это зависит от многих факторов. Вот тут Валентин давеча > >напрограммировал возврат 400, если имя, указанное в SNI, не > >совпадало с именем, используемым в запросе, ибо RFC 6066 говорит: > > > > ... If the server_name is > > established in the TLS session handshake, the client SHOULD NOT > > attempt to request a different server name at the application layer. > > > >Так пришлось распрограмировать обратно - потому что Chrome > >использует "a different server name at the application layer", > >когда считает нужным/возможным. > > "SHOULD NOT" - это не запрет, а только лишь рекомендация: > http://tools.ietf.org/html/rfc2119#section-4 > так что формально и фактически Chrome ничего не нарушает. Фактически - упомянутый "SHOULD NOT" на тот момент безусловно отклонялся Apache'ом, а противоречащие друг другу Host + Request-Line - формально вообще ничего не нарушали до выхода HTTPbis. И что на самом деле происходит в реальной жизни - это отдельный интересный вопрос. Среди прочего, например, HTTPbis явно требует возвращать 400, если запрос содержит несколько заголовков Host. В своё время, однако, nginx'у потребовалось от этой практики отказаться: http://hg.nginx.org/nginx/rev/b9de93d804ea Если мне не изменяет память, причина была всё та же - реальная жизнь заставила. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru