Сетевой протокол – набор правил и действий (очерёдности действий), позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть устройствами.

Наиболее распространённой системой классификации сетевых протоколов является так называемая модель OSI, в соответствии с которой протоколы делятся на 7 уровней по своему назначению – от физического (формирование и распознавание электрических или других сигналов) до прикладного (интерфейс программирования приложений для передачи информации приложениями).

Сетевые протоколы предписывают правила работы компьютерам, которые подключены к сети. Они строятся по многоуровневому принципу. Протокол некоторого уровня определяет одно из технических правил связи. В настоящее время для сетевых протоколов используется модель OSI (Open System Interconnection – взаимодействие открытых систем, ВОС).

Модель OSI – это 7-уровневая логическая модель работы сети. Модель OSI реализуется группой протоколов и правил связи, организованных в несколько уровней:

– на физическом уровне определяются физические (механические, электрические, оптические) характеристики линий связи;

– на канальном уровне определяются правила использования физического уровня узлами сети (Физическая адресация);

– сетевой уровень отвечает за адресацию и доставку сообщений (Определение маршрута и логическая адресация);

– транспортный уровень контролирует очередность прохождения компонентов сообщения (Прямая связь между конечными пунктами и надежность);

– задача сеансового уровня — координация связи между двумя прикладными программами, работающими на разных рабочих станциях (Управление сеансом связи);

– уровень представления служит для преобразования данных из внутреннего формата компьютера в формат передачи (Представление и шифрование данных);

– прикладной уровень является пограничным между прикладной программой и другими уровнями — обеспечивает удобный интерфейс связи сетевых программ пользователя (Доступ к сетевым службам).

Другая модель – стек протоколов TCP/IP – содержит 4 уровня:

– канальный уровень (link layer), (Уровень доступа к сети)

– сетевой уровень (Internet layer), (Интернет-уровень)

– транспортный уровень (transport layer), (Транспортный протокол хост-хост)

– прикладной уровень (application layer). (Уровень приложений)

Методы (POST, GET) передачи информации.

Метод GET.

Метод GET удобен тем, что прост в эксплуатации. Но у него есть недостатки. Во-первых, методом GET нельзя передавать большие объемы информации, потому что данные, передаваемые этим методом входят в состав URL, длина которого ограничена.

Пример: ссылка http://dayte2.com/?u=shaman&act=state&num=9 содержит данные, передаваемые методом GET. Эти данные идут после знака вопроса.

Так как данные, передаваемые методом GET входят в соства URL документа, их может подсмотреть любой желающий. У этого есть преимущества и недостатки. Преимущество состоит в том, что можно послать ссылку вместе с данными другу. Недостаток в том, что в строке браузера отображается и ваш, только что введенный пароль. Это одна из причин, почему данные, представляющие ценность, всегда нужно передавать методом POST.

Метод POST.

Как и метод GET, метод POST служит для передачи данных на сервер. Однако, данные, переданные таким образом, идут не в URL документа, а в теле запроса, после заголовков. Эти данные могут быть восприняты CGI-программой.

Когда данные отправляются методом POST, серверу приходит что-то вроде:

POST lines.pl HTTP/1.1

Accept: */*

Referer: http://dayte2.com/shaman.shtml

Accept-Language: ru

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Host: dayte2.com

Content-Length: 106

Connection: Keep-Alive

Cache-Control: no-cache

*Тут post данные*

После анализа заголовков, сервер видит пустую строку, которая говорит об окончании заголовков. После нее сервер видит какие-то непонятные данные. Недолго думая, сервер решает, что эти данные нужны файлу, который вызывается, и посылает эти данные документу. Если этот документ – скрипт, то он получит эти данные так же, как получает данные с клавиатуры при работе с консолью, то есть, через STDIN.

Плюсы метода POST очевидны: можно передавать неограниченные объемы информации, причем, никто не увидит эту информацию после того, как вы ее отправили (имеется ввиду, в строке браузера).

Наши рекомендации