Question: I have learned that when someone wants to know where a person comes from, one must ask: 

> 
> Woher kommen Sie?
> 
> 
> 

A lot of people have asked me: 

> 
> **Wo kommst du her?**
> 
> 
> 

or 

> 
> Wo kommen Sie her?
> 
> 
> 

Indistinctly. So the question is what is the difference?

Answer: 
The difference is in the meaning, but this can change by adding words.

The first phrase *Woher kommen Sie?* asks
more where you are coming in the moment. For example: *Ich komme gerade aus der Universität*. But it can **sometimes** also have the meaning of the second, depends on the context. So standard meaning: From where do you come in the moment?

In the other phrase *Wo kommen Sie her?* one asks about your origins, town or country. So standard meaning: From which town/country are you?

But the phrases can be modified. If I ask *Woher kommen Sie **eigentlich**?*, then it has the standard meaning of the second. If I ask *Woher kommen Sie **gerade**?* underlines the meaning, where do you come in the moment.

And if I ask *Wo kommen Sie **denn jetzt** her?*, the second has the standard meaning of the first.
Structurally, we have the following correspondences:

* Wo kommst du her? (Or: Wo kommen Sie her?) = Where do you come from? (Or: Where are you coming from?)
* Woher kommst du? (Or: Woher kommen Sie?) = From where do you come? (Or: From where are you coming?)

The German variant in parentheses is the variant using the formal form address, which doesn't exist in English. The English variant in parentheses is the variant using the progressive, which is colloquial and rarely used in German, because its German version is clumsy.

While these two ways of putting it are a priori equivalent, English has a strong preference for the first in general, and particularly when asking for someone's home. In German the distribution is much less skewed, but there is a tendency to use the first structure when asking for someone's home and the second when asking for the origin of a recent movement.