I finally got some updates done to the main web site (http://www.cmagic.biz). Mostly I added a few products (http://www.cmagic.biz/products.php) for sale. Keeping busy is good, but some times you get so busy that you don’t have time to do simple things like make your products available for sale.
I am happy to place my WebSpy utility online and make it available for a very small fee. This utility was invaluable when I was learning the HTTP protocol years ago. When I first got into web programming, I had a few holes in my knowledge. I understood how to make a form, and how to use the cookie cutter approach to retrieve submitted information, but I didn’t understand the interaction between the browser and the server and how that information got from one location to the other. As some one who can’t stand to not know what is going on under the hood (its a sickness, I know..) I decided to write my own HTTP server.
As some one who came from a background of application design (non web content) I had already written a few network protocols myself and understood many of the common ways to transfer information from one point to another. The HTTP protocol was surprisingly simple. The hardest part of writing the application was viewing the requests and responses in transit. Since you don’t actually see the HTTP headers when viewing a page in a web browser, it was difficult to tell if my code was working correctly. Hence, WebSpy was born. A simple socket based application that allows you to connect or receive connections from or to anywhere. Once the connection is made, you can send or view the raw data. This allowed me to make HTTP requests directly to the HTTP server, and to view the information sent via a real browser session by pointing my forms viewed in a web browser to the WebSpy application.
Later, I thought it would be a good idea to load test my web sites to see how many requests they could handle on the given hardware. This feature found its way into the WebSpy utility also. And, just because I like to do things myself, I later added the port scanning capabilities to the product. What is next? Who knows, you tell me 🙂
The real point of this discussion is that if you really want to know what is going on, you need to investigate things. I wanted to go a step further and learn exactly how things worked from top to bottom. This resulted in the birth of two products. Should you go out and create your own WebSpy and HTTP server? If you have the time, desire, or know how, go for it, but if you don’t, then don’t ignore the benefit of knowing how the protocol, who’s existence has provided you with a job and food on your table, works inside and out. Take these words to heart, even if you don’t buy my product, look a little deeper, gain a better understanding for the environment you work in, it will pay off in the long run.
Computer Magic And Software Design