Что является клиентом, а что сервером?
Клиент - это тот кто передает запрос и получает ответ. Сервер - тот кто получае запрос и формирует ответ.
Абсолютно без разницы, сервер это понятие из реализации собственно сетевого взаимодействия, сокеты делятся на серверные - те что ждут и слушают подключения и клиентские, которые подключаются, соответственно софт, который реализует свою логику на первых так же зовется сервером.

Но с точки зрения передачи данных, нет никакой разницы кто чего откуда запросил и кто что передал. отличным примером является штатный VNC клиеинт и сервер, где пользовательское клиентское рабочее место может открыть серверный сокет и ждать подключение а сервер может инициировать подключение к этому клиенту, при этом содержимое экрана будет так же передаваться с сервера на клиент.

Но когда выбор инструментов ограничивает тебя, например http, то тогда тот кто ждет подключения будет сервером по определению... повторюсь данные по http точно так же могут передаваться как от клиента к серверу (file upload) так и от сервера к клиенту (file download).