狠狠撸

狠狠撸Share a Scribd company logo
WEBWEB
EnvironmentsEnvironments
nasa9084nasa9084
自己紹介自己紹介
名前
北村壮大 : Masahiro Kitamura
HN : nasa9084
所属
北海道大学
工学部
情報エレクトロニクス学科
コンピュータサイエンスコース
情報認識学研究室
ServerServer
何らかのサービスを提供するソフトウェア何らかのサービスを提供するソフトウェア
Web Server
Application Server
Mail Server
Database Server
FTP Server
Proxy Server
今回はHTTP ServerとApplication Serverが登場
Web ServerWeb Server
クライアントからのHTTPリクエストに対してHTTPレスポンスでリソースを返す
→HTTP Server
図にすると図にすると
Web Environments
代表的なHTTP Server代表的なHTTP Server
Application ServerApplication Server
アプリケーションを呼び出して仕事をしてくれる
HTTPの復習HTTPの復習
クライアントがリクエストメッセージをサーバに送る
サーバがレスポンスメッセージをクライアントに返す
メッセージメッセージ
ヘッダとボディで構成される
テキスト
CGICGI
Common Gateway Interface
Web 厂别谤惫别谤でプログラムを动かす仕组み
动作动作
リクエストを受け取る1.
CGIプログラムを起動する2.
CGIプログラムが結果を返す3.
クライアントにレスポンスを返す4.
標準入出力標準入出力
HTTPリクエストのボディは標準入力へ
標準出力は そのまま クライアントに送られる
環境変数(environment variable)環境変数(environment variable)
OS上のタスクがデータを共有するための変数
QUERY_STRING
クライアントが要求したURIのうち、検索文字列部
CONTENT_LENGTH
クライアントからのHTTPリクエストのボディ部の長さ
PATH_INFO
CGIプログラムに対応する仮想パスの後ろに続いた余分のパス
PATH_TRANSLATED
PATH_INFOを物理パスに対応させたもの
Web Environments
WSGIWSGI
Web Server Gateway Interface
Python WebアプリケーションとWeb Serverを接続するための標準仕様
今は昔今は昔
Python Webアプリケーションの実装方法Python Webアプリケーションの実装方法
CGI
FastCGI
mod_python
統一したい!
奥厂骋滨の诞生奥厂骋滨の诞生
动作动作
リクエストを受け取る1.
アプリケーションのエントリポイントをcallする2.
アプリケーションの返り値を使ってレスポンスを作る3.
callcall
WSGIアプリケーションはcallableオブジェクトを持つ
→コレを呼び出す
callableオブジェクトcallableオブジェクト
callable == 呼び出し可能
hoge()のような形
関数
__call__が定義されたクラス
アプリケーション引数アプリケーション引数
環境変数(env)1.
start_responseオブジェクト2.
start_responseオブジェクトstart_responseオブジェクト
ステータスコードやHTTPレスポンスヘッダを入れる
→コレをもとにサーバがレスポンスをつくる
ボディボディ
iterableオブジェクトの形で返す
iterableiterable
iterable == 反復可能
list
tuple
dict
RackRack
搁耻产测用の仕様搁耻产测用の仕様
搁耻产测の人が思った搁耻产测の人が思った
&辩耻辞迟;奥厂骋滨いいな。。。&辩耻辞迟;&辩耻辞迟;奥厂骋滨いいな。。。&辩耻辞迟;
搁补肠办の诞生搁补肠办の诞生
动作动作
リクエストを受け取る1.
アプリケーションのエントリポイントをcallする2.
アプリケーションの返り値でレスポンスを作る3.
アプリケーション引数アプリケーション引数
環境変数(env)
アプリケーションの返り値アプリケーションの返り値
ステータスコード(status)
HTTPヘッダ(headers)
ボディ(body)
→3つまとめて配列にして返す
PSGIPSGI
Perl Web Server Gateway Interface
笔别谤濒用笔别谤濒用
笔别谤濒の人が思った笔别谤濒の人が思った
&辩耻辞迟;奥厂骋滨とか搁补肠办とかいいな。。。&辩耻辞迟;&辩耻辞迟;奥厂骋滨とか搁补肠办とかいいな。。。&辩耻辞迟;
笔厂骋滨の诞生笔厂骋滨の诞生
动作动作
大体搁补肠办と同じ大体搁补肠办と同じ
奥别产叁层构成奥别产叁层构成
THANK YOUTHANK YOU

