Sie sind auf Seite 1von 41

Overview of the Web Stack

Mahmoud Said

Speaker

8 years of Web & Mobile Development eSpacing since 2005 Open source advocate Rubyist Command Line freak AKA modsaid

Outline

The Web Web Development Team Request Life Cycle Request Phases

Network Server Browser

API Rich Client Apps Conclusion

The Web

Accessibility of Information Timely Communication A way of living HTML is the Universal Language of the web

The Web

Client (Browser)

Internet (Network)

Server

Web Development Team


Graphic Designer Web Designer Front End Developer Back End Developer System Engineer Administrators Quality Engineer

Why?

Administration System Engineer Common knowledge

Development

Design

Why?

Efficiency Collaboration Better web


Administration System Engineer Common knowledge Development

Design

DevOps

DevOps is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals. Wikipedia

Request Life Cycle

Request Life Cycle (1/8)

Request Life Cycle (2/8)

Request Life Cycle (3/8)

Request Life Cycle (4/8)

Request Life Cycle (5/8)

Request Life Cycle (6/8)

Request Life Cycle (7/8)

Request Life Cycle (8/8)

Request Phases

Request initiation

Firewall & DNS lookup

Network

Server side Processing

Network

Response Rendering

Network

HTTP Basics

HTTP protocol HTTP message structure HTTP Verbs

HTTP Protocol

Application level protocol Text and Media content Request/Response model

HTTP Message Structure


Code Headers Body

HTTP Verbs

GET POST HEAD PUT DELETE OPTIONS TRACE CONNECT

HTTP Status Codes


1xx informational 2xx success 3xx redirection 4xx client errors 5xx server errors

Server

Typical Server Anatomy


Web Server (nginx, apache)

File system (Static Resources)

Application Server (Passenger, thin, mod_php, tomcat,..)

DB Server

Server Anatomy (more components)


Web Server (nginx, apache)

File system (Static Resources)

Other Services Data Stores Indexer, ...

Application Server (Passenger, thin, mod_php, tomcat,..)

Processes (background jobs)

DB Server

Browser (Client)

The Browser

Translates HTML into human friendly format Draws response Environment for client side code

Browser - Rendering

Browser - Rendering 2

Caching

Reusing previously loaded data Can be applied Everywhere

Caching
x=10 double_area = area(x) * 2 triple_area = area(x) * 3 cache = area(x) double_area = cache*2 triple_area=cache *3 Recalculation

Cached

Caching (Network)

HTTP Headers

Request

Request Response Intermediary HTTP Server

Response HTTP Client

Caching (Server)

Cache DB Queries Cache complex data Cache full pages Fragment Caching

Caching (Browser)

Cache content as long as possible Cache references to DOM elements $(input.result).val()

API

Misc Clients Standard format json, xml Enable mobile apps Unleash innovation

Rich Client Applications

Open Discussion

Thank You Mahmoud said mahmoud.said@espace.com.eg @modsaid

Das könnte Ihnen auch gefallen