æ¦è¦: HTTP::Request::AsCGI ã使ã£ã¦ CGI Application ããã¹ããã
æè¿ blosxom 㨠menta ã¨ãã®è»½é WAF ã足ãã¦äºã§å²ã£ããã㪠CGI Application ãæ¸ãã¦ããã ãã©ã CGI Application ã®ãã¹ãæ¹æ³ã«ã¤ãã¦æè¿ãã¦ãã¦ãã¡ãã£ã¨æºã¾ã£ã¦ããã®ã§ã Blog ã®è¨äºã«ã¾ã¨ãã¦ã¿ãã
CGI Application ã®ãã¹ãã¨ããã¨ãç°¡æãµã¼ããèµ·åãã¦å®è¡ããã¨ãæ¹æ³ã¯ããããããããã ãã©ã
è¦ããã« CGI Application ããã¹ãããã«ã¯ CGI ã®å®è¡ç°å¢ã¨åãç°å¢å¤æ°ãç¨æã㦠CGI script ãå®è¡ããã°ããããã§ã
ãããããã«ããã«ãã¨ããå¦çããã¦ãããã®ãHTTP::Request::AsCGI
ã¨ããã¯ã±ã
ã§ãHTTP::Request::AsCGI
使ã£ã¦ãã¹ããæ¸ãã¨ãããªæãã
#!perl use strict; use warnings; use HTTP::Request; use HTTP::Request::AsCGI; use CGIApp; use Test::More tests => 1; { my $req = HTTP::Request->new( GET => 'http://localhost/foo/bar.html' ); my $ctx = HTTP::Request::AsCGI->new($req)->setup; my $app = CGIApp->new; $app->run_application; my $stdout = join q{\n}, $ctx->stdout->getlines; is( $stdout, 'Hello world' ); }
HTTP::Request::AsCGI
èªä½ã¯ãããªã«ããããããã¨ããã¦ãªãã®ã§ã
HTTP::Request::AsCGI
ã®å¦çèªä½ã¯å®éã®ã³ã¼ãè¦ã¦ããã£ãã»ããæ©ãã¨æãã
ã§ãå®éã«æè¿æ¸ãã¦ããã¹ãã³ã¼ãã§ã¯HTTP::Request::AsCGI
ãã¤ã³ã¹ãã¼ã«ããã¦ãªãã£ããã
ãã¹ããã¹ãããããã¿ãããªã³ã¼ãã追å ãã¦ãã£ããããã
ãã¨ç°å¢å¤æ°ãæå®ãããå ´åã¯ãããªæãã§æå®ã§ããã
{ my $req = HTTP::Request->new( POST => 'http://localhost/foo/bar/baz' ); my $ctx = HTTP::Request::AsCGI->new( $req, $ENV_NAME => $ENV_VALUE )->setup; }
ã¡ãªã¿ã«HTTP::Request::AsCGI
ã®ã¤ã³ã¹ã¿ã³ã¹ããããã¯ã§å²ãã§ãã®ã¯ã
HTTP::Request::AsCGI
ã«ãã¹ãã©ã¯ã¿ãæå®ããã¦ããããã
ã¨ãã£ã¦ãã¾ãã
å¼ç¨å: HTTP::Request::AsCGI 0.5
code:_ sub DESTROY { my $self = shift; $self->restore if $self->setuped && !$self->restored; }
ããã ãã®ã³ã¼ããªã®ã§æåã§å®è¡ãã¦ãåé¡ã¯ãªããã©ã
ã¾ãHTTP::Request::AsCGI
ã使ãã°ãCGI Application ã®ãã¹ãã¯ã ãã¶ã¹ãã¼ãã«æ¸ããã¨æãã
æè¿æ¸ãã¦ããã¹ãã§ããããªããããããã¨ã¯ãã¦ãªããã
ã¨ããããã§ä»æ¥ã¯HTTP::Request::AsCGI
ã®ç´¹ä»ã§ãããã¾ã POD ã¿ãã使ãæ¹ãªãã¦ä¸çºãªãã ãã©ã
ã¡ãªã¿ã«ä¹ãã¶ãã®ããã°ã©ãã³ã°é¢ä¿ã®ã¨ã³ããªãæè¿ããã°ã©ãã³ã°ã復活ãã¦ãã¾ãããã