Apache - программа, php -программа, mysql-программа.
Сокеты - способ обмена данными между программами внутри системы или между разными системами(IP-адресами) по протоколам TCP или UDP.
Клиент(браузер) обращается к адресу http://site.ru который написан на php например
1. Его системные службы обращаются к серверам доменных имен провайдера и получают IP-адрес компьютера закрепленного за доменом.
2. Браузер открывает сокет в системе пользователя, вторым концом упирающийся в сокет на 80 порту(порт - группа сокетов "наружу" которые может открывать сервер по внешнему запросу, или не открывать если фаерволл не разрешает) полученного IP адреса.
3. Если связь между сокетом пользователя и сокетом сервера установлена браузер отправляет сокету сервера текстовые данные в соответствии с протоколом http например:
Соответственно в адресной строке это бы выглядело как http://site.ru/wiki/HTTPЦитата:
GET /wiki/HTTP HTTP/1.0 Host: site.ru
Здесь важно понимать что все данные отправляются конкретному IP-адресу, а хост к которому обращается браузер указывается как доп.информация. Это позволяет на одном сервере(одном IP) обслуживать ряд доменов.
4. На сервере 80 порт постоянно прослушивается веб-сервером(программой-демоном, или иначе службой - т.е. программой которая сама стартует вместе с системой и работает постоянно в фоновом режиме) apache на предмет запросов на открытие связей(пары сокетов) для приема сообщений.
5. apache парсит полученную текстовую информацию, определяет протокол("HTTP/1.0"), домен("Host: site.ru"), GET("/wiki/HTTP")/POST параметры запроса и любую прочую информацию.
6. Все распарсив, он с помощью разных настроек и конфигов определяет, какой программе(php например) адресован этот запрос.
7. apache вызывает эту программу, используя системные протоколы(например CGI) - это означает фактически открытие пары внутренних сокетов между программами.
8. В ответ программа(php например) отправляет apach'у сгенерированные данные(например сгенерированный html-код)
9. apache все получив от вызываемой программы преобразует этот ответ в формат запрошенного протокола(http) и отправляет клиенту(браузеру) - соответственно пока apach'e опрашивает какие-то свои программы на сервере, сокет с клиентом все это время держится открытым.
10. затем apache отправляет заголовок ответа Connection: close и длину ответа и закрывает внешний сокет, получив ответ apach'а браузер тоже закрывает системный сокет и начинает переваривать полученную информацию.
Часто php работает не как отдельная программа (а-ля php.exe), а как скомпилированный код подключаемыый к apach'у(модуль), т.к. apache поддерживает любые модули который работают с ним по определенным правилам(интерфейс модулей)