Протокол HTTP и сеансы пользователей. Сохранение информации о состоянии

Все HTTP-транзакции имеют один общий формат. Каждый запрос клиента и ответ сервера состоит из трех частей: строки запроса (ответа), раздела заголовка и тела. Клиент инициирует транзакцию следующим образом:

1. Клиент устанавливает связь с сервером по назначенному номеру порта (по умолчанию - 80). Затем клиент посылает запрос документа, указав HTTP-команду, называемую методом, адрес документа и номер версии HTTP. Например, в запросе

GET /index.html HTTP/1.0

используется метод GET, которым с помощью версии 1.0 HTTP запрашивается документ index.html. Методы HTTP более подробно рассматриваются ниже.

2. Клиент посылает информацию заголовка (необязательную), чтобы сообщить серверу информацию о своей конфигурации и данные о форматах документов, которые он может принимать. Вся информация заголовка указывается построчно, при этом в каждой строке приводится имя и значение. Например, приведенный ниже заголовок, посланный клиентом, содержит его имя и номер версии, а также информацию о некоторых предпочтительных для клиента типах документов:

User-Agent: Mozilla/4.05 (WinNT; 1)

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Завершается заголовок пустой строкой.

3. Послав запрос и заголовки, клиент может отправить и дополнительные данные. Эти данные используются главным образом теми CGI-программами, которые применяют метод POST. Клиенты (например, Netscape Navigator-Gold), также могут использовать их для помещения отредактированной страницы обратно на Web-сервер.

Сервер отвечает на запрос клиента следующим образом:

1. Первая часть ответа сервера - строка состояния, содержащая три поля: версию HTTP, код состояния и описание. Поле версии содержит номер версии HTTP, которой данный сервер пользуется для передачи ответа.

Код состояния - это трехразрядное число, обозначающее результат обработки сервером запроса клиента. Описание, следующее за кодом состояния, представляет собой просто понятный для человека текст, поясняющий код состояния. Например, строка состояния

НТТР/1.0 200 OK

говорит о том, что сервер для ответа использует версию HTTP 1.0. Код состояния 200 означает, что запрос клиента был успешным и затребованные данные будут переданы после заголовков.

2. После строки состояния сервер передает клиенту информацию заголовка, содержащую данные о самом сервере и затребованном документе. Ниже приведен пример заголовка:

Server: Apache/1.2.6

Last-modified: Mon, 12 Jun 1997 21:53:08 GMT

Content-type: text/html

Content-length: 2482

Завершает заголовок пустая строка.

3. Если запрос клиента успешен, то посылаются затребованные данные. Это может быть копия файла или результат выполнения CGI-программы. Если запрос клиента удовлетворить нельзя, передаются дополнительные данные в виде понятного для пользователя разъяснения причин, по которым сервер не смог выполнить данный запрос.

В HTTP 1.0 за передачей сервером затребованных данных следует разъединение с клиентом, и транзакция считается завершенной, если не передан заголовок Connection: Keep Alive. В HTTP 1.1 сервер по умолчанию не разрывает соединение и клиент может посылать другие запросы. Поскольку во многие документы встроены другие документы - изображения, кадры, апплеты и т.д., это позволяет сэкономить время и затраты клиента, которому в противном случае пришлось бы для получения всего одной страницы многократно соединяться с одним и тем же сервером. Таким образом, в HTTP 1.1 транзакция может циклически повторяться, пока клиент или сервер не закроет соединение явно.

HTTP не сохраняет информацию по транзакциям, поэтому в следующей транзакции приходится начинать все заново.

Преимущество состоит в том, что HTTP сервер может обслужить в заданный промежуток времени гораздо больше клиентов, ибо устраняются дополнительные расходы на отслеживание сеансов от одного соединения к другому.

Есть и недостатки.

Индивидуальные запросы не связаны друг с другом, Веб-сервер (и следовательно РНР) не располагает средствами различения конкретных пользователей. Поэтому программисту необходимо самостоятельно определить способ идентификации пользователя и связать с конкретным пользователем данные соответствующего сеанса работы.

8. Технология Microsoft.NET. Особенности, основные положения и характеристики.

Под платформой Microsoft.NET следует понимать интегрированную систему (инфраструктуру) средств разработки, развертывания и выполнения сложных (как правило, распределенных) программных систем.

Платформа.NET состоит из нескольких основных компонентов:

· операционные системы корпорации Microsoft (Windows 2000/XP/ME/CE), представляющие собой базовый уровень платформы MS.Net,

· серверы MS.Net (.Net Enterprise Servers) являются программными продуктами корпорации Microsoft, использование которых позволяет снизить сложность разработки сложных программных систем. В числе готовых для применения серверы Application Center 2000, Exchange Server 2000, SQL Server и др.,

· сервисы MS.Net (.Net Building Block Services) представляют собой готовые "строительные блоки" сложных программных систем, которые могут быть использованы через Интернет как сервисные услуги. Набор таких сервисов MS.Net планируется последовательно расширять. Примером имеющегося сервиса платформы MS.Net является Microsoft Passport, позволяющий установить единое имя пользователя и пароль на всех сайтах, поддерживающих аутенфикацию через Passport,

· интегрированная среда разработки приложений Visual Studio.NET (VS.Net) – верхний уровень MS.Net - обеспечивает возможность создания сложного ПО на основе платформы и продолжает в этом плане ряд разрабатываемых корпорацией Microsoft средств разработки профессионального программного обеспечения.

Центральной частью платформы MS.Net, является подсистема Microsoft.Net Framework.

Как уже отмечалось выше, подсистема MS.NET Framework является ядром платформы MS.Net, обеспечивая возможность построения и исполнения.Net приложений.

На верхнем уровне рассмотрения в составе MS.NET Framework могут быть выделены общеязыковая среда выполнения (Common Language Runtime или CLR) и библиотеки классов подсистемы MS.NET Framework. По своему функциональному назначению в составе библиотек классов могут быть выделены:

· набор базовых классов, обеспечивающих, например, работу со строками, ввод-вывод данных, многопоточность и т.п.,

· набор классов для работы с данными, предоставляющих возможность использования SQL-запросов, ADO.Net и обработки XML данных

· набор классов Windows Forms, позволяющих создавать обычные Windows-приложения, в которых используются стандартные элементы управления Windows,

· набор классов Web Forms, обеспечивающих возможность быстрой разработки Web-приложений, в которых используется стандартный графический интерфейс пользователя,

· набор классов Web Services, поддерживающих создание распределенных компонентов-сервисов, доступ к которым может быть организован через Интернет.

Базовый уровень подсистемы MS.NET Framework составляет общеязыковая среда выполнения (Common Language Runtime или CLR).

Добавить примеры использования разныз языков в одном проекте

Рассказать про timemanaged и non-timemanaged языки


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: