Клиент и сервер. Что это такое и с чем это едят?

0

При создании простого сайта вполне можно ограничиться разметкой веб-страниц с помощью HTML и применением стилей CSS к созданным HTML элементам. При этом интуитивно становится ясно, что веб-страницы сайта лежат на удаленном сервере, а доступ к ним осуществляется при переходе по соответствующим ссылкам внутри Вашего сайта. Процесс запроса веб-страницы на сервере и отображения ее браузером – это типичный пример взаимодействия клиента и сервера. Вообще, клиент-серверным взаимодействием можно считать любой обмен данными между клиентом и сервером. Давайте подробнее разберемся, кто есть кто. Если вам нужен сервер, рекомендуем сервера от компании Lenovo ThinkSystem SR650.

1. Клиент, который запрашивает

Если Вы в данный момент читаете эту статью через браузер, то вот Вам пример типичного клиента. Ваш браузер запросил эту веб-страницу у сервера, после чего начал ожидать от сервера ответа. Когда ответ от сервера был получен, браузер начал отображение полученной веб-страницы. Таким образом, в данном случае Ваш браузер является клиентом. Проще говоря, клиентом может являться любая программа на ПК, посылающая запросы к другому ПК, с целью получить какие-то данные. В рамках данной статьи, говоря о клиенте, мы будем подразумевать браузер, т.к. статья посвящена созданию сайтов. А как известно, основным инструментом для просмотра сайтов является браузер.

За что отвечает клиент? Если клиент получил ответ от сервера в виде веб-страницы, то он прорисовывает HTML элементы этой веб-страницы, загружает таблицы стилей CSS, применяя их к HTML элементам данной страницы. Если на веб-странице присутствуют скрипты на JavaScript или jQuery, то клиент загружает и исполняет данные скрипты (если произошли события, инициирующие запуск данных скриптов). Говоря в целом, на стороне клиента формируется интерфейс веб-страницы. Если Вы находитесь за ноутбуком или ПК, создайте пустой текстовый файл и смените расширение с *.txt на *.html. Затем откройте его при помощи блокнота и напишите одну строку “Привет мир!”. Сохраните и откройте в браузере. Вы увидите, что браузер отобразит содержимое веб-страницы. Если Вы добавите в созданную страницу HTML элементы, создадите внешнюю таблицу стилей CSS, вставите внешние JavaScript файлы, и снова откроете страницу в браузере, то все по-прежнему будет работать (конечно, если Вы не допустили ошибок в коде). Все потому что вышеперечисленные языки исполняются именно на стороне клиента.

Однако, стоит Вам создать на своем ПК или ноутбуке файл с расширением *.php и вставить в него корректный PHP код (например вот этот: “<?phpecho ‘Привет мир!’ ?>”), то при попытке открытия данного файла через браузер Вы увидите просто содержимое этого файла, а не результат его работы. Почему? Потому что мы с Вами перешагнули порог двери, ведущей от клиента к серверу.

2. Кто ответит? Сервер!

Последний пример с PHP файлом мы попробовали запустить на клиенте. Однако ничего не вышло. И не выйдет, потому что PHP является языком серверных сценариев! Говоря другими словами, мы не можем выполнить серверный скрипт на клиенте.

Физически сервер – это тот же компьютер, работающий круглосуточно. Вся “серверность” достигается за счет программного обеспечения, установленного на сервере. В большинстве случаев веб-сервера поддерживают выполнение PHP скриптов, поддерживают работу БД MySQL, и много чего еще, что не может быть исполнено на клиентской стороне.

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

Теперь Вы наверняка догадались, чтобы наш PHP файл заработал, его нужно перенести на сервер и со стороны клиента (а именно через браузер) обратиться к этому PHP скрипту. В результате Вы увидите, что сервер в ответ на Ваш запрос пришлет результат работы запрашиваемого скрипта. В браузере должна появиться строка “Привет мир!”. Это простейший вариант развития событий, ведь PHP скрипт не сделал ничего особенного, он просто вернул браузеру строку текста. В большинстве случаев взаимодействие клиента и сервера несколько сложнее. Для примера представим, что Вы хотите зарегистрировать новый почтовый ящик, к примеру, на Яндексе. Для этого нужно нажать на соответствующую кнопку регистрации. При этом браузер посылает запрос на сервер, а сервер возвращает веб-страницу с формой регистрации. Далее клиент прорисовывает интерфейс страницы, и Вы видите перед собой поля, которые нужно заполнить. После их заполнения, Вы отправляете форму обратно на сервер нажатием кнопки “зарегистрироваться”. Сервер не просто принимает заполненные Вами данные, а производит с ними некие операции. В данном случае внесенные данные записываются в базу данных, и сервер возвращает клиенту ответ в виде опять же веб-страницы с уведомлением об успешной регистрации.

Таким образом, на серверной стороне происходят манипуляции с данными. Они могут быть записаны в базу данных, могут быть стерты, изменены или же могут просто храниться. Как правило, все эти манипуляции происходят с помощью PHP сценариев, которые, как мы уже знаем, на клиенте работать не будут.

3. Работа на два фронта

У любопытных читателей наверняка возникает вопрос, как набить руку в PHP или отладить работу сайта и его скриптов, если в распоряжении имеется только ноутбук? Действительно, не ставить же себе домой настоящий сервер и не брать в аренду хостинг ради того, чтобы потренироваться в PHP. Все эти варианты требуют вложений. К счастью, выход есть! Умные люди придумали, как совместить на одном физическом компьютере и клиентскую часть, и серверную часть. Для решения этой задачи существуют виртуальные сервера (или локальные сервера). Самые известные сборки виртуальных серверов это Denwer (его еще называют джентльменским набором веб-разработчика) и OpenServer. В сборку входит среда исполнения PHP, система администрирования БД MySQL (phpMyAdmin) и HTTP-сервер Apache.

Локальный сервер – это очень удобный инструмент для отладки работы сайтов и веб-приложений. Скачав дистрибутив и установив его у себя на ноутбуке или ПК, Вы можете работать как над клиентской частью (к примеру, Вы создаете форму регистрации), так и над серверной частью (прием и обработка данных из созданной формы). Причем Вы можете делать это параллельно.

4. Итоги

Сегодня мы узнали о модели клиент-серверного взаимодействия. Чтобы удержать в памяти основную мысль взаимодействия между клиентом и сервером, помните, клиент делает запрос, а сервер принимает этот запрос и решает, каким будет на него ответ. И не забывайте про то, что на серверной стороне работают свои веб-технологии (PHP, MySQL), а на клиентской стороне свои (HTML, CSS, JavaScript).

‡агрузка...

НАПИСАТИ ВІДПОВІДЬ

Будь ласка, введіть свій коментар!
Будь ласка, введіть своє ім'я тут