Html змінні оточення. Windows та Denwer
Коли браузер запитує від веб-сервера документ, він також надсилає на сервер технічну інформацію про певні параметри браузера та операційної системи. Веб-сервер одночасно з документом повертає деякі свої характеристики. Таким чином, браузер та веб-сервер обмінюються даними, які називаються змінні оточення. Ці змінні можна використовувати у своїх цілях та відображати їх на веб-сторінці.
При використанні SSI загальний синтаксис виведення певної змінної оточення буде наступним.
Деякі змінні з їх описом наведено в табл. 1. Зауважте, що всі імена пишуться великими символами. Хоча ця умова й необов'язково, саме така форма запису є традиційною та усталеною.
Змінна | Опис |
---|---|
DOCUMENT_ROOT | Шлях до кореневої папки сайту. Для локального веб-сервера значення може набувати вигляду z:/home/сайт/www, а в інших випадках залежить від операційної системи сервера та програмного забезпечення. |
GATEWAY_INTERFACE | версія CGI (Common Gateway Interface, загальний шлюзовий інтерфейс). Значення зазвичай дорівнює CGI/1.1. |
HTTP_ACCEPT | Типи файлів, які можуть прийняти браузер. Як значення повертається список підтримуваних MIME-типів розділених між собою комою, наприклад: text/html, application/xhtml+xml. |
HTTP_CONNECTION | Тип з'єднання браузера з веб-сервером. Так, keep-alive означає, що браузер підтримує постійне з'єднання з сервером. При цьому протягом одного сеансу з'єднання можна робити кілька запитів. Повторне з'єднання в такому випадку вже не відбувається. |
HTTP_HOST | Доменна назва сайту. Зазвичай розрізняють імена із префіксом www (www..ru). Змінна поверне ту адресу сайту, яка вказана в адресному рядку браузера. |
HTTP_REFERER | Адреса сторінки, з якою користувач перейшов на цей сайт, ще називається реферер. |
HTTP_USER_AGENT | Ідентифікатор використовуваного браузера та операційної системи. Як значення повертається рядок, що містить ключові слова. Наприклад, наступний рядок Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2 каже, що користувач використовує браузер Firefox 6.0.2 під ОС Windows 7. |
QUERY_STRING | Запит, який вказаний в адресному рядку після знака запитання (?). Зазвичай пишеться у формі «змінна = значення», де змінні поділяються між собою амперсандом (&). ? |
REMOTE_ADDR | IP-адреса відвідувача сайту. |
REQUEST_METHOD | Метод надсилання даних на сервер. За промовчанням застосовується метод GET. |
REQUEST_URI | Адреса запитуваного документа. Відлік ведеться від кореня сайту, тобто..html повернеться значення 1.html. |
SERVER_ADDR | IP-адреса комп'ютера, де розміщується сайт. |
SERVER_ADMIN | Адреса електронної пошти адміністратора сайту. |
SERVER_NAME | Ім'я сервера. |
SERVER_PORT | Порт, яким очікується отримання даних. |
SERVER_PROTOCOL | Протокол для отримання та надсилання даних. Значення зазвичай дорівнює HTTP/1.1. |
SERVER_SOFTWARE | Програмне забезпечення встановлено на сервері. Для веб-сервера Apache повертається номер версії (Apache/2.2.4), а також версія PHP (PHP/5.3.3). |
У прикладі 1 показано використання змінних оточення для відображення на веб-сторінці необхідної інформації.
Приклад 1. Виведення значення змінної DOCUMENT_ROOT
Шлях до кореневої папки сайту:
В результаті виконання прикладу буде виведено наступний рядок: Шлях до кореневої папки сайту: /home/сайт/www.
Значення змінних оточення можна переглянути за допомогою програми на PHP, використовуючи функцію phpinfo(), як показано у прикладі 2.
Приклад 2. Використання phpinfo()
В результаті виконання програми буде виведено таблицю з різними параметрами, у тому числі змінними оточення в розділі «Apache Environment» (рис. 1).
Мал. 1. Apache Environment
Також можна написати програму на PHP, яка виводитиме всі змінні оточення у вигляді таблиці (приклад 3).
Приклад 3. Висновок змінних оточення
\n \n
$a | $b |
\n\n"; ?>
Безпосередньо перед запуском сценарію сервер передає йому певні змінні оточення з інформацією. У певних змінних містяться деякі заголовки, але не всі (отримати всі заголовки не можна).
HTTP_ACCEPT- У цій змінній перераховані всі MIME-типи даних, які можна сприйняти браузером. Рядок */* означає, що браузер розуміє будь-який тип.
HTTP_ACCEPT= */*
HTTP_REFERER- Ця змінна представляє відомості про сторінку, на якій користувач потрапив на дану. Цю змінну можна використовувати, наприклад, для відстеження переміщення користувача на вашому сайті, а потім переглядати найбільш популярні маршрути.
HTTP_REFERER= http://www.spravkaweb.ru/
HTTP_COOKIE- У цій змінній зберігаються всі Cookies в URL-кодуванні.
HTTP_COOKIE=
HTTP_USER_AGENT- Ідентифікує браузер користувача. Для встановлення типу браузера потрібно перевірити цей рядок на наявність слів: якщо браузер - Internet Explorer, то буде присутній підрядок MSIE, а якщо є лише слово Mozilla, то це Netscape.
HTTP_USER_AGENT= Mozilla/4.0 (compatible; MSIE 5.0; Windows NT 4.0)
У вас Internet Explorer
HTTP_HOST- Містить доменне ім'я Web-сервера, на якому запустився сценарій. Цю змінну досить зручно використовувати, наприклад, для генерації повного шляху, який потрібно заголовку Location, щоб не прив'язуватися до конкретного сервера.
HTTP_HOST= www.spravkaweb.ru
HTTP_FROM- Адреса електронної пошти користувача, який направив запит.
HTTP_FROM=
SERVER_NAME- Доменне ім'я або IP-адреса сервера.
SERVER_NAME= www.spravkaweb.ru
SERVER_SOFTWARE- Ім'я та версія програми-сервера, що відповідає на запит клієнта.
SERVER_SOFTWARE= Apache/1.3.33 (Unix) mod_jk/1.2.8 mod_auth_passthrough/1.8 mod_log_bytes/1.2mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.8.22 OpenSSL/0.9.7
SERVER_PORT- Ця змінна містить порт сервера, до якого звернувся браузер користувача. Зазвичай це 80. Змінна також може застосовуватися для формування параметра заголовка Location.
SERVER_PORT= 80
SERVER_PROTOCOL- Змінна містить ім'я та версію інформаційного протоколу, використаного для запиту.
SERVER_PROTOCOL= HTTP/1.0
REMOTE_ADDR- Ця змінна містить IP-адресу (або доменне ім'я) вузла користувача, на якому було запущено браузер.
REMOTE_ADDR= 212.94.114.177
REMOTE_PORT- Порт, який закріплюється за браузером користувача, щоб отримати відповідь сервера.
REMOTE_PORT= 4277
REMOTE_USER- Ідентифікаційне ім'я користувача, що надсилає запит.
REMOTE_USER=
SCRIPT_NAME- Містить ім'я файлу, що містить цей сценарій. Цю змінну зручно використовувати для формування заголовка Location при переадресації він (self-redirect), і навіть підставлення значення атрибута action тега