HTTP::Status(3) User Contributed Perl Documentation HTTP::Status(3)

# [SYNOPSIS](#SYNOPSIS)

```
 use HTTP::Status qw(:constants :is status_message);
 if ($rc != HTTP_OK) {
     print status_message($rc), "\n";
 }
 if (is_success($rc)) { ... }
 if (is_error($rc)) { ... }
 if (is_redirect($rc)) { ... }
```

# [DESCRIPTION](#DESCRIPTION)

*HTTP::Status* is a library of routines for defining and classifying HTTP status codes for libwww-perl. Status codes are used to encode the overall outcome of an HTTP response message. Codes correspond to those defined in RFC 2616 and RFC 2518.

# [CONSTANTS](#CONSTANTS)

The following constant functions can be used as mnemonic status code names. None of these are exported by default. Use the ":constants" tag to import them all.

```
   HTTP_CONTINUE                        (100)
   HTTP_SWITCHING_PROTOCOLS             (101)
   HTTP_PROCESSING                      (102)
   HTTP_EARLY_HINTS                     (103)
   HTTP_OK                              (200)
   HTTP_CREATED                         (201)
   HTTP_ACCEPTED                        (202)
   HTTP_NON_AUTHORITATIVE_INFORMATION   (203)
   HTTP_NO_CONTENT                      (204)
   HTTP_RESET_CONTENT                   (205)
   HTTP_PARTIAL_CONTENT                 (206)
   HTTP_MULTI_STATUS                    (207)
   HTTP_ALREADY_REPORTED                (208)
   HTTP_IM_USED                         (226)
   HTTP_MULTIPLE_CHOICES                (300)
   HTTP_MOVED_PERMANENTLY               (301)
   HTTP_FOUND                           (302)
   HTTP_SEE_OTHER                       (303)
   HTTP_NOT_MODIFIED                    (304)
   HTTP_USE_PROXY                       (305)
   HTTP_TEMPORARY_REDIRECT              (307)
   HTTP_PERMANENT_REDIRECT              (308)
   HTTP_BAD_REQUEST                     (400)
   HTTP_UNAUTHORIZED                    (401)
   HTTP_PAYMENT_REQUIRED                (402)
   HTTP_FORBIDDEN                       (403)
   HTTP_NOT_FOUND                       (404)
   HTTP_METHOD_NOT_ALLOWED              (405)
   HTTP_NOT_ACCEPTABLE                  (406)
   HTTP_PROXY_AUTHENTICATION_REQUIRED   (407)
   HTTP_REQUEST_TIMEOUT                 (408)
   HTTP_CONFLICT                        (409)
   HTTP_GONE                            (410)
   HTTP_LENGTH_REQUIRED                 (411)
   HTTP_PRECONDITION_FAILED             (412)
   HTTP_CONTENT_TOO_LARGE               (413)
   HTTP_URI_TOO_LONG                    (414)
   HTTP_UNSUPPORTED_MEDIA_TYPE          (415)
   HTTP_RANGE_NOT_SATISFIABLE           (416)
   HTTP_EXPECTATION_FAILED              (417)
   HTTP_MISDIRECTED REQUEST             (421)
   HTTP_UNPROCESSABLE_CONTENT           (422)
   HTTP_LOCKED                          (423)
   HTTP_FAILED_DEPENDENCY               (424)
   HTTP_TOO_EARLY                       (425)
   HTTP_UPGRADE_REQUIRED                (426)
   HTTP_PRECONDITION_REQUIRED           (428)
   HTTP_TOO_MANY_REQUESTS               (429)
   HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE (431)
   HTTP_UNAVAILABLE_FOR_LEGAL_REASONS   (451)
   HTTP_INTERNAL_SERVER_ERROR           (500)
   HTTP_NOT_IMPLEMENTED                 (501)
   HTTP_BAD_GATEWAY                     (502)
   HTTP_SERVICE_UNAVAILABLE             (503)
   HTTP_GATEWAY_TIMEOUT                 (504)
   HTTP_HTTP_VERSION_NOT_SUPPORTED      (505)
   HTTP_VARIANT_ALSO_NEGOTIATES         (506)
   HTTP_INSUFFICIENT_STORAGE            (507)
   HTTP_LOOP_DETECTED                   (508)
   HTTP_NOT_EXTENDED                    (510)
   HTTP_NETWORK_AUTHENTICATION_REQUIRED (511)
```

# [FUNCTIONS](#FUNCTIONS)

The following additional functions are provided. Most of them are exported by default. The ":is" import tag can be used to import all the classification functions.

[status\_message( $code )](#status_message%28)

The **status\_message()** function will translate status codes to human readable strings. The string is the same as found in the constant names above. For example, status\_message(303) will return "Not Found".

If the $code is not registered in the list of IANA HTTP Status Codes &lt;https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml&gt; then "undef" is returned.

[status\_constant\_name( $code )](#status_constant_name%28)

The **status\_constant\_name()** function will translate a status code to a string which has the name of the constant for that status code. For example, status\_constant\_name(404) will return "HTTP\_NOT\_FOUND".

If the $code is not registered in the list of IANA HTTP Status Codes &lt;https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml&gt; then "undef" is returned.

[is\_info( $code )](#is_info%28)

Return TRUE if $code is an *Informational* status [code (1xx)](/man/os/perl-http-message/code.1xx). This class of status code indicates a provisional response which can't have any content.

[is\_success( $code )](#is_success%28)

Return TRUE if $code is a *Successful* status [code (2xx)](/man/os/perl-http-message/code.2xx).

[is\_redirect( $code )](#is_redirect%28)

Return TRUE if $code is a *Redirection* status [code (3xx)](/man/os/perl-http-message/code.3xx). This class of status code indicates that further action needs to be taken by the user agent in order to fulfill the request.

[is\_error( $code )](#is_error%28)

Return TRUE if $code is an *Error* status code (4xx or 5xx). The function returns TRUE for both client and server error status codes.

[is\_client\_error( $code )](#is_client_error%28)

Return TRUE if $code is a *Client Error* status [code (4xx)](/man/os/perl-http-message/code.4xx). This class of status code is intended for cases in which the client seems to have erred.

This function is **not** exported by default.

[is\_server\_error( $code )](#is_server_error%28)

Return TRUE if $code is a *Server Error* status [code (5xx)](/man/os/perl-http-message/code.5xx). This class of status codes is intended for cases in which the server is aware that it has erred or is incapable of performing the request.

This function is **not** exported by default.

[is\_cacheable\_by\_default( $code )](#is_cacheable_by_default%28)

Return TRUE if $code indicates that a response is cacheable by default, and it can be reused by a cache with heuristic expiration. All other status codes are not cacheable by default. See RFC 7231 - HTTP/1.1 Semantics and Content, Section 6.1. Overview of Status Codes &lt;https://tools.ietf.org/html/rfc7231#section-6.1&gt;.

This function is **not** exported by default.

[status\_codes](#status_codes)

Returns a hash mapping numerical HTTP status code (e.g. 200) to text status messages (e.g. "OK")

This function is **not** exported by default.

# [SEE ALSO](#SEE_ALSO)

IANA HTTP Status Codes &lt;https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml&gt;

# [BUGS](#BUGS)

For legacy reasons all the "HTTP\_" constants are exported by default with the prefix "RC\_". It's recommended to use explicit imports and the ":constants" tag instead of relying on this.

2026-10-25 perl v5.44.0

---

Document: HTTP::Status(3pm) from perl-http-message 7.04-r1 (Chainguard OS)
Source: https://github.com/libwww-perl/HTTP-Message.git
