Should I call it quits??

I've been at my breaking point for a while. It has been a combination of multiple things but I feel like this is just too much. Last night I walked outside to smoke and my 4 year old son followed me. My husband was already out there finishing smoking and the dog was out too. So he gets up to go inside and kept telling the dog to go inside. Well my son thought that he was talking to him and started crying saying he wanted to stay outside with mommy. My husband says I wasn't talking to you I was talking to the dog stop being a little fucking butthole. I stood up and told him to watch his mouth and not to ever talk to him like that. He then told me to shut the fuck up and slammed the door in my face. Keep in mind this was all in front of our son. I got our son a bath then got him to bed and went to bed without telling my husband goodnight. Then this morning when he brought it up I told him I was still mad about last night. But he didn't think that he done anything wrong because that's just how he talks. And he said I didn't call him a fucking butthole. I told him to stop acting like a fucking butthole. Like there is really a difference!? I don't want my son growing up thinking that this is the right way to treat your children and your wife. This is really weighing on my heart. I grew up with both of my parents in my home but they weren't happy. I wanted my children to have both parents and to have a happy home. What are some opinions? To me it's one thing to cuss at me. I'm a grown women and I can stand up for myself but a child? My child! For that matter. Nobody talks to my kids like that idgaf if your their daddy or not.