📄 status.pm
字号:
package HTTP::Status;# $Id: Status.pm,v 1.28 2003/10/23 18:56:01 uid39246 Exp $use strict;require 5.002; # becase we use prototypesuse vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);require Exporter;@ISA = qw(Exporter);@EXPORT = qw(is_info is_success is_redirect is_error status_message);@EXPORT_OK = qw(is_client_error is_server_error);$VERSION = sprintf("%d.%02d", q$Revision: 1.28 $ =~ /(\d+)\.(\d+)/);# Note also addition of mnemonics to @EXPORT belowmy %StatusCode = ( 100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', # WebDAV 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-Status', # WebDAV 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Timeout', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Request Range Not Satisfiable', 417 => 'Expectation Failed', 422 => 'Unprocessable Entity', # WebDAV 423 => 'Locked', # WebDAV 424 => 'Failed Dependency', # WebDAV 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', 507 => 'Insufficient Storage', # WebDAV);my $mnemonicCode = '';my ($code, $message);while (($code, $message) = each %StatusCode) { # create mnemonic subroutines $message =~ tr/a-z \-/A-Z__/; $mnemonicCode .= "sub RC_$message () { $code }\t"; # make them exportable $mnemonicCode .= "push(\@EXPORT, 'RC_$message');\n";}# warn $mnemonicCode; # for developmenteval $mnemonicCode; # only one eval for speeddie if $@;# backwards compatibility*RC_MOVED_TEMPORARILY = \&RC_FOUND; # 302 was renamed in the standardpush(@EXPORT, "RC_MOVED_TEMPORARILY");sub status_message ($) { $StatusCode{$_[0]}; }sub is_info ($) { $_[0] >= 100 && $_[0] < 200; }sub is_success ($) { $_[0] >= 200 && $_[0] < 300; }sub is_redirect ($) { $_[0] >= 300 && $_[0] < 400; }sub is_error ($) { $_[0] >= 400 && $_[0] < 600; }sub is_client_error ($) { $_[0] >= 400 && $_[0] < 500; }sub is_server_error ($) { $_[0] >= 500 && $_[0] < 600; }1;__END__=head1 NAMEHTTP::Status - HTTP Status code processing=head1 SYNOPSIS use HTTP::Status; if ($rc != RC_OK) { print status_message($rc), "\n"; } if (is_success($rc)) { ... } if (is_error($rc)) { ... } if (is_redirect($rc)) { ... }=head1 DESCRIPTIONI<HTTP::Status> is a library of routines for defining andclassifying HTTP status codes for libwww-perl. Status codes areused to encode the overall outcome of a HTTP response message. Codescorrespond to those defined in RFC 2616 and RFC 2518.=head1 CONSTANTSThe following constant functions can be used as mnemonic status codenames: RC_CONTINUE (100) RC_SWITCHING_PROTOCOLS (101) RC_PROCESSING (102) RC_OK (200) RC_CREATED (201) RC_ACCEPTED (202) RC_NON_AUTHORITATIVE_INFORMATION (203) RC_NO_CONTENT (204) RC_RESET_CONTENT (205) RC_PARTIAL_CONTENT (206) RC_MULTI_STATUS (207) RC_MULTIPLE_CHOICES (300) RC_MOVED_PERMANENTLY (301) RC_FOUND (302) RC_SEE_OTHER (303) RC_NOT_MODIFIED (304) RC_USE_PROXY (305) RC_TEMPORARY_REDIRECT (307) RC_BAD_REQUEST (400) RC_UNAUTHORIZED (401) RC_PAYMENT_REQUIRED (402) RC_FORBIDDEN (403) RC_NOT_FOUND (404) RC_METHOD_NOT_ALLOWED (405) RC_NOT_ACCEPTABLE (406) RC_PROXY_AUTHENTICATION_REQUIRED (407) RC_REQUEST_TIMEOUT (408) RC_CONFLICT (409) RC_GONE (410) RC_LENGTH_REQUIRED (411) RC_PRECONDITION_FAILED (412) RC_REQUEST_ENTITY_TOO_LARGE (413) RC_REQUEST_URI_TOO_LARGE (414) RC_UNSUPPORTED_MEDIA_TYPE (415) RC_REQUEST_RANGE_NOT_SATISFIABLE (416) RC_EXPECTATION_FAILED (417) RC_UNPROCESSABLE_ENTITY (422) RC_LOCKED (423) RC_FAILED_DEPENDENCY (424) RC_INTERNAL_SERVER_ERROR (500) RC_NOT_IMPLEMENTED (501) RC_BAD_GATEWAY (502) RC_SERVICE_UNAVAILABLE (503) RC_GATEWAY_TIMEOUT (504) RC_HTTP_VERSION_NOT_SUPPORTED (505) RC_INSUFFICIENT_STORAGE (507)=head1 FUNCTIONSThe following additional functions are provided. Most of them areexported by default.=over 4=item status_message( $code )The status_message() function will translate status codes to humanreadable strings. The string is the same as found in the constantnames above. If the $code is unknown, then C<undef> is returned.=item is_info( $code )Return TRUE if C<$code> is an I<Informational> status code. Thisclass of status code indicates a provisional response which can't haveany content.=item is_success( $code )Return TRUE if C<$code> is a I<Successful> status code.=item is_redirect( $code )Return TRUE if C<$code> is a I<Redirection> status code. This class ofstatus code indicates that further action needs to be taken by theuser agent in order to fulfill the request.=item is_error( $code )Return TRUE if C<$code> is an I<Error> status code. The functionreturn TRUE for both client error or a server error status codes.=item is_client_error( $code )Return TRUE if C<$code> is an I<Client Error> status code. This classof status code is intended for cases in which the client seems to haveerred.This function is B<not> exported by default.=item is_server_error( $code )Return TRUE if C<$code> is an I<Server Error> status code. This classof status codes is intended for cases in which the server is awarethat it has erred or is incapable of performing the request.This function is B<not> exported by default.=back=head1 BUGSWished @EXPORT_OK had been used instead of @EXPORT in the beginning.Now too much is exported by default.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -