Сетевой протокол – набор правил и действий (очерёдности действий), позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть устройствами.
Наиболее распространённой системой классификации сетевых протоколов является так называемая модель 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 очевидны: можно передавать неограниченные объемы информации, причем, никто не увидит эту информацию после того, как вы ее отправили (имеется ввиду, в строке браузера).