різних операційних систем), який за звичай реалізується за допомогою протоколу TCP/IP.
В якості стандартного засобу здійснення взаємодій у Web-середовищі використовується протокол передачі гіпертексту (HTTP – Hyper Text Transfer Protocol).
Під поняттям протокол за звичай розуміють угоду про порядок виконання деяких дій (в даному випадку це правила, які регламентують як повинна передаватись інформація від сервера до клієнта), а HTTP - це протокол, розроблений для передачі інформації від клієнта серверу у вигляді запиту і від сервера до клієнта у формі відповіді на цей запит. Цей протокол передбачає представлення інформації у вигляді потоку байтів, кожний з яких є ASCII-символом, і передачу цієї інформації між двома агентами. Сам по собі протокол HTTP є гнучким і потужним засобом, а разом з мовою HTML (HTML – Hypertext Markup Language – мова розмітки гіпертексту) він дозволяє швидко і легко передавати в програму-навігатор необхідні Web-сторінки.
HTTP не використовує інформації про стан, тобто сервер не має інформації про стан клієнта. Взаємодія між сервером і клієнтом закінчується після того, як клієнт отримає остаточну відповідь на свій запит. Це робить створення програм баз даних за допомогою HTTP дещо проблематичним, так як багато програм баз даних опираються на інформацію про клієнта, який має доступ до реального набору даних.
Після зародження Internet пройшло вже немало часу, за цей період з’явилось багато нових технологій, які широко використовуються у всесвітній мережі. В Internet використовується спеціальний тип документів, які базуються на мові розмітки гіпертексту HTML. За допомогою засобів HTML, можна створити web-сторінку, яку потім можна продивитися в броузері. Броузер – спеціальна програма для роботи в Internet, яка дає можливість завантажувати (звісно, якщо є доступ до Internet) web-сторінки. В принципі за допомогою HTML можна створювати тільки статичні web-сторінки, тобто такі, які не змінюються в залежності від дій користувача. В принципі на етапах зародження цього було достатньо для обміну інформацією, але з розвитком Internet технологій, стало зрозумілим, що цього недостатньо. Для генерації динамічних web-сторінок, тобто таких, які згідно запиту користувача, формують нову сторінку була розроблена технологія CGI (Common Getaway Interface).
Інтерфейс CGI дозволяє Web-серверу запускати незалежний процес, беручи до уваги вхідні дані, які він дістає від користувача, обробляє цю інформацію і повертає клієнту динамічно створену Web-сторінку.
При цьому CGI-програма могла виконати будь-який тип обробки даних, який був потрібен програмісту, а також відіслати користувачу будь-яку сторінку, яка допустима в рамках HTML.
Стандартні CGI-програми зчитують інформацію із стандартного потоку вводу (STDIN) і записують результати в стандартний потік виводу (STDOUT), а також зчитують змінні оточення. Функціонування інтерфейсу WinCGI включає наступні етапи: зберігання параметрів запиту у файлі, запуск програми WinCGI, зчитування і обробка даних файлу з наступним записом HTML-файлу. Якраз цей файл потім відсилається клієнту Web-сервером. Тим самим Web зробила великий крок вперед, оскільки сервери "навчились" надавати оброблені, унікальні відповіді на запити користувачів.
Однак програмам CGI і WinCGI притаманні деякі недоліки. Кожний запит повинен запускати на сервері свій власний процес, і тому декілька запитів можуть суттєво уповільнити роботу навіть не дуже завантаженого Web-сервера - бо йому приходиться виконувати такі відносно повільні задачі, як створення файлу, запуск окремого процесу, його виконання, запис і відсилання другого файлу.
2.2.2 Принципи функціонування Internet систем
Як вже зазначалось раніше всі Internet технології базуються на мережах архітектури клієнт/сервер. Всі web-сторінки розміщуються на сервері і, для того щоб їх міг завантажити будь-який користувач на свій комп’ютер, йому необхідно мати спеціальну клієнтську програму-навігатор по Internet. Дана програма повинна вміти звертатися до необхідних web-вузлів за запитом користувача.
На сервері розміщується спеціальна програма – web-сервер Даний тип програм, призначений для сприйняття і обробки запиту клієнта, в даному випадку при задаванні у браузері URL-адреси сервера, клієнтська програма зв’язується з ним, а web-сервер передає клієнту відповідну початкову сторінку. Для того, щоб web-вузол підтримував різного роду технології їх необхідно налагодити і прописати як відповідні модулі web-сервера.
При розробці автоматизованої системи дистанційної перевірки і оцінювання використовувалась трирівнева модель клієнт/сервер. На комп’ютері була встановлена програма web-сервер з підтримкою технології CGI. Тестова система повинна містити інформацію про групи студентів, самих студентів, предмети, тести по даним предмета, тестові завдання і відповіді, а також результати проведення контролю знань, для цього на комп’ютері була встановлена система управління базами даних (СУБД) MySQL. В результаті цих дій вийшло так, що комп’ютер виконував дві ролі, він був і клієнтом і одночасно сервером. На рисунку 2.1 подана архітектура тестової системи.
Рисунок 2.1 – Трирівнева архітектура Internet/Intranet систем
Як видно з рисунка в якості програми web-сервера використовується Apache, під управлінням якого працює понад ніж 60% всіх відомих вузлів [3, 8].
Опишемо принцип функціонування системи, яка зображена на рисунку 2.1. Користувач за допомогою програми навігатора по мережі Інтернет задає URL-адресу сервера, який йому необхідний, клієнтська програма шукає відповідний сервер за заданою URL-адресою, а знайшовши, передає йому управління, в конфігураційному файлі web-сервера є вказівка, яка сторінка повинна завантажуватись першою тобто, якщо користувач введе URL-адресу наприклад: web-сервер повинен завантажити початкову сторінку. В розробленій тестовій системі використовується програма web-сервер Apache, в його конфігураційному файлі є рядок, який має наступний вигляд:
DirectoryIndex index.htm index.html index.shtml
Цей рядок вказує web-серверу, що по замовчуванню початкова сторінка знаходиться у файлі index.htm, index.html або index.shtml. Тому, якщо взяти для прикладу web-вузол то, якщо в конфігураційному файлі web-сервера є такий рядок,