Developing applications that work across the Internet requires knowledge of protocols. To actually debug any communications or protocol errors you need to be aware of status codes. For the web you need to know and understand http Status codes and in our case how IIS responds with status codes. For e-mail you need to be aware of the SMTP and POP status codes. Remember when you send a communication across the Internet you are really doing an old fashion telnet session.
I used to amaze folks by sending an e-mail by typing commands at the command prompt. I learned to do this by trying to learn how SPAM is sent and finding holes in the SMTP protocol that needed to be plugged to eliminate much of the SPAM I see each day.
I was able to get a handle on the SMTP protocol status codes and commands to be able to do this. The reason you need to be aware of status codes is they will tell you what the server or client (whichever is on the other end) thought of the last thing you said. Can you imagine if you could get just a simple numeric response to indicate what your wife thought of the last thing you said? That would be great. Status codes do just that for us.
With e-mail they will indicate if we made a protocol error, or let us know if the server thinks we are SPAM, or maybe what we need to do next. With the web it lets us know if the request was good, or bad and why it was bad. A 404 Status code lets us know the resource we requested did not exist, and a 200 lets us know all was good with the request and this is what you asked for.
So when ever you do any sort of application that communicates in anyway across the wire, learn the full stack of status codes and your application will be better and your enjoyment will be too.