Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория для защиты 1 лабы.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
405.5 Кб
Скачать

Общий формат ответа.

Этот формат похож на формат запроса. Рассмотрим пример кода статуса и фраз: 200 ok - запрос успешно обработан, информация в ответ послана; 301 Moved Permanently - объект перемещён на постоянной основе, новый URL определён в строке Location заголовка. ПО клиента должно автоматически получить объект по-новому URL; 400 Bad Request - сервер не может понять запрос (ошибка при синтаксическом анализе запроса); 404 Not Found - запрашиваемый объект не найден на сервере; 505 HTTP version not supported - указанная версия HTTP не поддерживается сервером. Чтобы увидеть реальный HTTP ответ нужно набрать что-нибудь вроде:

telnet www.karelia.ru 80

GET / HTTP/1.0

Это приведёт к открытию TCP соединения с 80 портом и с указанным хостом. После чего будет послано GET. В ответ вы увидите ответное сообщение HTTP.

Что такое сокеты?

Для начала давайте определим что такое сервер и клиент. Итак, сервер - это специальная программа, обычно запущенная на отдельном компьютере (хосте, от слова host(eng.) - хозяин), и выполняющая некий круг задач. Клиент, в свою очередь - программа, которая запрашивает сервер выполнить то или иное действие (задачу) и вернуть полученные данные клиенту. На хосте для работы сервера обычно выделяется порт (port). К этому порту и должен будет обращаться клиент. Клиент для связи с портом хоста, который соединен в свою очередь с нужным сервером (программой), создает сокет.

В целом алгоритм работы системы клиент-сервер выглядит следующим образом:

  1. Сервер подключается к порту на хосте и ждет соединения с клиентом;

  2. Клиент создает сокет и пытается соединить его с портом на хосте;

  3. Если создание сокета прошло успешно, то сервер переходит в режим ожидания команд от клиента;

  4. Клиент формирует команду и передает ее серверу, переходит в режим ожидания ответа;

  5. Сервер принимает команду, выполнеят ее и пересылает ответ клиенту.

  6. и т.д.

Взаимодействие клиента и сервера в Интернете осуществляется с помощью запросов, посылаемых клиентом серверу, и ответов сервера на запрос клиента:

Суть распределенных систем - связь между процессами, реализующими не только взаимодействие компьютеров, но и частей (уровней) приложений. Взаимодействие частей приложений реализуется с помощью протоколов, описывающих состав и формат данных, пересылаемых соответствующими частями клиентских и серверных приложений друг другу для решения поставленной задачи. В Интернете разбиение приложений на части осуществляется на базе стека протоколов TCP/IP:

Клиент-сервер (англ. Client-server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.

В протоколах TCP и UDP (семейства TCP/IP) порт — идентифицируемый номером системный ресурс, выделяемый приложению, выполняемому на некотором сетевом хосте, для связи с приложениями, выполняемыми на других сетевых хостах (в том числе c другими приложениями на этом же хосте).

Для каждого из протоколов TCP и UDP стандарт определяет возможность одновременного выделения на хосте до 65536 уникальных портов, идентифицирующихся номерами от 0[1] до 65535. При передаче по сети номер порта в заголовке пакета используется (вместе с IP-адресом хоста) для адресации конкретного приложения (и конкретного, принадлежащего ему, сетевого соединения).

В обычной клиент-серверной модели приложение либо ожидает входящих данных (или запроса на соединение; «слушает порт»; роль сервера), либо посылает данные (или запрос на соединение) на известный порт, открытый приложением-сервером (роль клиента).

По умолчанию приложению выдается порт с произвольным (например, ближайшим свободным, большим 1023) номером. При необходимости приложение может запросить конкретный (предопределённый) номер порта. Так, веб-серверы обычно открывают для ожидания соединения предопределённый порт 80 протокола TCP.

17