Сначала придумали, как передавать информацию между компьютерами.
Для этого изобрели целый стек протоколов разных уровней.
Затем разработали один протоколов верхнего уровня - HTTP (протокол передачи гипертекста). Он позволяет клиенту делать запрос на сервер и получать в ответ какой-нибудь файл - чаще всего HTML-файл, содержащий собственно разметку гипертекста.
Ну а дальше больше. Разметка может содержать ссылки на картинки, звуки, каскадные листы стилей (CSS), исполняемые программные сценарии (скрипты на языке JavaScript).
Кроме того, при запросе клиента сервер может что-то сделать на своей стороне. Например, записать данные в свою базу данных. Или прочесть из нее данные, а потом на основе этих данных сгенерировать текст странички для отображения клиенту. Порядок действий сервера определяется в серверном сценарии. Довольно часто такой сценарий пишут на языке PHP, но возможно использовать и множество других языков: Java, Python, Go, даже JavaScript.