Под клиент-серверным взаимодействием понимается доступ клиента к ресурсам, имеющимся в серверах, с целью получения хранимой в серверах информации и/или обработки данных с помощью серверных программ. В настоящее время большинство серверов работает под управлением программ либо Internet Information Server (IIS) в среде ОС Windows, либо Apache в среде ОС UNIX. Каждый сервер имеет доменное имя, зарегистрированное в сервере DNS.
Связь обычно осуществляется по протоколу http (HyperText Transfer Protocol). На серверной стороне она реализуется с помощью программы, называемой http-сервером, который обрабатывает запросы, поступающие от браузеров, ищет запрошенный документ и выдает клиенту или содержимое найденного файла, или сообщение об ошибке, если такой файл не был найден или доступ к нему запрещен. Браузер клиента предназначен только для получения и обработки информации с сервера. Воздействие на серверные данные со стороны клиента возможно только с помощью специальных средств, например, на основе технологий CGI или FTP.
Технологии клиент-серверного взаимодействия различаются способом реализации интерактивности и распределением функций между сервером и клиентом.
Преимущества серверного исполнения программ:
  1. нет проблем с совместимостью платформ;
  2. нет проблем с соблюдением прав собственности на программное обеспечение;
  3. нет опасности несанкционированного доступа к данным клиента;
  4. снижаются требования к характеристикам клиентских компьютеров.
Недостатки:
  1. опасность перегрузки сервера при большом числе клиентов;
  2. повышенные требования к пропускной способности сети при интерактивной работе пользователей.
К основным Web-технологиям относятся:
  1. включение сценария в HTML-документ (языки сценариев JavaScript, VBScript);
  2. активные серверные страницы (ASP) — сценарий исполняется на сервере;
  3. CGI (Common Gateway Interface) — по каждому запросу сервер создает процесс (приложение) в своем адресном пространстве;
  4. ISAPI (Internet Server Application Programming Interface) — приложения создаются в общем адресном пространстве сервера;
  5. аплеты (Applets) — приложение на Java передается для исполнения клиенту;
  6. сервлеты (Servlets) — приложение на Java исполняется на сервере;
  7. ActiveX — компоненты управления, могут исполняться в узлах сервера или клиента.