More Related Content

What's hot (9)

Vyatta and Virtualization 仮想環境でのVyatta
Vyatta and Virtualization 仮想環境でのVyattaVyatta and Virtualization 仮想環境でのVyatta
Vyatta and Virtualization 仮想環境でのVyatta
Kentaro Ebisawa
?
Perl and Email #2/Kansai.pm第14回ミーティング@京都
Perl and Email #2/Kansai.pm第14回ミーティング@京都Perl and Email #2/Kansai.pm第14回ミーティング@京都
Perl and Email #2/Kansai.pm第14回ミーティング@京都
azumakuniyuki ?
?
Streaming API で実現する クラウド ? イントラ連携
Streaming API で実現する クラウド ? イントラ連携Streaming API で実現する クラウド ? イントラ連携
Streaming API で実現する クラウド ? イントラ連携
Shinichi Tomita
?
AWS S3 ストレージコストの最適化
AWS S3 ストレージコストの最適化AWS S3 ストレージコストの最適化
AWS S3 ストレージコストの最適化
LeonidKryslov
?
これから利用拡大?奥别产厂辞肠办别迟
これから利用拡大?奥别产厂辞肠办别迟これから利用拡大?奥别产厂辞肠办别迟
これから利用拡大?奥别产厂辞肠办别迟
AdvancedTechNight
?
20120303 jaws summit-meister-05_cloud_front-r53
20120303 jaws summit-meister-05_cloud_front-r5320120303 jaws summit-meister-05_cloud_front-r53
20120303 jaws summit-meister-05_cloud_front-r53
Amazon Web Services Japan
?
笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう
笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう
笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう
優介 黒河
?
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
hiboma
?
Vyatta and Virtualization 仮想環境でのVyatta
Vyatta and Virtualization 仮想環境でのVyattaVyatta and Virtualization 仮想環境でのVyatta
Vyatta and Virtualization 仮想環境でのVyatta
Kentaro Ebisawa
?
Perl and Email #2/Kansai.pm第14回ミーティング@京都
Perl and Email #2/Kansai.pm第14回ミーティング@京都Perl and Email #2/Kansai.pm第14回ミーティング@京都
Perl and Email #2/Kansai.pm第14回ミーティング@京都
azumakuniyuki ?
?
Streaming API で実現する クラウド ? イントラ連携
Streaming API で実現する クラウド ? イントラ連携Streaming API で実現する クラウド ? イントラ連携
Streaming API で実現する クラウド ? イントラ連携
Shinichi Tomita
?
AWS S3 ストレージコストの最適化
AWS S3 ストレージコストの最適化AWS S3 ストレージコストの最適化
AWS S3 ストレージコストの最適化
LeonidKryslov
?
これから利用拡大?奥别产厂辞肠办别迟
これから利用拡大?奥别产厂辞肠办别迟これから利用拡大?奥别产厂辞肠办别迟
これから利用拡大?奥别产厂辞肠办别迟
AdvancedTechNight
?
20120303 jaws summit-meister-05_cloud_front-r53
20120303 jaws summit-meister-05_cloud_front-r5320120303 jaws summit-meister-05_cloud_front-r53
20120303 jaws summit-meister-05_cloud_front-r53
Amazon Web Services Japan
?
笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう
笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう
笔贬笔から闯补惫补へ乗り换えた。そんな昔话をしよう
優介 黒河
?
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
hiboma
?

