Enviar pesquisa
Carregar
Rack
•
Transferir como KEY, PDF
•
0 gostou
•
1,063 visualizações
S
shaokun
Seguir
广州 ruby 爱好者聚会上五分钟 topic http://github.com/shaokun/rack-demo
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 21
Baixar agora
Recomendados
HTTPS and Ansible
HTTPS and Ansible
Jeff Geerling
Clack: glue for web apps
Clack: glue for web apps
fukamachi
Woo: Writing a fast web server
Woo: Writing a fast web server
fukamachi
Ansible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL Meetup
Jeff Geerling
Server Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.js
Jeff Geerling
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Fastly
High Performance Drupal
High Performance Drupal
Jeff Geerling
Ansible
Ansible
Vishal Yadav
Recomendados
HTTPS and Ansible
HTTPS and Ansible
Jeff Geerling
Clack: glue for web apps
Clack: glue for web apps
fukamachi
Woo: Writing a fast web server
Woo: Writing a fast web server
fukamachi
Ansible 101 - Presentation at Ansible STL Meetup
Ansible 101 - Presentation at Ansible STL Meetup
Jeff Geerling
Server Check.in case study - Drupal and Node.js
Server Check.in case study - Drupal and Node.js
Jeff Geerling
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Fastly
High Performance Drupal
High Performance Drupal
Jeff Geerling
Ansible
Ansible
Vishal Yadav
Docker With Asp.net Core
Docker With Asp.net Core
Fatih Şimşek
Provisioning Rails Servers with Ansible
Provisioning Rails Servers with Ansible
Radamanthus Batnag
Introduction to CQ5
Introduction to CQ5
Michele Mostarda
RESTFul development with Apache sling
RESTFul development with Apache sling
Sergii Fesenko
Ci of js and apex using jasmine, phantom js and drone io df14
Ci of js and apex using jasmine, phantom js and drone io df14
Kevin Poorman
Drupal and Elasticsearch
Drupal and Elasticsearch
Nikolay Ignatov
Ansible E2E Testing
Ansible E2E Testing
Roberto Perez-Rodriguez
Lisp in the Cloud
Lisp in the Cloud
Mike Travers
Boulder dev ops-meetup-11-2012-rundeck
Boulder dev ops-meetup-11-2012-rundeck
Will Sterling
Ansible + WordPress
Ansible + WordPress
Alan Lok
Rails with mongodb
Rails with mongodb
Kosuke Matsuda
Continuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and Salt
Anirban Saha
Ansible Case Studies
Ansible Case Studies
Greg DeKoenigsberg
Drupal, Android and iPhone
Drupal, Android and iPhone
Alexandru Badiu
What is new in icinga2
What is new in icinga2
Icinga
Steamlining your puppet development workflow
Steamlining your puppet development workflow
Tomas Doran
Understanding salt modular sub-systems and customization
Understanding salt modular sub-systems and customization
jasondenning
Scaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
dimakovalenko
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStack
Craig Sebenik
In-browser storage and me
In-browser storage and me
Jason Casden
Git flow
Git flow
shaokun
Rest Ruby On Rails
Rest Ruby On Rails
shaokun
Mais conteúdo relacionado
Mais procurados
Docker With Asp.net Core
Docker With Asp.net Core
Fatih Şimşek
Provisioning Rails Servers with Ansible
Provisioning Rails Servers with Ansible
Radamanthus Batnag
Introduction to CQ5
Introduction to CQ5
Michele Mostarda
RESTFul development with Apache sling
RESTFul development with Apache sling
Sergii Fesenko
Ci of js and apex using jasmine, phantom js and drone io df14
Ci of js and apex using jasmine, phantom js and drone io df14
Kevin Poorman
Drupal and Elasticsearch
Drupal and Elasticsearch
Nikolay Ignatov
Ansible E2E Testing
Ansible E2E Testing
Roberto Perez-Rodriguez
Lisp in the Cloud
Lisp in the Cloud
Mike Travers
Boulder dev ops-meetup-11-2012-rundeck
Boulder dev ops-meetup-11-2012-rundeck
Will Sterling
Ansible + WordPress
Ansible + WordPress
Alan Lok
Rails with mongodb
Rails with mongodb
Kosuke Matsuda
Continuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and Salt
Anirban Saha
Ansible Case Studies
Ansible Case Studies
Greg DeKoenigsberg
Drupal, Android and iPhone
Drupal, Android and iPhone
Alexandru Badiu
What is new in icinga2
What is new in icinga2
Icinga
Steamlining your puppet development workflow
Steamlining your puppet development workflow
Tomas Doran
Understanding salt modular sub-systems and customization
Understanding salt modular sub-systems and customization
jasondenning
Scaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
dimakovalenko
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStack
Craig Sebenik
In-browser storage and me
In-browser storage and me
Jason Casden
Mais procurados
(20)
Docker With Asp.net Core
Docker With Asp.net Core
Provisioning Rails Servers with Ansible
Provisioning Rails Servers with Ansible
Introduction to CQ5
Introduction to CQ5
RESTFul development with Apache sling
RESTFul development with Apache sling
Ci of js and apex using jasmine, phantom js and drone io df14
Ci of js and apex using jasmine, phantom js and drone io df14
Drupal and Elasticsearch
Drupal and Elasticsearch
Ansible E2E Testing
Ansible E2E Testing
Lisp in the Cloud
Lisp in the Cloud
Boulder dev ops-meetup-11-2012-rundeck
Boulder dev ops-meetup-11-2012-rundeck
Ansible + WordPress
Ansible + WordPress
Rails with mongodb
Rails with mongodb
Continuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and Salt
Ansible Case Studies
Ansible Case Studies
Drupal, Android and iPhone
Drupal, Android and iPhone
What is new in icinga2
What is new in icinga2
Steamlining your puppet development workflow
Steamlining your puppet development workflow
Understanding salt modular sub-systems and customization
Understanding salt modular sub-systems and customization
Scaling and Managing Selenium Grid
Scaling and Managing Selenium Grid
Introduction to Systems Management with SaltStack
Introduction to Systems Management with SaltStack
In-browser storage and me
In-browser storage and me
Destaque
Git flow
Git flow
shaokun
Rest Ruby On Rails
Rest Ruby On Rails
shaokun
More to RoC weibo
More to RoC weibo
shaokun
iOS 图片浏览器 DIY
iOS 图片浏览器 DIY
shaokun
Rails web api 开发
Rails web api 开发
shaokun
VIM for the PHP Developer
VIM for the PHP Developer
John Congdon
WebSocket 实时推特流
WebSocket 实时推特流
shaokun
Rails Engine | Modular application
Rails Engine | Modular application
mirrec
Namespace less engine
Namespace less engine
shaokun
Destaque
(9)
Git flow
Git flow
Rest Ruby On Rails
Rest Ruby On Rails
More to RoC weibo
More to RoC weibo
iOS 图片浏览器 DIY
iOS 图片浏览器 DIY
Rails web api 开发
Rails web api 开发
VIM for the PHP Developer
VIM for the PHP Developer
WebSocket 实时推特流
WebSocket 实时推特流
Rails Engine | Modular application
Rails Engine | Modular application
Namespace less engine
Namespace less engine
Semelhante a Rack
CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009
Jason Davies
Rails Performance
Rails Performance
Wen-Tien Chang
Node js quick-tour_v2
Node js quick-tour_v2
tianyi5212222
Node js quick-tour_v2
Node js quick-tour_v2
http403
Node js quick tour v2
Node js quick tour v2
Wyatt Fang
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
Soroush Dalili
introduction to node.js
introduction to node.js
orkaplan
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentation
Stuart (Pid) Williams
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
Brian Huff
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Amazon Web Services Japan
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Alona Mekhovova
Rest ful tools for lazy experts
Rest ful tools for lazy experts
ColdFusionConference
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
Ortus Solutions, Corp
Building APIs with NodeJS on Microsoft Azure Websites - Redmond
Building APIs with NodeJS on Microsoft Azure Websites - Redmond
Rick G. Garibay
Hacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sites
Mikhail Egorov
Доклад Михаила Егорова на PHDays
Доклад Михаила Егорова на PHDays
ru_Parallels
Apache Cookbook - TekX Chicago 2010
Apache Cookbook - TekX Chicago 2010
Rich Bowen
GitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by Scala
takezoe
Ricardo Sanchez - Ruby projects of interest for devops
Ricardo Sanchez - Ruby projects of interest for devops
SVDevOps
Ruby projects of interest for DevOps
Ruby projects of interest for DevOps
Ricardo Sanchez
Semelhante a Rack
(20)
CouchDB for Web Applications - Erlang Factory London 2009
CouchDB for Web Applications - Erlang Factory London 2009
Rails Performance
Rails Performance
Node js quick-tour_v2
Node js quick-tour_v2
Node js quick-tour_v2
Node js quick-tour_v2
Node js quick tour v2
Node js quick tour v2
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
introduction to node.js
introduction to node.js
Groovy & Grails eXchange 2012 vert.x presentation
Groovy & Grails eXchange 2012 vert.x presentation
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Rest ful tools for lazy experts
Rest ful tools for lazy experts
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
Building APIs with NodeJS on Microsoft Azure Websites - Redmond
Building APIs with NodeJS on Microsoft Azure Websites - Redmond
Hacking Adobe Experience Manager sites
Hacking Adobe Experience Manager sites
Доклад Михаила Егорова на PHDays
Доклад Михаила Егорова на PHDays
Apache Cookbook - TekX Chicago 2010
Apache Cookbook - TekX Chicago 2010
GitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by Scala
Ricardo Sanchez - Ruby projects of interest for devops
Ricardo Sanchez - Ruby projects of interest for devops
Ruby projects of interest for DevOps
Ruby projects of interest for DevOps
Último
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
ThousandEyes
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Neo4j
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
LBM Solutions
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
Último
(20)
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Rack
1.
Rack
Shaokun Wu shaokun@kudelabs.com
2.
•
web framework • frameworkless web application
3.
•
web servers WEBrick, Mongrel, Thin, Passenger... • web server handlers
4.
??? •n
frameworks •m web servers • web server handlers
5.
n*m
6.
n * m
=> n + m
7.
HTTP Request => Response
8.
Request • GET /
HTTP/1.1 User-Agent: curl/7.12.2 ... Host: ruby-lang.org Pragma: no-cache Accept: */*
9.
Response •
HTTP/1.1 302 Found • Date: Sat, 27 Oct 2007 10:07:53 GMT Server: Apache/2.0.54 (Debian GNU/Linux) mod_ssl/2.0.54 OpenSSL/0.9.7e Location: http://www.ruby-lang.org/ Content-Length: 209 Content-Type: text/html; charset=iso-8859-1 • <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a href="http://www.ruby-lang.org/">here</ a>.</p> </body></html>
10.
Response • Status Code
to_i • Headers each yields key-value pairs • Body each yields strings
11.
[status, headers, body]
12.
Rack • •
HTTP Ruby API
13.
Hello Rack! •
lambda { |env| [200, # Status Code {"Content-Type"=>"text/plain"}, # Headers ["Hello, world!"]] # Body }
14.
Rack Handlers •
CGI • EventedMongrel • FastCGI • LSWS • Mongrel • SCGI • SwiftipliedMongrel • Thin • WEBrick
15.
•
Rack::Cascade • Rack::CommonLogger • Rack::Lint • Rack::Recursive • Rack::Reloader • Rack::ShowException • Rack::ShowStatus • Rack::Static • Rack::URLMap • http://coderack.org/middlewares
16.
Let’s code!
17.
Hello Rack!
18.
Response Timer
19.
.NET or J2EE in
one second
20.
No IE 6
Please!!!!!!!!!!
21.
Thanks! shaokun@kudelabs.com
Notas do Editor
Baixar agora