A safe attack generally means that if I hit you with the attack, and you block it, you can't hit me back before I have time to block or attack you again. There are two types:
100% safe -- which means that there are not enough frames for any character to immediately land a hit on you after they block your attack.
Situationally safe -- which means that due to the pushback from the attack, or the number of frames it takes to recover from blocking it, most characters or certain characters cannot hit you back before you have time to block.
(If you're wondering what "Pushback" means, it's the distance that my attack moves us apart by when you block it).
Punishable (or "unsafe") is the opposite of safe -- it means that if I block your attack, I have time to hit you while you recover, before you can block again. "Full-punishable" generally means I can get a full combo in once I've blocked your attack. Anything that's punishable but not full-punishable means that I can hit you with something after I blocked the attack, but I can't get a full combo started.