SlideShare a Scribd company logo
Perl
CGI Plack
OGATA Tetsuji (@xtetsuji)
2017/03/04 YAPC::Kansai 2017 OSAKA
https://flic.kr/p/K9v8rD
• OGATA Tetsuji (@xtetsuji)
• http://post.tetsuji.jp/
• Gaiax R&D INFRA
https://flic.kr/p/bhrKfp
• 🔈CGI Plack Perl
• 🔈
• 🔇
• 🔇


CGI
https://flic.kr/p/aWg7jz
• 1991 HTTP HTML
• 1993 NCSA HTTPd CGI
• 1995 Windows 95
• 1999 NTT i-mode
Photo:
• 1990 CGI
•
• CGI
URL CGI
CGI
URL CGI
CGI
• CGI
• 1
• Perl CGI
• 1
•
•
CGI Perl
•
CGI
• C
• 20 21 CGI Perl
CGI Perl
• 1990 ISP(Internet Service Provider)
•
ISP
•
• Perl
CGI Perl
• ISP
Perl CGI
• CGI Perl
• IT CGI Perl
CGI Perl
2000 2008
https://flic.kr/p/5kwk72
• CGI
• CGI
• 2000 2003
https://flic.kr/p/9xG4TJ
Apache mod_perl (1997 )
• mod_perl Apache Perl
Apache
• Apache C
•
• Apache Perl CGI
Perl
Apache mod_perl (1997 )
• 2000
• mod_perl Web 

(by miyagawa -san @ 2001 YARPC 19101 LT)
• mod_perl C10K Problem 

(by takesako -san @ 2004 Linux )
FastCGI (mid-1990s )
•
• CGI FastCGI CGI
• FastCGI
FastCGI (mid-1990s )
•
• Apache mod_fcgi FastCGI
• Perl FCGI
• Apache
SpeedyCGI (1999 )
• FastCGI
Perl SpeedyCGI
• CGI Perl
Common
• CGI shebang 

#!/usr/bin/perl 

#!/usr/bin/speedy
CGI mod_perl FastCGI SpeedyCGI
Apache

Apache 

RFC


Apache API
FastCGI
Specification
Perl 

※
Perl
1991 1996 1990 1999
Perl CGI
• 2007 2008 YAPC::Asia Tokyo
mod_perl FastCGI
• Catalyst WAF (Web Application
Framework)
mod_perl FastCGI
• PSGI / Plack (2009)
mod_perl and FastCGI
• CGI Plack 2
• WAF FastCGI
• Perl Apache mod_perl
• FastCGI 2017
mod_perl
mod_perl and FastCGI
• FastCGI
• mod_perl
• mod_perl Apache (prefork)
• FastCGI mod_perl
mod_perl
• Apache
lighttpd Nginx
• Apache 1 2 Apache API
mod_perl
• mod_perl
Perl
• Java Servlet e.g. Tomcat
• IIS/ASP
• mod_perl e.g. mod_ruby mod_python
• PHP e.g. mod_php php-fpm(FastCGI)
• Ruby on Rails Passenger Unicorn…
https://flic.kr/p/bVwF8R
•
•
prefork

 

I/O
Perl Apache (prefork)

Starlet, Starman
Nginx

