When Harry is inside the Pensieve he views a meeting between Snape and Dumbledore which leads him to believe not that Snape is on the side of good, but that Dumbledore has been using him all these years. He learns that he is to die and that he will not survive the meeting between he and Voldemort. in the chapter entitled "The Forest Again," Rowling writes:
"Finally, the truth. Lying with his face pressed into the dusty carpet of the office where he had once thought he was learning the secrets of victory, Harry understood at last that he was not supposed to survive. His job was to walk calmly into Death's welcoming arms."
"Dumbledore's betrayal was almost nothing. Of course there had been a bigger play' Harry had simply been too fooling to see it."
Harry won't learn the truth of the whole situation until chapter 35 when he meets Dunbledore at "King's Cross.
Yes, he does realize. The fact he names is last son Albus Severus suggests that Harry most definitely realized that Snape was not a bad man in the war. When Albus Severus worries about being placed in Slytherin, Harry talks about how Snape is one of the bravest men he knew.
Yes, he does.
That was a fairly simple answer.
He do realize that Snape was a good person.
He realizes that Severus Snape was a good man, loyal to Dumbledore, who during his life protected Harry.
Yes, he did realize the fact but only when he witnessed it. He glimpsed all Snape's memories which he had left and when he came to know that he was acting upon the advice of Dumbledore his heart softened alot.Further more Snape's love for Harrry's mother, his desperate desire to protect her from voldemort and his ultimate loyalty towards Dumbledore compelled Harry's heart to admit that Snape was not a bad person rather he was the bravest of all men. That's why he named his son after him i.e "ALBUS SEVERUS" and Snape's character reflected that we cannot believe everything we see. Harry always loathed Snape because of his bitterness and arrogance but his views about him changed a great deal when he saw the original picture inside the pensieve.
I think hes grasps that Snape wasn't a bad guy at all because in the last chapter of the Deathly Hallows he calls his son and his name is Albus Severus. So I don't think that he thought Snape was a bad guy in the end because if he did he wouldn't have called his son after him. He also told his son he was named after the bravest man he knew.
Also, Harry's son's name is Albus Severus.
Why would he name his son after someone he hated, or as you said, "Thought was bad"?
i think that by that time harry is filled with so much hate and anger that even when the truth is right in front of him he cant see it. I think in the end he exepted the truth but never forgave snape.
If you read the last chapter in The Deathly Hallows you will find that Harry is talking to his son. Concerning If there are any good slytherins Harry replies talking about snape "He was the bravest man I had ever met."
So yes I do believe he grasps that concept.