Enviar búsqueda
Cargar
Rack
•
0 recomendaciones
•
1,063 vistas
S
shaokun
Seguir
广州 ruby 爱好者聚会上五分钟 topic http://github.com/shaokun/rack-demo
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 21
Descargar ahora
Descargar para leer sin conexión
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
Más contenido relacionado
La actualidad más candente
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
La actualidad más candente
(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
Destacado
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
Destacado
(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
Similar 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
http403
Node js quick tour v2
Node js quick tour v2
Wyatt Fang
Node js quick-tour_v2
Node js quick-tour_v2
tianyi5212222
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
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
Ortus Solutions, Corp
Rest ful tools for lazy experts
Rest ful tools for lazy experts
ColdFusionConference
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
Ruby projects of interest for DevOps
Ruby projects of interest for DevOps
Ricardo Sanchez
Ricardo Sanchez - Ruby projects of interest for devops
Ricardo Sanchez - Ruby projects of interest for devops
SVDevOps
Similar 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
RESTFul Tools For Lazy Experts - CFSummit 2016
RESTFul Tools For Lazy Experts - CFSummit 2016
Rest ful tools for lazy experts
Rest ful tools for lazy experts
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
Ruby projects of interest for DevOps
Ruby projects of interest for DevOps
Ricardo Sanchez - Ruby projects of interest for devops
Ricardo Sanchez - Ruby projects of interest for devops
Último
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
Brian Pichman
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
DianaGray10
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
infogdgmi
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
DianaGray10
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IES VE
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
UiPathCommunity
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
David Newbury
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
Asko Soukka
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
Adam Moalla
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
Bachir Benyammi
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
dgelyza
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
Mahmoud Rabie
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
Tarek Kalaji
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Aijun Zhang
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
Md Hossain Ali
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Commit University
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
DianaGray10
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
DianaGray10
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
SkyPlanner
Último
(20)
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
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 del editor
Descargar ahora