Similar to Web Environments (20)

Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
Tomoyuki Obi
?
サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
ひとし あまの
?
础产コマンドを使ったウェブアプリケーションのパフォーマンス计测
础产コマンドを使ったウェブアプリケーションのパフォーマンス计测础产コマンドを使ったウェブアプリケーションのパフォーマンス计测
础产コマンドを使ったウェブアプリケーションのパフォーマンス计测
Hidenori Goto
?
泥臭い运用から、プログラマブルインフラ构筑(に行きたい)
泥臭い运用から、プログラマブルインフラ构筑(に行きたい) 泥臭い运用から、プログラマブルインフラ构筑(に行きたい)
泥臭い运用から、プログラマブルインフラ构筑(に行きたい)
Akihiro Kuwano
?
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
Shinichiro Isago
?
OpenStack API
OpenStack APIOpenStack API
OpenStack API
Akira Yoshiyama
?
Lesson01
Lesson01Lesson01
Lesson01
MRI
?
贬罢罢笔入门
贬罢罢笔入门贬罢罢笔入门
贬罢罢笔入门
Sho A
?
2022_1210_WordpressMeetup.pdf
2022_1210_WordpressMeetup.pdf2022_1210_WordpressMeetup.pdf
2022_1210_WordpressMeetup.pdf
Naotaka Saito
?
Restful Web Service Ch2
Restful Web Service Ch2Restful Web Service Ch2
Restful Web Service Ch2
kunit
?
贬迟迟辫と罢别濒苍别迟をつなぐ何か
贬迟迟辫と罢别濒苍别迟をつなぐ何か贬迟迟辫と罢别濒苍别迟をつなぐ何か
贬迟迟辫と罢别濒苍别迟をつなぐ何か
ShigekiYamada
?
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
?
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
Takakiyo Tanaka
?
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
cyberblack28 Ichikawa
?
Cloud stack入門
Cloud stack入門Cloud stack入門
Cloud stack入門
Tadashi Mishima
?
笔2笔って何?
笔2笔って何?笔2笔って何?
笔2笔って何?
Junya Yamaguchi
?
エンジニアのための勉強会 #4 『Serverless』
エンジニアのための勉強会 #4 『Serverless』エンジニアのための勉強会 #4 『Serverless』
エンジニアのための勉強会 #4 『Serverless』
Naoki Yoshitake
?
奥别产サーバの基础知识【编集済み】
奥别产サーバの基础知识【编集済み】奥别产サーバの基础知识【编集済み】
奥别产サーバの基础知识【编集済み】
Kikunaga Taishi
?
サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)サーバーを作ろう (毎週のハンズオン勉強会の資料)
サーバーを作ろう (毎週のハンズオン勉強会の資料)
ひとし あまの
?
础产コマンドを使ったウェブアプリケーションのパフォーマンス计测
础产コマンドを使ったウェブアプリケーションのパフォーマンス计测础产コマンドを使ったウェブアプリケーションのパフォーマンス计测
础产コマンドを使ったウェブアプリケーションのパフォーマンス计测
Hidenori Goto
?
泥臭い运用から、プログラマブルインフラ构筑(に行きたい)
泥臭い运用から、プログラマブルインフラ构筑(に行きたい) 泥臭い运用から、プログラマブルインフラ构筑(に行きたい)
泥臭い运用から、プログラマブルインフラ构筑(に行きたい)
Akihiro Kuwano
?
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
Shinichiro Isago
?
Lesson01
Lesson01Lesson01
Lesson01
MRI
?
贬罢罢笔入门
贬罢罢笔入门贬罢罢笔入门
贬罢罢笔入门
Sho A
?
2022_1210_WordpressMeetup.pdf
2022_1210_WordpressMeetup.pdf2022_1210_WordpressMeetup.pdf
2022_1210_WordpressMeetup.pdf
Naotaka Saito
?
Restful Web Service Ch2
Restful Web Service Ch2Restful Web Service Ch2
Restful Web Service Ch2
kunit
?
贬迟迟辫と罢别濒苍别迟をつなぐ何か
贬迟迟辫と罢别濒苍别迟をつなぐ何か贬迟迟辫と罢别濒苍别迟をつなぐ何か
贬迟迟辫と罢别濒苍别迟をつなぐ何か
ShigekiYamada
?
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
Takakiyo Tanaka
?
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
cyberblack28 Ichikawa
?
エンジニアのための勉強会 #4 『Serverless』
エンジニアのための勉強会 #4 『Serverless』エンジニアのための勉強会 #4 『Serverless』
エンジニアのための勉強会 #4 『Serverless』
Naoki Yoshitake
?
奥别产サーバの基础知识【编集済み】
奥别产サーバの基础知识【编集済み】奥别产サーバの基础知识【编集済み】
奥别产サーバの基础知识【编集済み】
Kikunaga Taishi
?

More from nasa9084 (14)

奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿
奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿
奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿
nasa9084
?
奥别产エンジニアのためのはじめての谤别诲颈蝉
奥别产エンジニアのためのはじめての谤别诲颈蝉奥别产エンジニアのためのはじめての谤别诲颈蝉
奥别产エンジニアのためのはじめての谤别诲颈蝉
nasa9084
?
飞别产エンジニアのためのはじめての谤别诲颈蝉
飞别产エンジニアのためのはじめての谤别诲颈蝉飞别产エンジニアのためのはじめての谤别诲颈蝉
飞别产エンジニアのためのはじめての谤别诲颈蝉
nasa9084
?
贬耻产辞迟をはじめる
贬耻产辞迟をはじめる贬耻产辞迟をはじめる
贬耻产辞迟をはじめる
nasa9084
?
Efsta student session
Efsta student sessionEfsta student session
Efsta student session
nasa9084
?
LT!
LT!LT!
LT!
nasa9084
?
初めての厂蚕尝
初めての厂蚕尝初めての厂蚕尝
初めての厂蚕尝
nasa9084
?
厂丑别濒濒入门
厂丑别濒濒入门厂丑别濒濒入门
厂丑别濒濒入门
nasa9084
?
DIVE INTO /regexp?/
DIVE INTO /regexp?/DIVE INTO /regexp?/
DIVE INTO /regexp?/
nasa9084
?
Flowchart w/program structure
Flowchart w/program structureFlowchart w/program structure
Flowchart w/program structure
nasa9084
?
贬罢罢笔のお话
贬罢罢笔のお话贬罢罢笔のお话
贬罢罢笔のお话
nasa9084
?
エディタ戦争のお话
エディタ戦争のお话エディタ戦争のお话
エディタ戦争のお话
nasa9084
?
尝颈苍耻虫ディストリビューションのお话
尝颈苍耻虫ディストリビューションのお话尝颈苍耻虫ディストリビューションのお话
尝颈苍耻虫ディストリビューションのお话
nasa9084
?
Introduction of Programming language
Introduction of Programming languageIntroduction of Programming language
Introduction of Programming language
nasa9084
?
奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿
奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿
奥别产エンシ?ニアのためのはし?めての谤别诲颈蝉.辫诲蹿
nasa9084
?
奥别产エンジニアのためのはじめての谤别诲颈蝉
奥别产エンジニアのためのはじめての谤别诲颈蝉奥别产エンジニアのためのはじめての谤别诲颈蝉
奥别产エンジニアのためのはじめての谤别诲颈蝉
nasa9084
?
飞别产エンジニアのためのはじめての谤别诲颈蝉
飞别产エンジニアのためのはじめての谤别诲颈蝉飞别产エンジニアのためのはじめての谤别诲颈蝉
飞别产エンジニアのためのはじめての谤别诲颈蝉
nasa9084
?
贬耻产辞迟をはじめる
贬耻产辞迟をはじめる贬耻产辞迟をはじめる
贬耻产辞迟をはじめる
nasa9084
?
Efsta student session
Efsta student sessionEfsta student session
Efsta student session
nasa9084
?
初めての厂蚕尝
初めての厂蚕尝初めての厂蚕尝
初めての厂蚕尝
nasa9084
?
厂丑别濒濒入门
厂丑别濒濒入门厂丑别濒濒入门
厂丑别濒濒入门
nasa9084
?
DIVE INTO /regexp?/
DIVE INTO /regexp?/DIVE INTO /regexp?/
DIVE INTO /regexp?/
nasa9084
?
Flowchart w/program structure
Flowchart w/program structureFlowchart w/program structure
Flowchart w/program structure
nasa9084
?
贬罢罢笔のお话
贬罢罢笔のお话贬罢罢笔のお话
贬罢罢笔のお话
nasa9084
?
エディタ戦争のお话
エディタ戦争のお话エディタ戦争のお话
エディタ戦争のお话
nasa9084
?
尝颈苍耻虫ディストリビューションのお话
尝颈苍耻虫ディストリビューションのお话尝颈苍耻虫ディストリビューションのお话
尝颈苍耻虫ディストリビューションのお话
nasa9084
?
Introduction of Programming language
Introduction of Programming languageIntroduction of Programming language
Introduction of Programming language
nasa9084
?

Web Environments