Twiggy
• Apache MPM (Multi Processing Module)
prefork
(event) (worker)
• Perl
prefork
prefork
$ ps auxwf
• fork =
•
•
• root
• prefork = fork
prefork
prefork
Parent
prefork
Parent
Child Child Child Child
Process fork
prefork
Parent
Child Child Child Child
Process fork
HTTP
event
event
Master
event
Master
Worker
event
Master
Worker
Worker
HTTP
PSGI / Plack
2009
https://flic.kr/p/726NSK
• Catalyst WAF (Web Application
Framework)
mod_perl FastCGI
• CGI mod_perl FastCGI SpeedyCGI
WAF
• WAF WAF
• Python WSGI (Web
Server Gateway Interface) Ruby Rack
•
•
•
• CGI FastCGI
PSGI Plack
• CGI WSGI
• WSGI PSGI (Perl Server
Gateway Inteface)
Plack
https://flic.kr/p/7n8y6p
https://flic.kr/p/7n8y6p
https://flic.kr/p/7n8y6p
https://flic.kr/p/7n8y6p
https://flic.kr/p/7n8y6p
https://flic.kr/p/7n8y6p
PSGI
• CGI
WAF PSGI
• Perl
Plack
• PSGI
• PSGI
PSGI
• PSGI Plack
Plack
• Plack::Handler::
• PSGI
Plack::Middleware::
PSGI / Plack
WAF
•
•
http://www.kirin.co.jp/company/news/2016/0727_05.html
🍻
http://www.kirin.co.jp/company/news/2016/0727_05.html
2017
https://flic.kr/p/mzF5vS
• Perl PSGI
WAF Plack
• WAF
Mojolicious
Amon2
• Plack::Handler::
•
•
• WAF PSGI
…
•
•
•
•
•
•
•
• mod_perl
•
https://flic.kr/p/5i9taP
https://flic.kr/p/5i9taP
Perl ウェブ開発の中世〜CGI と Plack の間〜

More Related Content

PDF
DevOps with Database on AWS
PDF
Akkaとは。アクターモデル とは。
PDF
Black Belt Online Seminar AWS上の暗号化ソリューション
PDF
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
PPTX
分散トレーシングAWS:X-Rayとの上手い付き合い方
PDF
CloudFrontのリアルタイムログをKibanaで可視化しよう
PDF
20191023 AWS Black Belt Online Seminar Amazon EMR
DevOps with Database on AWS
Akkaとは。アクターモデル とは。
Black Belt Online Seminar AWS上の暗号化ソリューション
[AKIBA.AWS] EC2の基礎 - パフォーマンスを100%引き出すオプション設定 -
[社内勉強会]ELBとALBと数万スパイク負荷テスト
分散トレーシングAWS:X-Rayとの上手い付き合い方
CloudFrontのリアルタイムログをKibanaで可視化しよう
20191023 AWS Black Belt Online Seminar Amazon EMR

What's hot (20)

PDF
単なるキャッシュじゃないよ!?infinispanの紹介
PDF
マルチテナント化で知っておきたいデータベースのこと
PDF
GraphQL入門 (AWS AppSync)
PDF
AWS Black Belt Tech シリーズ 2016 - Amazon CloudFront
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PDF
AWS Black Belt Online Seminar AWS CloudFormation アップデート
PDF
20190911 AWS Black Belt Online Seminar AWS Batch
PDF
Terraform Bootcamp - Azure Infrastructure as Code隊
PPTX
クラウドでも非機能要求グレードは必要だよね
PDF
30分でわかるマイクロサービスアーキテクチャ 第2版
PDF
並行処理初心者のためのAkka入門
PDF
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PDF
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
PPTX
Java でつくる 低レイテンシ実装の技巧
PDF
Amazon Athena 初心者向けハンズオン
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
PDF
What's new in Spring Batch 5
PPTX
Amazon Athena で実現する データ分析の広がり
単なるキャッシュじゃないよ!?infinispanの紹介
マルチテナント化で知っておきたいデータベースのこと
GraphQL入門 (AWS AppSync)
AWS Black Belt Tech シリーズ 2016 - Amazon CloudFront
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
AWS Black Belt Online Seminar AWS CloudFormation アップデート
20190911 AWS Black Belt Online Seminar AWS Batch
Terraform Bootcamp - Azure Infrastructure as Code隊
クラウドでも非機能要求グレードは必要だよね
30分でわかるマイクロサービスアーキテクチャ 第2版
並行処理初心者のためのAkka入門
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Java でつくる 低レイテンシ実装の技巧
Amazon Athena 初心者向けハンズオン
マイクロサービスに至る歴史とこれから - XP祭り2021
What's new in Spring Batch 5
Amazon Athena で実現する データ分析の広がり
Ad

Similar to Perl ウェブ開発の中世〜CGI と Plack の間〜 (20)

