Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vse1.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
1.81 Mб
Скачать

19. Протокол http и средства разработки серверных Интернет приложений.

Несколько слов о выборе средств разработки. Компилируемые языки, такие как C/C++, имеют некоторое преимущество в том смысле, что на сервере отсутствует исходный код приложения, а это сильно затрудняет возможность его исследования – в отличие от интерпретируемых языков (Perl, PHP, ASP и т.п.). В штатных условиях код последних также недоступен, но часто есть возможность добраться до него, используя какие то ошибки сервера или просто находя сохраненную резервную копию. С другой стороны, исходные тексты популярных CGI‑приложений и так достаточно распространены в сети, кроме того, тот же Perl имеет встроенные механизмы обеспечения безопасности выполняемых скриптов, так что нельзя априори утверждать, что программа на C будет безопасней аналогичной программы на Perl.

HTTP (от англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — сетевой протокол прикладного уровня для передачи файлов. В стеке TCP/IP для HTTP зарезервированы порты 80 транспортных протоколов TCP и UDP (практически, используется только первый).

Основным назначением HTTP является передача веб-страниц (текстовых файлов с разметкой HTML), хотя с помощью него с успехом передаются и другие файлы, как связанные с веб-страницами (изображения и приложения), так и не связанные с ними (в этом HTTP успешно конкурирует с более сложным FTP).

HTTP предполагает, что клиентская программа — веб-браузер, умеет отображать гипертекстовые веб-страницы и файлы других типов в удобной для пользователя форме.

Обмен сообщениями идёт по обыкновенной схеме «запрос-ответ». Для идентификации ресурсов HTTP использует глобальные URI. В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами. Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования.

Каждый запрос/ответ состоит из трёх частей:

1. стартовая строка;

2. заголовки;

3. тело сообщения, содержащее данные запроса, запрашиваемый ресурс или описание проблемы, если запрос не был выполнен.

Стартовые строки различаются для запроса и ответа.

В основном используются только методы GET (поисковая) и POST(почта). Различаются они тем, что в методе GET данные запроса внедряются в URL ресурса (после вопросительного знака, например: http://server/document.html?param=value), а в методе POST они посылаются в теле сообщения.

Первая строка ответа выглядит так:

HTTP/‹Версия› ‹Код статуса› ‹Описание статуса›

Наиболее типичные статусы:

200 OK — запрос выполнен успешно;

403 Forbidden — доступ к запрошенному ресурсу запрещён;

404 Not Found — запрошенный ресурс не найден.

Заголовки HTTP — это строки, каждая из которых состоит из имени параметра, за которым следует двоеточие и его значение. Они несут информацию для браузера или для серверных программ (таких, как CGI-приложения). Между заголовками и телом обязательно должна быть пустая строка.

Общи вид: [протокол]://[имя][пароль]@[адрес][:порт][/путь][документ][?доп информация]

Основные отличия (от TELNET, FTP…):

Каждый запрос происходит не зависимо от предыдущих запросов. Скрытые поля которые передаются от запроса к запросу: динамическая страница на сервере: скрытые поля -> необходимая информация.

Основной недостаток – нет понятия сессии, т.е. кажд следующий запрос независим от предыдущего. Т.о. проблема при написании серверных приложений. решения:

1) исп. скрытых полей: На стартовой странице вводим Логин и Пароль. Далее создаем динамич. страницу со скрытым полем из Логин и Пароль. Далее передаем это поле на следующую страницу. проблема: трудно проследить.

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

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