General questions about the dedicated server functionality

I’m trying to figure out how the dedicated server works.
I understand that you build a client, and then you need to compile a server.
But my question is: how exactly do you separate functionality between the client and the server?
I’d reasonably want the client to deal with visual stuff, whereas the server should do all the logic.
This isn’t a specific question on how to do it. I just want to understand the theory behind the UE server-client.


This is the best tutorial to follow for building your dedicated server: Dedicated Server Guide (Windows & Linux)

Basically the theory behind it is the basic understanding of Replication … Replication is what it does. The best tutorial in understanding replication is the following tutorials: Blueprint Networking Tutorials