Gain a complete understanding of HTTP status codes,
ready states, and the XMLHttpRequest object
For many Web developers, making simple requests and receiving simple responses is all they'll ever need, but for developers who want to master Ajax, a complete understanding of HTTP status codes, ready states, and the XMLHttpRequest object is required. In this article, Brett McLaughlin will show you the different status codes and demonstrate how browsers handle each and he will showcase the lesser-used HTTP requests that you can make with Ajax.
In the last article in this series, I provided a solid introduction to the
XMLHttpRequest object, the centerpiece of an Ajax application that handles requests to a server-side application or script, and also deals with return data from that server-side component. Every Ajax application uses the
XMLHttpRequest object, so you'll want to be intimately familiar with it to make your Ajax applications perform and perform well.
In this article, I move beyond the basics in the last article and concentrate on more detail about three key parts of this request object:
Each of these is generally considered part of the plumbing of a request; as a result, little detail is recorded about these subjects. However, you will need to be fluent in ready states, status codes, and requests if you want to do more than just dabble in Ajax programming. When something goes wrong in your application -- and things always go wrong -- understanding ready states, how to make a HEAD request, or what a 400 status code means can make the difference between five minutes of debugging and five hours of frustration and confusion.
I'll look at HTTP ready states first.
XMLHttpRequest or XMLHttp: A rose by any other name
Microsoft™ and Internet Explorer use an object called
XMLHttp instead of the
XMLHttpRequest object used by Mozilla, Opera, Safari, and most non-Microsoft browsers. For the sake of simplicity, I refer to both of these object types simply as
XMLHttpRequest. This matches the common practice you'll find all over the Web and is also in line with Microsoft's intentions of using
XMLHttpRequest as the name of their request object in Internet Explorer 7.0. (For more on this, look at Part 2 again.)
Validator and Debugger!