- •Затверджений
- •02070743.00569-01 81 01
- •2.1. Вступ
- •02070743.00569-01 81 01
- •2.2.1.1. Статичний html
- •5 02070743.00569-01 81 012.2.1.2 Cgi
- •2.2.1.3. Active Server Pages і asp.Net
- •02070743.00569-01 81 01
- •702070743.00569-01 81 012.2.1.4. Asynchronous Javascript and xml
- •2.3. Мови реалізації мережевих технології
- •9 02070743.00569-01 81 012.3.3. C# і vb.Net
- •02070743.00569-01 81 01
- •2.4. Безкоштовні технології
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •2.5. Мова програмування Ruby
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •2.6. Конкретизація задачі
- •2.6.1. Ruby для Web-застосувань
- •02070743.00569-01 81 01
- •2.6.1.2. Ruby on Rails
- •2.6.1.3. Принципи і техніка
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •2.6.1.5. Додаткові інструменти і бібліотеки
- •02070743.00569-01 81 01
- •2.7. Ruby і Web-сервер
- •02070743.00569-01 81 01
- •2.7.1. Модуль mod_ruby
- •02070743.00569-01 81 01
- •2.2.2. Сервер weBrick
- •02070743.00569-01 81 01
- •2.7.3. Сервер Mongrel
- •02070743.00569-01 81 01
- •26 02070743.00569-01 81 012.8. Особливості розробки алгоритмів для Ruby
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
RubyRequire визначає одну або декілька необхідних бібліотек;
RubyHandler визначає обробник для об'єкту Ruby;
RubyPassEnv визначає імена змінних оточення, передаваних сценаріям;
RubySetEnv встановлює змінні оточення;
RubyTimeOut задає величину тайм-ауту для Ruby-сценаріїв;
RubySafeLevel задає рівень безпеки SSAFE;
23
02070743.00569-01 81 01
RubyKanjiCode встановлює кодування символів для Ruby.
До складу пакету входять також класи і модулі Ruby для взаємодії з Apache. Модуль Apache (у сенсі, прийнятому в Ruby) включає декілька функцій, наприклад server_version і unescape_url; там же визначені класи Request і Table.
Apache::Request – це обгортка для типа даних request_rec, що визначає такі методи, як request_method, content_type, readlines і так далі Клас Apache::Table – обгортка для типа даних table; він визначає, серед інших, методи get, add і each.
Є детальні інструкції по компіляції і установці пакету mod_ruby. Звернетеся до тієї, що поставляється в комплекті з ним документація (або еквівалентній інформації в Мережі [9]).
2.2.2. Сервер weBrick
WEBrick – це бібліотека для створення повноцінного HTTP-сервера.
WEBrick майже нічого не знає про деталі Web-приложений. Він не розуміє, що таке сеанс користувача і інші тонкощі. Він оперує лише сервлетами, що працюють незалежно один від одного. Якщо вам необхідна функціональність більш високого рівня, пошукайте іншу бібліотеку (можливо, надбудову над WEBrick на кшталт IOWA або Tofu) або напишіть свою власну [3].
Робота з WEBrick зводиться до такої послідовності дій: створюється екземпляр сервера; визначаються обробники монтування і обробники сигналів; запускається сервер.
Як працює сервлет? Ідея в тому, аби визначити метод для кожної підтримуваної HTTP-операции, наприклад do_GET для запитів типа GET. Якщо ви звиклися писати програми, що звертаються до сервера, то тепер доведеться встати на протилежну точку зору, адже ваш код стає частиною Web-сервера. Ви не отримуєте помилку з кодом 404, а самі посилаєте цей код.
2402070743.00569-01 81 01
На
щастя, не потрібно писати сервлети для
кожної крихітної задачки, яку повинен
виконувати WEBrick. У нього є декілька своїх
зумовлених сервлетов (все в просторі
імен WEBrick: :HTTPServlet):
FileHandler
ProcHandler
CGIHandler
ERBHandler
WEBrick має в своєму розпорядженні і багато інших можливостей, наприклад точками підключення для виконання додаткових завдань (скажімо, запуску якої-небудь програми при старті). Є також розвинені засоби протоколювання, аутентифікації по протоколу HTTP і так далі [3]
2.7.3. Сервер Mongrel
Основна мета цього сервера – підвищити продуктивність в порівнянні з WEBrick. У даному відношенні він добився значних успіхів і працює у багато разів швидше
Mongrel часто використовують у поєднанні з Rails, а документація місцями орієнтована на Rails. Але жорсткої прив'язки до Rails немає – сервер може працювати і в інших контекстах. Mongrel – швидше, застосування, тоді як WEBrick більше нагадує бібліотеку. Багато в чому вони схожі, але порядок запуску і API розрізняються [4]. У багатьох випадках Mongrel можна запустити як застосування без написання якого-небудь коду. Він розуміє три основні команди: start, stop і restart. В команди start багато параметрів, що модифікують поведінку сервера, наприклад: --port portnum --log filename --daemonize і так далі. Аби отримати повний список, введіть таку команду:
mongrel_rails start –h
Запуск в стандартному режимі – це добре, але рано чи пізно виникне потреба в чомусь незвичайному. На цей випадок передбачені конфігураційні файли. Простий спосіб підготувати конфігураційний файл для Mongrel – скористатися прапором –G. Наприклад, можна ввести такий командний рядок: