\documentclass[11pt]{article}
\usepackage{times}
\usepackage{graphics}
\usepackage{i-d}
\usepackage[dvips]{changebar}

\title{Assignment of Status Codes for HTTP and HTTP-Derived Protocols}
\author{H. Schulzrinne}
\shorttitle{sip}
\filename{schulzrinne-http-status-01}
\wg{HTTP WG}
\address{Columbia U.}
\pubdate{\today}
\expires{July 1, 1998}
\newcommand{\motivation}[1]{\begin{quotation}\begin{footnotesize}#1\end{footnotesize}\end{quotation}}

\begin{document}
\maketitle
\begin{abstract}
A number of other protocols may make use of HTTP syntax and facilities;
this memo defines a mechanism for IANA to allocate status codes.
\end{abstract}

\section{Status Codes}

HTTP status codes are defined in RFC 2068 \cite{rfc2068}, Section 10. 
Other protocols that share HTTP syntax and standard status codes may
need to add additional status codes.  In addition, implementors may want
to define new status codes for HTTP in an interoperable manner. This
memo establishes a mechanism that charges the Internet Assigned Numbers
Authority (IANA) to manage the HTTP status code space under the heading
``Status codes for HTTP and HTTP-derived protocols''.

We use the notation ``x00--x49'' to indicate status codes having any
digit as their first digit and the two-digit numbers zero through 49 as
their second and third digits.  Examples include the range 400 through
449.

IANA manages the status codes of ``HTTP and HTTP-derived protocols''
under the following guidelines:

\begin{itemize}
\item Status codes x00 through x49 are reserved for general use of HTTP
and defined in HTTP-related RFCs or through registration with IANA, in
consultation with the HTTP working group, if available, or the IETF
Applications Area director. 

\item IANA may be asked by authors of IETF standards-track HTTP-derived
protocols to assign blocks of five or ten consecutive status codes
across all first digits.  Each such protocol must use the same range
across all first digits.

\item Due to the limited per-protocol space, private extensions SHOULD be
registered through the protocol number space, with IANA soliciting after
advice and consultation with the working group ``owning'' the protocol. 
If there is no working group, the area director is to be consulted.

\item Any extension that is not part of a standards-track protocol must
be documented as an RFC within one year of assignment.  Otherwise, the
assigned number reverts to general use.

\item HTTP uses the first digits 1 through 5, inclusive.  Protocols
other than HTTP may use first digits other than these if they define
classes of status codes that do not map into the following
classification:

\begin{description}
\item[1xx:] This class of status code indicates a provisional response,
typically indicating progress in serving the request.  The server will
deliver another final response. 

\item[2xx:] This class of status code indicates that the client's
request was successfully received, understood, and accepted.

\item[3xx:] This class of status code indicates that further action
needs to be taken by the user agent in order to fulfill the request. The
response provides indication as to what actions the client may take,
including contacting another server.

\item[4xx:] The 4xx class of status code is intended for cases in which
the client seems to have erred.  The client should not issue the same
request again.  (However, a similar request for the same resource may be
issued after adding additional information, for example, authorization
or payment information.) The condition reported may be temporary or
permanent.

\item[5xx:] Response status codes beginning with the digit "5" indicate
cases in which the server is aware that it has erred or is incapable of
performing the request. 

\end{description}

\end{itemize}

\section{Alternatives}

It has been suggsted to use four-digit status codes, with the first
digit indicating the protocol, with 0 implied and reserved for HTTP. 
(It is advantageous to maintain the significance of the digit position
so that status code / 100 yields the class and status code \% 100 the
sub-code.)

\section{Author's Address}

\begin{flushleft}
Henning Schulzrinne\\
Columbia University\\
1214 Amsterdam Avenue\\
New York, MY 10027\\
USA\\
electronic mail: {\sf schulzrinne@cs.columbia.edu}
\end{flushleft}

\bibliographystyle{ieeetr}
\bibliography{string,rfc-short}

\end{document}
