But the short term movement is done by the client.
The server is a mere control instance, to adjust
for object-interactions that the client can not predict,
and inaccuracies (by cheating or timeoffsets)

In your game you can assume that there is not cheating,
making the whole development easier.

But it is definitely not done in the classic way:
-client does an input/keystroke
-server receives it, moves the player
-server send it to the client
-client receives it and updates/interpolates position

That would play awfull in a first person game.

---

ANother thing:
by having a full server side movement, you
would allways give the full advantage to the server hosting
player. He would be the only one who could do lag-free
accurate and quick movements, making the game unfair
by stucture.