PDF
Plack basics for Perl websites - YAPC::EU 2011
KEY
Deploying Plack Web Applications: OSCON 2011
KEY
Plack at OSCON 2010
KEY
PSGI/Plack OSDC.TW
KEY
Plack at YAPC::NA 2010
KEY
Intro to PSGI and Plack
KEY
Plack perl superglue for web frameworks and servers
KEY
Plack - LPW 2009
KEY
Psgi Plack Sfpm
KEY
Psgi Plack Sfpm
PDF
Get your teeth into Plack
PPTX
PSGI and Plack from first principles
KEY
Kansai.pm 10周年記念 Plack/PSGI 入門
ODP
Choosing a Web Architecture for Perl
PDF
AnyEvent and Plack
PPS
Web Development in Perl
PPT
Building dynamic websites with Mod perl and apache
PDF
Apache2 BootCamp : Serving Dynamic Content with CGI
KEY
Le PERL est mort
PDF
Modern Web Development with Perl
Plack basics for Perl websites - YAPC::EU 2011
Deploying Plack Web Applications: OSCON 2011
Plack at OSCON 2010
PSGI/Plack OSDC.TW
Plack at YAPC::NA 2010
Intro to PSGI and Plack
Plack perl superglue for web frameworks and servers
Plack - LPW 2009
Psgi Plack Sfpm
Psgi Plack Sfpm
Get your teeth into Plack
PSGI and Plack from first principles
Kansai.pm 10周年記念 Plack/PSGI 入門
Choosing a Web Architecture for Perl
AnyEvent and Plack
Web Development in Perl
Building dynamic websites with Mod perl and apache
Apache2 BootCamp : Serving Dynamic Content with CGI
Le PERL est mort
Modern Web Development with Perl
Ad

More from 鉄次 尾形 (20)

PDF
Perl入学式 2018年度の報告
PDF
【公開版】AWS基礎 for 新卒エンジニア
PDF
俺のこだわりデスクのその後
PDF
Hokkaido.pmと7年
PDF
WordPress 運用を支える Perl
PDF
障害対応とその防止策
PDF
働きやすい社内を目指す!二酸化炭素計測ツール
PDF
コードの動的生成のお話
PDF
三角関数の加法定理はなぜ難しいのか
PDF
Perlで生きる10年
PDF
穏やかにファイルを削除する続き
PDF
日本全国ぶらりPerl旅
PDF
穏やかにファイルを削除する
PDF
最近のメールまわりのお仕事のお話
PDF
再帰、漸化式、差分方程式とアルゴリズム Gx#20
PDF
超小規模環境のMySQL #mysqlcasual
PDF
mod_perlプログラマーがYAPCで語るレガシー開発論
PDF
東京近郊のPerlコミュニティのご紹介 #lcs2015
PDF
4月16日だからFoursquare 位置情報とライフログ
PDF
設定ファイルに使われそうなデータ形式
Perl入学式 2018年度の報告
【公開版】AWS基礎 for 新卒エンジニア
俺のこだわりデスクのその後
Hokkaido.pmと7年
WordPress 運用を支える Perl
障害対応とその防止策
働きやすい社内を目指す!二酸化炭素計測ツール
コードの動的生成のお話
三角関数の加法定理はなぜ難しいのか
Perlで生きる10年
穏やかにファイルを削除する続き
日本全国ぶらりPerl旅
穏やかにファイルを削除する
最近のメールまわりのお仕事のお話
再帰、漸化式、差分方程式とアルゴリズム Gx#20
超小規模環境のMySQL #mysqlcasual
mod_perlプログラマーがYAPCで語るレガシー開発論
東京近郊のPerlコミュニティのご紹介 #lcs2015
4月16日だからFoursquare 位置情報とライフログ
設定ファイルに使われそうなデータ形式

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
cuic standard and advanced reporting.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PDF
KodekX | Application Modernization Development
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Understanding_Digital_Forensics_Presentation.pptx
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
Unlocking AI with Model Context Protocol (MCP)
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
The AUB Centre for AI in Media Proposal.docx
Mobile App Security Testing_ A Comprehensive Guide.pdf
MIND Revenue Release Quarter 2 2025 Press Release
cuic standard and advanced reporting.pdf
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
Programs and apps: productivity, graphics, security and other tools
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
KodekX | Application Modernization Development
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Perl ウェブ開発の中世〜CGI と Plack の間〜