SlideShare a Scribd company logo
Introduction To Web Application

              Alex
Topic

    No programming detail

    Not for some specific programming
    language

    Focus on what it is

    Focus on how it works
Outline

    Client Server Communication

    HTTP

    Static Web

    Web Server

    Client Side Script

    Dynamic Web

    Application Server

    Beyond This
Client Server Communication

    Server listen

    Client send a request

    Server send a response back

    OSI Stack
      –   Application Layer
      –   Transport Layer
      –   Network Layer
      –   Data Link Layer
      –   Physical Layer
HTTP

    Application Layer Protocol

    URL As Address

    Address Stack
      –   HTTP: URL (domain + path)
      –   TCP: ip + port
      –   IP: ip
      –   802.11x: mac address
      –   Hardware: broadcast
HTTP

    HTTP Request
      –   Header (Key-Value Text)
           •   Address (Host, Get or Post)
           •   Describe Body
           •   Describe Client
           •   Other Stuff
      –   Body
           •   Post Parameters (key=value)
           •   Files
           •   Carry whatever you want
HTTP

    HTTP Response
      – Header (Text Key Value Pairs)
           • Response Status (2xx 3xx 4xx 5xx)
           • Describe Body
           • Other Stuff
      – Body
           • Browser case : HTML js css
           • Download case : anything you downloaded
Static Web

    Document Sharing

    Connection between Documents – Hyper
    Link

    Document is text and more than text

    Hyper Text = text + hyper link

    HTML = Hyper Text + style

    Hyper Text Markup Language
Web Server

    Manage static document files

    Give client what it ask for

    Apache Lighttpd Nginx etc

    How it works
      – Listen on a port (default 80)
      – Accept a http request
      – Locate the document client wants
      – Send that back to client as a http response
Client Side Script

    More than display and link
      – Animation
      – Response user action immediately
      – Some logic can run on client

    Browser can run
      – Javascript
      – Flash
      – Sliver light
      – VB Script, Java Applet, ActiveX, Extensions
Dynamic Web

    Think about a forum
      – User generate content
      – Topics changes all the time

    You can not do this static way
      – We need more then static files
      – We need to run a program when we accept
         a http request to generate response

    How?
Dynamic Web

    New Way
     – Listen to a port (default 80)
     – Accept a http request
     – Processing request
          • If static content, return that stupid file
          • If dynamic run a program return that result
     – Send result back as a http response
Application Server

    More then web server
      – An URL can map to a static file
      – An URL can map to a processing logic

    Ancient Way
      – CGI just run a executable program and
         return the standard output
      – Fast CGI : thread based
Application Server

    Now it works, functionally

    People finally got Web Application

    But it sucks
      – If we write an address which we should not
          write, Crash!
      – Print each line of html
      – Heavy work just for a forum
Application Server

    Most Web Applications do not need
    memory manipulate

    Output html in html way

    Solution
      – Interpret server side script in a html
          template when processing a request
      – Php is short for Php Home Page
      – Asp jsp rhtml
Application Server

    PHP
Application Server

    How it works
      – Listen to a port (default 80)
      – Accept a http request
      – Processing request
           • If static content, return that stupid file
           • If dynamic
                 – Run the interpreter such as php interpreter
                 – The interpreter interpret user program(php file)
                 – Interpreter return the interpret result
      – Send result back as a http response
Application Server

    PHP style language limitation
      – Each interpreter instance for a request
      – No server global context
      – Low performance nature

    JAVA style (JAVA .NET)
      – Virtual machine execution (keep
         programmer from low level memory ops)
      – Compile instead interpret (greatly improve
         performance)
      – Web app and server all run in One VM
Application Server

    How it works (JAVA style)
      – JVM start a JAVA program (that's server)
      – Listen to a port (default 80)(run in VM)
      – Accept a http request (run in VM)
      – Processing request (run in VM)
           • If static content, return that stupid file
           • If dynamic
                 – Parse the http request
                 – Call the user define method which should
                    process this request,
      – Send result back as a http response(run in
         VM)
Application Server

    JAVA program server should be
      – Tomcat (widely used)
      – Jetty (we use in current project)
      – Websphere (widely used in commercial)

    The user define method should be
      – doGet(request, response)
      – doPost(request, response)
Beyond This

    Web Service

    Web Socket

    High Performance Web

    High Availability

    Distribute Web
Q&A
Thank!

More Related Content

PPTX
Serialization and performance by Sergey Morenets
PDF
Serialization (Avro, Message Pack, Kryo)
PPTX
Day 9 - PostgreSQL Application Architecture
PPTX
Rpc framework
PPTX
XMPP Academy #2
PPTX
Oak, the architecture of Apache Jackrabbit 3
PPTX
Lecture 7: Server side programming
PDF
CBDW2014 - Down the RabbitMQ hole with ColdFusion
Serialization and performance by Sergey Morenets
Serialization (Avro, Message Pack, Kryo)
Day 9 - PostgreSQL Application Architecture
Rpc framework
XMPP Academy #2
Oak, the architecture of Apache Jackrabbit 3
Lecture 7: Server side programming
CBDW2014 - Down the RabbitMQ hole with ColdFusion

What's hot (20)

PDF
ApacheCon09: Avro
PPTX
Scaling High Traffic Web Applications
PDF
Apache Jackrabbit
PDF
Enterprise Integration Patterns
PPT
Content Management With Apache Jackrabbit
PDF
lessons from managing a pulsar cluster
PPT
21 Www Web Services
PPT
SPDY Talk
PPTX
Windows Azure Service Bus
PPTX
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
PPTX
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
PPT
PPTX
Serverless Architecture
PPT
Enterprise Integration Patterns
PDF
Pulsar Summit Asia - Structured Data Stream with Apache Pulsar
PPSX
Restful web services rule financial
PPT
Apache Content Technologies
KEY
Nodeconf npm 2011
PDF
How pulsar stores data at Pulsar-na-summit-2021.pptx (1)
PPTX
Scale your Alfresco Solutions
ApacheCon09: Avro
Scaling High Traffic Web Applications
Apache Jackrabbit
Enterprise Integration Patterns
Content Management With Apache Jackrabbit
lessons from managing a pulsar cluster
21 Www Web Services
SPDY Talk
Windows Azure Service Bus
Apache Con 2021 : Apache Bookkeeper Key Value Store and use cases
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
Serverless Architecture
Enterprise Integration Patterns
Pulsar Summit Asia - Structured Data Stream with Apache Pulsar
Restful web services rule financial
Apache Content Technologies
Nodeconf npm 2011
How pulsar stores data at Pulsar-na-summit-2021.pptx (1)
Scale your Alfresco Solutions
Ad

Viewers also liked (8)

PPTX
Project Allusion
PPTX
Definition of allusion
PPT
Allusion
PPT
Allusions
PPT
Allusions
PPTX
Types of allusion
PDF
Allusions powerpoint
Project Allusion
Definition of allusion
Allusion
Allusions
Allusions
Types of allusion
Allusions powerpoint
Ad

Similar to Indroduction to Web Application (20)

PPTX
Servlet & jsp
PDF
Jsp & Ajax
ODP
Web Server-Side Programming Techniques
PPT
Web Services 2009
PPT
Web Services 2009
PPTX
KEY
Java web programming
ODP
PHP Training: Module 1
PDF
Internet programming lecture 1
KEY
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
PPTX
Languages and tools for web programming
PPTX
Languages and tools for web programming
PDF
CNIT 129S: Ch 3: Web Application Technologies
PPTX
CN UNIT5.pptxCN unit5CN unit5CN unit5CN unit5CN unit5CN unit5CN unit5CN unit5...
PPTX
Www and http
PDF
Unit v
PDF
spring Boot Tutorial Part 1(JPA&Hibernate)
PPTX
Servletarchitecture,lifecycle,get,post
PDF
Configuring the Apache Web Server
Servlet & jsp
Jsp & Ajax
Web Server-Side Programming Techniques
Web Services 2009
Web Services 2009
Java web programming
PHP Training: Module 1
Internet programming lecture 1
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
Languages and tools for web programming
Languages and tools for web programming
CNIT 129S: Ch 3: Web Application Technologies
CN UNIT5.pptxCN unit5CN unit5CN unit5CN unit5CN unit5CN unit5CN unit5CN unit5...
Www and http
Unit v
spring Boot Tutorial Part 1(JPA&Hibernate)
Servletarchitecture,lifecycle,get,post
Configuring the Apache Web Server

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
cuic standard and advanced reporting.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Cloud computing and distributed systems.
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
cuic standard and advanced reporting.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Cloud computing and distributed systems.
Empathic Computing: Creating Shared Understanding
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Electronic commerce courselecture one. Pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

Indroduction to Web Application

  • 1. Introduction To Web Application Alex
  • 2. Topic  No programming detail  Not for some specific programming language  Focus on what it is  Focus on how it works
  • 3. Outline  Client Server Communication  HTTP  Static Web  Web Server  Client Side Script  Dynamic Web  Application Server  Beyond This
  • 4. Client Server Communication  Server listen  Client send a request  Server send a response back  OSI Stack – Application Layer – Transport Layer – Network Layer – Data Link Layer – Physical Layer
  • 5. HTTP  Application Layer Protocol  URL As Address  Address Stack – HTTP: URL (domain + path) – TCP: ip + port – IP: ip – 802.11x: mac address – Hardware: broadcast
  • 6. HTTP  HTTP Request – Header (Key-Value Text) • Address (Host, Get or Post) • Describe Body • Describe Client • Other Stuff – Body • Post Parameters (key=value) • Files • Carry whatever you want
  • 7. HTTP  HTTP Response – Header (Text Key Value Pairs) • Response Status (2xx 3xx 4xx 5xx) • Describe Body • Other Stuff – Body • Browser case : HTML js css • Download case : anything you downloaded
  • 8. Static Web  Document Sharing  Connection between Documents – Hyper Link  Document is text and more than text  Hyper Text = text + hyper link  HTML = Hyper Text + style  Hyper Text Markup Language
  • 9. Web Server  Manage static document files  Give client what it ask for  Apache Lighttpd Nginx etc  How it works – Listen on a port (default 80) – Accept a http request – Locate the document client wants – Send that back to client as a http response
  • 10. Client Side Script  More than display and link – Animation – Response user action immediately – Some logic can run on client  Browser can run – Javascript – Flash – Sliver light – VB Script, Java Applet, ActiveX, Extensions
  • 11. Dynamic Web  Think about a forum – User generate content – Topics changes all the time  You can not do this static way – We need more then static files – We need to run a program when we accept a http request to generate response  How?
  • 12. Dynamic Web  New Way – Listen to a port (default 80) – Accept a http request – Processing request • If static content, return that stupid file • If dynamic run a program return that result – Send result back as a http response
  • 13. Application Server  More then web server – An URL can map to a static file – An URL can map to a processing logic  Ancient Way – CGI just run a executable program and return the standard output – Fast CGI : thread based
  • 14. Application Server  Now it works, functionally  People finally got Web Application  But it sucks – If we write an address which we should not write, Crash! – Print each line of html – Heavy work just for a forum
  • 15. Application Server  Most Web Applications do not need memory manipulate  Output html in html way  Solution – Interpret server side script in a html template when processing a request – Php is short for Php Home Page – Asp jsp rhtml
  • 17. Application Server  How it works – Listen to a port (default 80) – Accept a http request – Processing request • If static content, return that stupid file • If dynamic – Run the interpreter such as php interpreter – The interpreter interpret user program(php file) – Interpreter return the interpret result – Send result back as a http response
  • 18. Application Server  PHP style language limitation – Each interpreter instance for a request – No server global context – Low performance nature  JAVA style (JAVA .NET) – Virtual machine execution (keep programmer from low level memory ops) – Compile instead interpret (greatly improve performance) – Web app and server all run in One VM
  • 19. Application Server  How it works (JAVA style) – JVM start a JAVA program (that's server) – Listen to a port (default 80)(run in VM) – Accept a http request (run in VM) – Processing request (run in VM) • If static content, return that stupid file • If dynamic – Parse the http request – Call the user define method which should process this request, – Send result back as a http response(run in VM)
  • 20. Application Server  JAVA program server should be – Tomcat (widely used) – Jetty (we use in current project) – Websphere (widely used in commercial)  The user define method should be – doGet(request, response) – doPost(request, response)
  • 21. Beyond This  Web Service  Web Socket  High Performance Web  High Availability  Distribute Web