Сервис Web Галиц Валерий
Web сервис l l Это идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (XML, JSON и т. д. ).
Веб адресс или URL l l URL – это единообразный локатор (определитель местонахождения) ресурса. Структура URL: – l <протокол>: //<логин>: <пароль>@<хост>: <порт>/<URL путь>? <параметры>#<якорь> Примеры URL: – – – http: //ru. wikipedia. org/wiki/ ftp: //myname: mypass@myhost. com: 21/etc/motd file: //vms. myhost. edu/disk$user/my/notes/note 123. txt
Развитие Web
Основные элементы настройки web сервера
Web – распределенная служба l l l Модель «клиент - сервер» Серверы – web сервера, например в ОС Windows IIS сервис, в ОС Linux Apache. Клиенты – web браузеры, например Opera, Mazilla.
Протокол HTTP l HTTP ( Hyper. Text Transfer Protocol - RFC 1945, RFC 2616 ) - протокол прикладного уровня для передачи гипертекста. Является основой сервиса Web.
Схема работы HTTP l "Классическая" схема HTTP-сеанса выглядит так. – – Установление TCP -соединения. Запрос клиента. Ответ сервера. Разрыв TCP -соединения.
CGI l l CGI - это набор правил, согласно которым программы на сервере могут через вебсервер посылать данные клиентам. Спецификация CGI сопровождалась изменениями в HTML и HTTP, вводившими новую характеристику, известную как формы. То есть простыми словами скрипты php, C# и. . . являются CGI скриптами.
Пример HTTP запроса l l l l GET http: //oak. oakland. edu/ HTTP/1. 0 Connection: Keep-Alive User-Agent: Mozilla/4. 04 [en] (Win 95; I) Host: oakland. edu Accept: image/gif, image/x-xbitmap, image/jpeg, image/png, */* Accept-Language: en Accept-Charset: iso-8859 -l, *, utf-8
Состав HTTP запроса l Строка состояния (строка-статус, строка запроса). Формат: – l Поля заголовка. Формат: – l l метод_запроса (POST, GET, HEAD) URL_pecypca версия_протокола_НТТР Имя_поля: Значение Пустая строка. Тело запроса.
Основные методы запроса l l GET - запрос документа. Предается в открытом виде как часть URL. Недостатки: виден, ограничен 256 символами; Преймущества: легкость проверки работы. HEAD - запрос заголовка документа. Выдается только заголовок запроса с информацией о документе. Сам документ не выдается. PОST - этот метод применяется для передачи данных рессурсу. Данные включены в тело запроса. PUT - Применяется для загрузки содержимого запроса на указанный в запросе URI.
Значения параметров l l l l Connection (соединение)- может принимать значения Keep. Alive и close. Keep-Alive означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. User-Agent - кодовое обозначение браузера. Accept - список поддерживаемых браузером типов содержимого в порядке их предпочтения. Host - имя хоста, с которого запрашивается ресурс. Accept-Language - поддерживаемый язык. Accept-Charset: кодировка; Referer - URL, с которого перешли на этот ресурс. (отсутсвовал в представленном заголовке).
Другие важные параметры l l l If-Modified-Since: Используется только при методе GET ресурс возвращается , если он был изменен с указаного момента времени, используется при кешировании. From: С его помощью браузер может посылать полный E-mail адрес пользователя серверу. Authorization: Содержит информацию об аутентификации.
Состав HTTP ответа l В ответ на запрос клиента сервер посылает ответ. Он состоит из строки состояния, Общего заголовка (General. Header), заголовка ответа (Response. Header), заголовка тела ответа (Entity. Header) и самого тела ответа. – Строка состояния. Формат: HTTP/версия<SP>Код статуса<SP>.
Таблица кодов статуса
Состав HTTP ответа – – – – Location: Содержит URI ресурса, может быть использован для перенаправления клиента на другой URL, если например ресурс был перемещен в другое место или на другой сервер. WWW-Autenticate: Параметры аутентификации. Set-Cookie Содержимое кукиса для записи на стороне клиента Server Идентификация сервера Content-Length длина содержимого ответа в байтах. Last-Modified дата последнего изменения документа. Content-Type содержит обозначение типа содержимого ответа.
Общие поля для запроса и ответа l Date: Указывает дату запроса. – l MIME-version: Указывает версию MIME (по умолчанию 1. 0) – l Date: Fri, 13 Dec 1998 09: 15: 45 GMT MIME-version: 1. 0 Pragma: Содержит указания для таких промежуточных агентов как прокси и шлюзы, – Pragma: no-cache
Функции PHP для работы с HTTP заголовками l header() Записывает строку в заголовки ответа – l l l header( 'Location: /redirect. php'); headers_list() Возвращает массив заголовков ответа headers_sent() Проверяет отправлены ли заголовки ответа клиенту getallheaders() Возвращает массив заголовков запроса get_headers() Возвращает заголовки ответа удаленного сервера Более подробно: http: //www. http 11. ru/post. php? post=1
Создание собственного HTTP заголовка l l Можно использовать чистый PHP или специализированные библиотеки низкого уровня, например Curl. Применение PHP: – l http: //www. codenet. ru/webmast/php/HTTP-POST. php Применение Curl: – – http: //rus-linux. net/My. LDP/internet/curlrus. html http: //php-zametki. ru/php-prodvinutym/75 -php-curl. html
Пример использования PHP l l l l l <? php $fp = fsockopen("www. example. com", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno) n"; } else { $out = "POST / HTTP/1. 1rn"; $out. = "Host: www. example. comrn"; $out. = "Connection: Closern"; //собственно вот тут и идут POST VARS $out. = "var 1=123456"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ? > //взят отсюда: http: //www. sql. ru/forum/actualthread. aspx? tid=344584
Пример Curl l Есть скрипт в файле l l l <? php $a = $_GET['a']; $b = $_GET['b']; echo $a + $b; ? > Запрос Curl к этому файлу вернет 15 l l l l l <? php if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'http: //mysite. ru/receiver. php? a=5&b=10'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $out = curl_exec($curl); echo $out; curl_close($curl); } ? >
Включение поддержки Curl l l В файле PHP php. ini снять коментарий с php_curl. dll и перезапустить сервер. Расположение файла php. ini: – C: Web. Serversusrlocalphp 5
Основы настройки web сервера IIS l l IIS - основной набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT. Насройка web сайтов на IIS cостоит из следующих этапов.
l l l l Установка IIS; Добавление нового сайта; Указание папки сайта Указание прав на работу с информацией папки сайта (как правило только чтение); Указание порта сайта (по умолч. 80) и заголовка (изменение данных параметров нужно если на одном компьютере будут несколько web сайтов); Указание страницы загрузки по умолчанию; Настройка доступа к web серверу и авторизация; Связывание IP сайта и DNS имени на сервере DNS.
Настройка Apache (на Linux) l l l Установка Редактирование файла httpd. conf /usr/local/apache 2/conf/ Запуск web службы. Папка. /etc/init. d/. /httpd start
Основные параметры настройки файла httpd. conf l l l l Server. Root – путь к папке с файлами сервера Document. Root – путь к папке сайта; Listen – порт прослушки Server. Name - имя сервера Server. Admin – электронный адрес админа. Будет отображаться при возникновении некоторых ошибок Directory. Index – файл запуска по умолчанию Полное описание: http: //www. codenet. ru/webmast/apache/Apache. Windows. NT/apache_config. php