Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UMK-_Internet_tekhnologii_bakalavr.doc
Скачиваний:
103
Добавлен:
18.03.2015
Размер:
2.27 Mб
Скачать

8.4. Серверные программные интерфейсы приложений

Серверные программы API (Application Programming Interfaces) можно поверхностно обозначить как сменные модули Web-сервера. Среди распространенных API такие, как ISAPI для сервера IIS от Microsoft, NSAPI для сервера Netscape/I Planet/Sun, Apache Modules для Apache и сервлеты Java для Web-серверов с поддержкой Java. Преимуществом серверных программ API является то, что в целом их плот­ное взаимодействие с Web-сервером приводит к высокой производительно­сти. Недостатком, вне всяких сомнений, представляется сложность написа­ния такой программы и вероятность того, что ошибочный серверный модуль, на самом деле, может привести к отказу всего сервера.

8.4. Сетевые и сопутствующие протоколы

В числе протоколов, составляющих основу Internet, присутствует стек сете­вых протоколов TCP/IP. Не единственный протокол, но целая группа тако­вых, именно TCP/IP делает возможным все службы, существующие в Inter­net. В отдельности, IP (Internet Protocol, протокол Internet) предоставляет базовую информацию, связанную с адресацией и маршрутизацией, необхо­димую для доставки данных по сети Internet. С другой стороны, TCP (Transport Control Protocol, протокол управления передачей) обеспечивает средства, делающие коммуникации надежными, такие, как коррекция и по­вторная передача. Объединив их вместе, в сочетании со службой доменных имен (Domain Name Service, DNS), представляющей собой процесс преобра­зования полностью определенных доменных имен вроде www.webdesignref.com, в соответствующие им IP-адреса (66.45.42.235), мы получаем возможность создавать в сети Internet службы высокого уровня, такие как электронная почта или Web-сайты. Знание протоколов низкого уровня многим Web-дизайнерам может показаться бессмысленным, однако при разработке в высшей степени масштабируемых Web-сайтов понимание подробностей организации сетей оказывается особенно полезным. Как бы то ни было, не­зависимо от задач сайта, в следующем протоколе, который мы будем обсуж­дать, должен разбираться каждый Web-дизайнер.

8.4.1. HTTP

HTTP (Hypertext Transport Protocol, протокол передачи ^гипертекста) — это протокол прикладного уровня, отвечающий за взаимодействие между аген­том пользователя (которым обычно является Web-браузер) и Web-сервером. Этот простой протокол определяет восемь основных команд (GET, POST, HEAD, PUT, DELETE, OPTIONS, TRACE и CONNECT), которыми агент пользователя может воспользоваться- для запроса или управления данными. В ответах могут содержаться как числовые, так и текстовые коды (к приме­ру, 404 Not Found) и сопутствующие данные.

Простота протокола HTTP — это одновременно и счастье, и напасть. Его несложно реализовать, однако недостаток управления состоянием и пробле­мы с производительностью приносят Web-разработчикам неприятности. Спецификация HTTP 1.1, определенная в документе RFC 2616, была обра­щена ко многим проблемам, связанным с производительностью, однако управление состоянием до сих пор приходится осуществлять с помощью cookies, скрытых переменных данных или расширенных адресов. Обзор HTTP дается в главе 17, в то время как в приложении 7 приводятся подроб­ности, касающиеся его форматов запроса и ответа.

8.4.2. MIME

MIME (Multipurpose Internet Mail Extensions, многоцелевые расширения электронной почты в Internet), невоспетый герой Web-протоколов, исполь­зуется браузерами для определения типа данных, получаемых ими с сервера. В частности, HTTP-заголовок под названием content-type содержит значе­ние MIME, которое браузер отыскивает для того, чтобы понять, данные ка­кого типа он получает и что с ними делать. Серверы присоединяют MIME-типы к HTTP-заголовкам, генерируя их из программы или привязывая рас­ширение файла (к примеру, html) к соответствующему MIME-типу (к при­меру, text/html). MIME позволяет Web-сайтам представлять данные любого типа, а не только распространенные в Web форматы вроде HTML.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]