What's the difference between Listen Server and Dedicated Server?

What’s the difference between Listen Server and Dedicated Server?
When should I use Listen Server, and when shoud I use Dedicated Server. I know how to use Dedicated Server, and it’s works pretty for my app, what’s the purpose of designing Listen Server?

A ListenServer is when another player is hosting the game, acting as the authority. A ListenSever is similar to a DedicatedServer in the sense that it is the authority but different because a player is also in control of the general mechanics of a Character and other game framework instances.

You would use a Dedicated Server to have a dedicated machine host your game.

You would use a Listen Server if you want the game to be hosted by other players in the game/match.

Here is more information on both:

I see, your suggestion is very helpful, thx so much! have a nice day~

Player who is hosting the game have for all ACharacter -> (Character->Role == ROLE_Authority), is it right?

Just for devs who come to this question topic in the future - Authority is always the server - dedicated or listen
EDIT: The answer bellow is more correct, still have lot to learn :’)

Is it though… What happens when the Client spawns / owns the created actor?
Why do we have IsServer / IsLocallyControlled etc if HasAuthority is sufficient?