I'm not a native speaker but in my opinion, "knock AT the door" implies the location of the person doing the knocking. In this case, it is somewhere close to the door or "at the door".
Therefore, I tend to think "he knocks at the door" as equivalent to "he stands in front of the door and he knocks"
As for "knock on the door", to me, it has a literal meaning of knocking the hand against the door. This phrase only describes the action of knocking. In common sense, it should therefore imply the location of the person albeit indirectly.
I agree, and our feeling seems to be supported by the Corpus I mentioned in post #7.I am an American English native speaker - 53 years old (not a teacher) and the reality is that these two phrases are functionally the same.
If you have a question about the English language and would like to ask one of our many English teachers and language experts, please click the button below to let us know: