I think he thinks that you are being ungrateful and unappreciative of the things he is doing or has done for you and he gets defensive when you say you are unhappy because he is doing the best he can. The verbal abuse is not a good thing. Try telling him you need to talk and that you just need him to listen. You may want to say something like "I really need to talk about this situation. It will make me feel better about what is going on." Let him know that you are not trying to argue but that he is helping you by simply being interested and by listening to your feelings and that you are not unappreciative and then go on to tell him all things you are grateful for with him. If he know that you are appreciative of the things he has done he will be less angry. If it has something to do with him, focus on your feelings and not on his faults. Instead of saying "You did not..." say "I feel angry that..." If you blame him, it will cause him to defend his actions even if he knows he is wrong. The biggest downfall of failing to talk with people especially those close to you, is not the message you are trying to relay, but the way it is being interpreted. We have to make sure that when we do communicate with our spouses, that we send clear signals without conflict to get our message through. To become effective with doing this we must gain a little understanding in regards XXXXX XXXXX we say things.
To be successful in how to communicate with your spouse, I think you need to be truthful and honest with your feelings and say what you mean, and offer reassurance to the understanding of what we are trying to get across. Misunderstanding is another huge downfall with being able to have a pleasant conversation with your spouse and although verbal abuse is always leveled at you, it is never actually about you. What it is about is your husband's need to shake off his feelings of feeling inadequate, for a while at least. He may be using this negative talk to relieve stresses from his everyday life and decided to use you as a sounding board and what you have to realize is that no matter how much you sugar coat things, verbal abuse is verbal abuse and it can hurt way more than physical abuse because it gets embedded into our brains so much that we actually believe what we are hearing after some time.
What you are going to need desperately is marriage counseling because a marriage counselor can make your husband see what his words are doing to not only you but to the marriage. He may feel resentful because you are complaining and he feels that he has given you the world and still you are not satisfied so what you will need to do is show him that you do appreciate what he has done and that you are not trying to complain about the things he has done for you but only get you feelings known. The counselor can also teach you different techniques to get him to listen without becoming defensive.
No you shouldn't just put up or shut up that is old time thinking where the wife was seen and not heard. Love should not hurt no matter whether it's mental or physical abuse and if your husband blames you for his outburst and verbal abuse then this must be some type of learned behavior he learned from someone else and has taken it out on you. You will have to tell him that if it does not stop you will leave him because you shouldn't have to be belittled and yelled and screamed at to get his point across that is why counseling is going to be very important to your marriage and whether it can last or not. You should never have to condone or put up with verbal abuse.