The last thing you should tolerate from anyone is disrespect. Even if you're at fault, it doesn't give someone the right to disparage you. Part of being an adult is talking civilly with others.
In order to earn people's respect, you need to stand up for yourself, or else you'll continue to fall victim to their insolence.
This applies to everyone in our lives -- strangers, friends, co-workers, partners, even children. I'm in no way suggesting that you return in kind the impertinent behavior. By berating the individual, you're simply stooping down to his or her level.
Rather, we should speak tactfully, if forcefully. It's not always easy to reach that fine line, but we can get there with ample practice.
All of us are deserving of others' respect. If we make a mistake, we have no choice but to deal with the consequences. However, that does not entitle someone to denigrate us, let alone in public or around friends and family. If the other person is the culprit, we ought to follow the same exact approach.
One of the best qualities a person can have is the ability to be diplomatic. We mustn't let our emotions get in the way of good judgment, which happens quite frequently in the heat of the moment.
As contradictory as it may seem, people will respect you more for holding your ground. No one can make you feel bad unless you let them. Remain firm and you will get a lot further in life -- I guarantee it.