Appendix F. HTTP Status Codes
The HyperText Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless protocol that can be used for many tasks (e.g., name servers and distributed object management systems) beyond its use for hypertext through extension of its request methods, error codes, and headers. An important feature of HTTP is the typing and negotiation of data representation, which allows systems to be built independently of the data being transferred.
HTTP/1.0 is described in RFC 1945. HTTP/1.1 is the latest version of the specification, and as of this writing HTTP/1.1 is covered in RFC 2616.
Only a small subset of HTTP response codes usually is used when writing mod_perl applications, but sometimes you need to know others as well. We will list the codes here. Their names are fairly self-explanatory, but you can find extended explanations in the appropriate RFC (see section 9 in RFC 1945 and section 10 in RFC 2616). You can always find the latest links to these RFCs at the World Wide Web Consortium's site, http://www.w3.org/Protocols/.
While HTTP/1.1 is widely supported, HTTP/1.0 still remains the mainstream standard. Therefore, we will supply a summary for each version, including the corresponding Apache constants.
In mod_perl, these constants can be accessed via the Apache::Constants package (e.g., to access the HTTP_OK constant, use Apache::Constants::HTTP_OK). See the Apache::Constants manpage for more information.
F.1. HTTP/1.0 Status Codes
Successful 2xx: 200 HTTP_OK 201 HTTP_CREATED 202 HTTP_ACCEPTED 204 HTTP_NO_CONTENT Redirection 3xx: 300 HTTP_MOVED_PERMANENTLY 301 HTTP_MOVED_TEMPORARILY 302 HTTP_SEE_OTHER 304 HTTP_NOT_MODIFIED Client Error 4xx: 400 HTTP_BAD_REQUEST 401 HTTP_UNAUTHORIZED 403 HTTP_FORBIDDEN 404 HTTP_NOT_FOUND Server Error 5xx: 500 HTTP_INTERNAL_SERVER_ERROR 501 HTTP_NOT_IMPLEMENTED 502 HTTP_BAD_GATEWAY 503 HTTP_SERVICE_UNAVAILABLE
Copyright © 2003 O'Reilly & Associates. All rights reserved.