После того, как клиент подключился к услуге по определенному порту, он получает доступ к услуге, воспользовавшись установленным протоколом. Протокол - это заранее разработанный порядок обмена информацией стороны, желающей воспользоваться услугой, и стороны, оказывающей услугу. «Стороной», которой нужна услуга, может быть человек, однако чаще всего это компьютерная программа, например, WEB браузер. Протоколы часто представляют собой текстовое описание процедуры обмена информацией между клиентом и сервером.
Возможно, самый простой протокол у услуги daytime. Если подключиться к порту 13 машины, поддерживающей сервер daytime, этот сервер отправит в ответ информацию о текущей дате и времени и затем отключит соединение. Протокол выглядит следующим образом: «Если клиент устанавливает связь с сервером daytime, ему отправляются данные даты и времени, после чего соединение отключается». Большинство машин с UNIX поддерживают этот сервер. Можно связаться с ним, используя приложение Telnet. В UNIX сессия будет иметь следующий вид:
На машине, работающей под ОС Windows, можно получить доступ к этому серверу, введя «telnet web67.ntx.net 13» в окне MSDOS.
В этом примере web67.ntx.net - серверная машина UNIX, а 13 - номер порта для услуги daytime. Приложение Telnet подключается к порту 13 (telnet обычно подключается к порту 23, но можно указать любой другой порт для подключения), затем сервер отправляет данные даты и времени, после чего разрывает соединение. В большинстве версий Telnet есть возможность указывать номер порта и этой возможностью можно пользоваться независимо от того, какая версия Telnet установлена на машине.
Большинство протоколов более сложны, чем протокол для daytime, они определены в имеющихся в свободном доступе Рабочих предложениях (Request for Comment, RFC) (хороший архив всех RFC смотрите sunsite.auc.dk/RFC/). Каждый WEB сервер в Интернете соответствует требованиям протокола HTTP, собранным в документе The Original HTTP в 1991 году. Наиболее важная форма протокола, которая воспринимается HTTP сервером, включает только одну команду: GET. Если установить связь с сервером, работающим по протоколу HTTP и послать запрос «GET имя файла» сервер отреагирует отправкой источнику запроса содержимого указанного файла, после чего отключит соединение. Типичная сессия имеет следующий вид:
В начальном варианте протокола HTTP нужно было отправить только действительное имя файла, например, [/] или Позже протокол изменили, чтобы получить возможность обработки полных URL. Это позволило компаниям, которые занимаются виртуальных доменов, в условиях, когда много доменов размещают на одной машине, использовать для всех таких доменов один IP адрес.
Прочитав эту статью, вы узнали очень много об . В частности, вы теперь знаете, что при вводе в браузере URL происходит следующее:
Из этого описания можно сделать вывод, что WEB сервер может быть довольно простой программой. Он принимает имя файла, отправленное с командой GET, находит искомый файл и отправляет его браузеру. Даже с учетом всего кода управления портами и связи через порты, можно без труда создать программу на языке Си, выполняющую роль простого WEB сервера, которая состояла бы менее чем из 500 строк программного кода. Разумеется, полнофункциональный корпоративный WEB сервер более сложен, однако основные принципы его работы по-прежнему остаются очень простыми.
В рабочий процесс большинства серверов добавляется тот или иной уровень безопасности. Для этого, например, используются защищенные паролем страницы. При попытке открыть такую страницу браузером выдается диалоговое окно с требованием введения имени и пароля. Сервер предоставляет владельцу WEB страницы возможность использования списка имен и паролей людей, которым разрешен доступ на эту страницу; при этом сервер разрешает просмотр страницы только тем, кто располагает соответствующим паролем. В усовершенствованных серверах имеются дополнительные функции безопасности, позволяющие шифровать информацию, которой обмениваются сервер и браузер, что дает возможность передавать по Интернету конфиденциальную информацию, например, номера кредитных карточек.
Это практически все функции, которые может выполнять сервер, предназначенный для отправки стандартных, статических WEB страниц. Статическими называют такие WEB страницы, которые не меняются, пока их не отредактирует разработчик.
А как же с динамическими WEB страницами? Например:
Во всех перечисленных случаях WEB сервер не просто ищет нужный файл. Он обрабатывает полученную информацию и создает WEB страницу, определенным образом соответствующую полученному запросу. Почти во всех случаях для решения этой задачи WEB сервер использует так называемую процедуру CGI.
Каждая серверная машина открывает доступ из Интернета к услугам, используя пронумерованные порты, по одному для каждой услуги, имеющейся на сервере. Например, если на серверной машине имеется WEB сервер и FTP сервер, обычно доступ к WEB серверу производится через порт 80, а к FTP серверу - через порт 21. Клиенты подключаются к услуге, выбрав соответствующий адрес и подключившись к соответствующему порту.
Каждой популярной услуге поставлен в соответствие определенный номер порта. Ниже приводятся номера чаще всего используемых портов:
Если серверная машина разрешает подключение к порту из сети Интернет и этот порт не защищен , можно подключиться к нему из любой точки Интернета и пользоваться соответствующей услугой. Следует отметить, что нет каких-либо ограничений, предписывающих, например, WEB серверу подключаться по порту 80. Вводя в действие собственную машину и устанавливая на ней программное обеспечение WEB сервера, можно при желании указать, чтобы WEB сервер работал, например, по порту 918, или по любому другому незанятому порту. Затем, если машине присвоено имя xxx.yyy.com, можно подключиться к этому серверу через Интернет, используя URL xxx.yyy.com:918. Часть «:918» явно указывает на номер порта и должна добавляться всеми желающими связаться с этим сервером. Если порт не указан, браузер по умолчанию пытается подключиться к общепринятому порту 80.
HTTP . В его основу положено взаимодействие " клиент-сервер ", то есть предполагается, что:При этом возможны два способа организации работы компьютера-клиента:
Прежде чем перейти к конкретным клиент-серверным веб-технологиям, рассмотрим основные принципы и структуру базового протокола HTTP .
HTTP (HyperText Transfer Protocol - RFC 1945, RFC 2616) - протокол прикладного уровня для передачи гипертекста.
Центральным объектом в HTTP является ресурс , на который указывает URL в запросе клиента. Обычно такими ресурсами являются хранящиеся на сервере файлы. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя изначально данный протокол предназначен для передачи символьной информации. На первый взгляд это может показаться излишней тратой ресурсов. Действительно, данные в символьном виде занимают больше памяти, сообщения создают дополнительную нагрузку на каналы связи, однако подобный формат имеет много преимуществ. Сообщения, передаваемые по сети, удобочитаемы, и, проанализировав полученные данные, системный администратор может легко найти ошибку и устранить ее. При необходимости роль одного из взаимодействующих приложений может выполнять человек, вручную вводя сообщения в требуемом формате.
В отличие от многих других протоколов, HTTP является протоколом без памяти. Это означает, что протокол не хранит информацию о предыдущих запросах клиентов и ответах сервера. Компоненты, использующие HTTP , могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Например, клиентское веб- приложение , посылающее запросы, может отслеживать задержки ответов, а веб- сервер может хранить IP-адреса и заголовки запросов последних клиентов.
Все программное обеспечение для работы с протоколом HTTP разделяется на три основные категории:
Основными клиентами являются браузеры , например: Internet Explorer, Opera, Mozilla Firefox, Netscape Navigator и другие. Наиболее популярными реализациями веб-серверов являются: Internet Information Services ( IIS ), Apache, lighttpd, nginx. Наиболее известные реализации прокси-серверов: Squid, UserGate, Multiproxy, Naviscope.
"Классическая" схема HTTP -сеанса выглядит так.
Таким образом, клиент посылает серверу запрос , получает от него ответ, после чего взаимодействие прекращается. Обычно запрос клиента представляет собой требование передать HTML -документ или какой-нибудь другой ресурс , а ответ сервера содержит код этого ресурса.
В состав HTTP -запроса, передаваемого клиентом серверу, входят следующие компоненты.
Строку состояния вместе с полями заголовка иногда называют также заголовком запроса .
Рис.
2.1.
Строка состояния имеет следующий формат:
метод_запроса URL_pecypca версия_протокола_НТТР
Рассмотрим компоненты строки состояния, при этом особое внимание уделим методам запроса.
Метод , указанный в строке состояния, определяет способ воздействия на ресурс , URL которого задан в той же строке. Метод может принимать значения GET , POST , HEAD , PUT , DELETE и т.д. Несмотря на обилие методов, для веб-программиста по-настоящему важны лишь два из них: GET и POST .
Версия протокола HTTP , как правило, задается в следующем формате:
HTTP/версия.модификация
Поля заголовка , следующие за строкой состояния, позволяют уточнять запрос , т.е. передавать серверу дополнительную информацию. Поле заголовка имеет следующий формат:
Имя_поля: Значение
Назначение поля определяется его именем, которое отделяется от значения двоеточием.
Имена некоторых наиболее часто встречающихся в запросе клиента полей заголовка и их назначение приведены в таблице 2.1 .
Поля заголовка HTTP -запроса | Значение |
---|---|
Host | Доменное имя или IP-адрес узла, к которому обращается клиент |
Referer | URL документа, который ссылается на ресурс, указанный в строке состояния |
From | Адрес электронной почты пользователя, работающего с клиентом |
Accept | MIME-типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент |
Accept-Language | Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом |
Accept-Charset | Перечень поддерживаемых наборов символов |
Content-Type | MIME-тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка) |
Content-Length | Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка) |
Range | Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть |
Connection | Используется для управления TCP-соединением. Если в поле содержится Close, это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP-соединение, чтобы оно могло быть использовано для последующих запросов |
User-Agent | Информация о клиенте |
Во многих случаях при работе в Веб тело запроса отсутствует. При запуске CGI-сценариев данные, передаваемые для них в запросе, могут размещаться в теле запроса.
Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Web-сервис (служба) – программа, которая организовывает взаимодействие между сайтами. Информация с одного портала передается на другой.
Например, есть авиакомпания. У нее много рейсов, соответственно, много билетов. Информацию через веб-службу она передает сайту-агрегатору тур-путешествий. Пользователь, который заходит на агрегатор, сможет прямо там купить билеты этой авиакомпании.
Другой пример веб-сервисов - это сайт отслеживания погоды, который содержит сведения о метеоусловиях в конкретном городе или по стране в целом. Данная информация также часто используется сторонними .
Информация в интернете разнородна. Сайты управляются разными системами. используются разные протоколы передачи и шифрования. Веб-сервисы упрощают обмен информацией между разными площадками.
Можно определить 3 инстанции, которые взаимодействуют между собой: каталог, исполнитель и заказчик. После создания сервиса, исполнитель регистрирует его в каталоге, а там сервис находит заказчик.
Механизм обмена данными формируется в описании Web Services Description. Это спецификация, охватывающая форматы пересылки, типы контента, транспортные протоколы, которые применяются в процессе обмена сведениями между заказчиком и транспортировщиком услуг.
Сегодня чаще всего используются несколько технологий для реализации различных веб-сервисов:
Универсальность представленных технологий – основа для понимания веб служб. Они работают на стандартных технологиях, не зависящих от поставщиков приложений и прочих ресурсов сети. Могут использоваться в любых операционных системах, серверах приложений, языков программирования и т.д.
Веб-сервисы могут использоваться во многих сферах.
Интеграция процессов идет сразу, без участия людей. Например, пополнение каталога интернет-магазина новыми товарами. Их привозят на склад, и кладовщик отмечает в базе данных приход. Автоматически информация передается в интернет-магазин. И покупатель вместо пометки “Нет на складе” на карточке товара видит его количество.
Если в компании используются корпоративные программы, то веб-сервис поможет настроить их совместную работу.
Сервисы используются, чтобы настроить работу клиента и сервера. Это дает преимущества:
Веб-сервис - это приложение, которое упрощает техническую настройку взаимодействия ресурсов.
Протокол - это набор соглашений, который определяет обмен данными между различными программами. Протоколы задают способы передачи сообщений и обработки ошибок в сети, а также позволяют разрабатывать стандарты, не привязанные к конкретной аппаратной платформе.
Сетевые протоколы предписывают правила работы компьютерам, которые подключены к сети. Они строятся по многоуровневому принципу. Протокол некоторого уровня определяет одно из технических правил связи. В настоящее время для сетевых протоколов используется модель OSI (Open System Interconnection - Взаимодействие Открытых Систем, ВОС). Модель OSI – это семиуровневая логическая модель работы сети. Модель OSI реализуется группой протоколов и правил связи, организованных в несколько уровней.
На физическом уровне определяются физические (механические, электрические, оптические) характеристики линий связи.
На канальном уровне определяются правила использования физического уровня узлами сети.
- Сетевой уровень отвечает за адресацию и доставку сообщений.
- Транспортный уровень контролирует очередность прохождения компонент сообщения.
Задача сеансного уровня - координация связи между двумя прикладными программами, работающими на разных рабочих станциях.
- Уровень представления служит для преобразования данных из внутреннего формата компьютера в формат передачи.
- Прикладной уровень является пограничным между прикладной программой и другими уровнями. Прикладной уровень обеспечивает удобный интерфейс связи сетевых программ пользователя.
Протокол TCP/IP - это два протокола нижнего уровня, являющиеся основой связи в Интернет. Протокол TCP (Transmission Control Protocol) разбивает передаваемую информацию на порции и нумерует все порции. С помощью протокола IP (Internet Protocol) все части передаются получателю. Далее с помощью протокола TCP проверяется, все ли части получены. При получении всех порций TCP располагает их в нужном порядке и собирает в единое целое.
Наиболее известные протоколы, используемые в сети Интернет:
HTTP (Hyper Text Transfer Protocol) - это протокол передачи гипертекста. Протокол HTTP используется при пересылке Web-страниц с одного компьютера на другой.
FTP (File Transfer Protocol) – это протокол передачи файлов со специального файлового сервера на компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать файл с удаленного компьютера на свой или скопировать файл со своего компьютера на удаленный.
POP (Post Office Protocol) - это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.
Стандарт SMTP (Simple Mail Transfer Protocol) задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.
UUCP (Unix to Unix Copy Protocol) - это ныне устаревший, но все еще применяемый протокол передачи данных, в том числе для электронной почты. Этот протокол предполагает использование пакетного способа передачи информации, при котором сначала устанавливается соединение «клиент – сервер» и передается пакет данных, а затем автономно происходит его обработка, просмотр или подготовка писем.
TELNET - это протокол удаленного доступа. TELNET дает возможность абоненту работать на любом компьютере сети Интернет, как на своем собственном, то есть запускать программы, менять режим работы и т.д. На практике возможности лимитируются тем уровнем доступа, который задан администратором удаленной машины.
DTN - протокол, предназначенный для обеспечения сверхдальней космической связи.