Здравствуйте! В этой статье я расскажу про взаимодействие клиента и сервера в сети интернет. Для начала давайте определимся с понятием клиент и сервер. Сервер — это компьютер, подключенный к сети интернет, на котором установлено специальное программное обеспечение. Сервер получает запросы от клиента, производит у себя необходимые вычисления, и их результат отправляет обратно клиенту.
Клиент и сервер взаимодействуют друг с другом по разным протоколам — SMTP, FTP, HTTP, и др, но алгоритм взаимодействия по разным протоколам одинаков: клиент посылает запрос серверу, сервер получает его, обрабатывает, и если нужно, отправляет ответ клиенту. Бывает, что этот процесс повторяется несколько раз, а бывает, что он выполняется однократно.
Взаимодействие клиента и сервера по протоколу HTTP
Для взаимодействия клиента и сервера по протоколу HTTP, на компьютере-сервере должен быть установлен веб-сервер, а на компьютере пользователя — клиент (web-браузер). Все начинается с ввода адреса сайта в адресной строке браузера. Сначала пользователь вводит URL адрес страницы сайта (например webistore.ru/internet). После нажатия кнопки Enter, браузер сначала проверяет, существует ли домен с таким именем (в нашем случае webistore.ru). Если домен существует, браузер получает IP адрес сервера, который связан с доменом, и отправляет HTTP запрос на этот сервер. В нем браузер указывает домен, куки, свое название, предпочитаемые форматы данных, и др. Сервер получает эти данные, и на их основе формирует ответ. В ответе от сервера содержаться заголовки ответа, и тело ответа. В теле ответа содержится сама веб-страница. Клиент получает эту информацию, и выводит ее на монитор пользователя.
Пример взаимодействия между клиентом и сервером в сети интернет по протоколу HTTP:
Запрос клиента (web-браузера Chrome) к странице vk.com/webistore:
GET /webistore HTTP/1.1 Host: vk.com Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2150.0 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8 Cookie: remixstid=2074208158_cd328fd238e61c14d9; remixdt=7200;
Ответ от сервера:
HTTP/1.1 200 OK Server: Apache Date: Wed, 01 Apr 2015 19:46:41 GMT Content-Type: text/html; charset=windows-1251 Content-Length: 16892 Connection: keep-alive X-Powered-By: PHP/3.12530 Pragma: no-cache Cache-control: no-store X-Frame-Options: deny Content-Encoding: gzip После этих заголовков идет тело ответа, в котором содержится код веб-страницы
Статьи по теме: