ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Переменная $https



On Monday 05 August 2013 21:15:21 Nick Knutov wrote:
> В нгинх -
> 
> $https
>  ?on? если соединение работает в режиме SSL, либо пустая строка
> 
> А вот в апаче -
> 
> HTTPS
> Will contain the text "on" if the connection is using SSL/TLS, or "off"
> otherwise.
> 
> Вопрос - почему в нгинх сделано так, правильно ли это и не стоит ли
> поменять поведение этой переменной на как в апаче?

Предназначение этой переменной - служить конфигурацией по умолчанию для
fastcgi, и других *cgi протоколов.

Вы же, по-видимому, цитируете документацию по mod_rewrite.  Для подобных
задач в nginx всегда была переменная $scheme, гораздо более удобная на
мой взгляд, чем апачевская HTTPS.

Переменная $https появилась не так давно, тогда данный вопрос был тщательно 
изучен, и была выбрана реализация, совместимая с максимальным количеством 
приложений.

В частности, в документации по PHP написано:

 'HTTPS'
    Set to a non-empty value if the script was queried through the
    HTTPS protocol. 

  @ http://php.net/manual/en/reserved.variables.server.php

и не малое количество PHP кода написано так, что любое непустое значение
в $_SERVER['HTTPS'] включая 'off' будет истолковано как положительное.

Собственно одной из причин появления этой переменной послужили такие
письма: http://mailman.nginx.org/pipermail/nginx/2011-September/029424.html

Когда речь заходит о переменной окружения HTTPS (а не переменной HTTPS в
модуле mod_rewrite), то Apache в этом месте ведет себя так:

Apache + PHP

   Apache/2.2.21
   mod_php 5.3.8

   https: HTTPS == "on"
   http:  HTTPS отсутствует


Apache + mod_fastcgi + flup (Python)

   Apache/2.2.21
   mod_fastcgi 2.4.7
   flup-1.0.2

   https: HTTPS == "on"
   http:  HTTPS отсутствует

Делайте выводы.

--
Валентин Бартенев
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.