Modern Web Development From Angle Brackets to Web Sockets

Similar documents
WWW. World Wide Web Aka The Internet. dr. C. P. J. Koymans. Informatics Institute Universiteit van Amsterdam. November 30, 2007

10CS73:Web Programming

IT3504: Web Development Techniques (Optional)

Introduction to web development and JavaScript

Web Design Technology

opalang - Rapid & Secure Web Development

Table of Contents. Open-Xchange Authentication & Session Handling. 1.Introduction...3

1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment?

Whitepapers at Amikelive.com

Network Technologies

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

The Web: some jargon. User agent for Web is called a browser: Web page: Most Web pages consist of: Server for Web is called Web server:

CONTENT of this CHAPTER

Web Programming. Robert M. Dondero, Ph.D. Princeton University

IT3503 Web Development Techniques (Optional)

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Cache All The Things

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Hypertext for Hyper Techs

CTIS 256 Web Technologies II. Week # 1 Serkan GENÇ

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

Intro to Web Programming. using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000

HTTP. Internet Engineering. Fall Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

Outline Definition of Webserver HTTP Static is no fun Software SSL. Webserver. in a nutshell. Sebastian Hollizeck. June, the 4 th 2013

Short notes on webpage programming languages

Protocolo HTTP. Web and HTTP. HTTP overview. HTTP overview

The Web as a Client-Server System; TCP/IP intro!

How To Build A Web App

Scalable and Efficient Web Application Architectures. Thin-clients and SQL vs. Thick-clients and NoSQL

DIPLOMA IN WEBDEVELOPMENT

Programming in HTML5 with JavaScript and CSS3

ERIE COMMUNITY COLLEGE COURSE OUTLINE A. COURSE TITLE: CS WEB DEVELOPMENT AND PROGRAMMING FUNDAMENTALS

Designing RESTful Web Applications

Instructor: Betty O Neil

Framework as a master tool in modern web development

Offerte del 13 giugno 2014

HYBRID. Course Packet

Certified PHP/MySQL Web Developer Course

By Bardia, Patit, and Rozheh

Chapter 27 Hypertext Transfer Protocol

Learning Web App Development

SUBJECT CODE : 4074 PERIODS/WEEK : 4 PERIODS/ SEMESTER : 72 CREDIT : 4 TIME SCHEDULE UNIT TOPIC PERIODS 1. INTERNET FUNDAMENTALS & HTML Test 1

Web. Programming. Hans- Pe0er Halvorsen, M.Sc. h0p://home.hit.no/~hansha/?page=sojware_development

What is a stack? Do I need to know?

Research of Web Real-Time Communication Based on Web Socket

4.2 Understand Microsoft ASP.NET Web Application Development

What is a Web Browser? Web Site Functionality. A client program that uses HTTP to communicate with web servers.

Learning HTML5 Game Programming

Web Development News, Tips and Tutorials

Introduction to Web Technologies

OIT 307/ OIT 218: Web Programming

Application layer Web 2.0

Responsive Web Design Creative License

Getting Started Guide for Developing tibbr Apps

Cyber Security Workshop Ethical Web Hacking

REST web services. Representational State Transfer Author: Nemanja Kojic

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

GUI and Web Programming

World Wide Web. Before WWW

RIA Technologies Comparison

Project #2. CSE 123b Communications Software. HTTP Messages. HTTP Basics. HTTP Request. HTTP Request. Spring Four parts

Introduction to web development

All You Can Eat Realtime

CS640: Introduction to Computer Networks. Applications FTP: The File Transfer Protocol

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

CIS 467/602-01: Data Visualization

URLs and HTTP. ICW Lecture 10 Tom Chothia

reference: HTTP: The Definitive Guide by David Gourley and Brian Totty (O Reilly, 2002)

WIRIS quizzes web services Getting started with PHP and Java

Domain Name System (DNS)


Joseph Mertz, Ph.D Teaching Professor H. John III Heinz College Dietrich College IS Program

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

WEB DEVELOPMENT IA & IB (893 & 894)

Christopher Zavatchen

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

IGW+ Certificate. I d e a l G r o u p i n W e b. International professional web design,

How to Run an Apache HTTP Server With a Protocol

THE PROXY SERVER 1 1 PURPOSE 3 2 USAGE EXAMPLES 4 3 STARTING THE PROXY SERVER 5 4 READING THE LOG 6

Application Layer: HTTP and the Web. Srinidhi Varadarajan

Web Cloud Architecture

Web Development. How the Web Works 3/3/2015. Clients / Server

CSCI110: Examination information.

COURSE CONTENT FOR WINTER TRAINING ON Web Development using PHP & MySql

WEB AND APPLICATION DEVELOPMENT ENGINEER

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Step into the Future: HTML5 and its Impact on SSL VPNs

A Model of the Operation of The Model-View- Controller Pattern in a Rails-Based Web Server

Integration the Web 2.0 way. Florian Daniel April 28, 2009

Developing Your School Website

Software Requirements Specification For Real Estate Web Site

Transcription:

Modern Web Development From Angle Brackets to Web Sockets Pete Snyder <psnyde2@uic.edu>

Outline (or, what am i going to be going on about ) 1.What is the Web? 2.Why the web matters 3.What s unique about web development? 4.What goes into a modern web project? 5.Making it fun and getting it done 6.Web development challenges

1. What is the Web? (or, lets define terms)

1. What is the Web? (1/2) Markup: (X)HTML, JSON, YAML, XML Protocols: HTTP(S), WebSockets, SPDY WebServices: SOAP, REST, XML-RPC Browsers: Moasic... Chrome Design strategies: Response, Accessible Languages: Javascript, Python, PHP, Ruby Databases: MySQL, MSSQL, MongoDB, CouchDB Scaling: Reverse Proxies, load balancers, CDNs Servers: Tomcat, Apache, Nginx, Node.js Frameworks: Ruby on Rails, Django, Drupal, Symphony Standards: RSS, ATOM, RDFa

1. What is the Web? (2/2)

2. Why the Web Matters (or, why this isn t all a waste of time)

2. Why the Web Matters Most popular application platform (by far) Everything talks the web Building for other platforms requires the web

3. What s Unique About Web Development? (or, bad news / good news)

What s Unique About Web Development? (1/2) Bad Bits 1.Unplanned Environment 2.Everything Needs to Work Everywhere 3.Many Parts / Languages / Environments

What s Unique About Web Development? (2/2) Good Bits 1.Heavily OpenSource 2.High Level Languages / Abstractions 3.Popular!

4. What Goes Into a Modern Web Project? (or, how the sausage is made)

4. What Goes Into a Modern Web Project? 1. Static Web Pages

4.1 Static Web Pages: HTTP Application layer protocol Usually sent over TCP Usually port 80 Plain text

4.1 Static Web Pages: More HTTP GET /index.html HTTP/1.1 Host: www.example.com {\r\n} {\r\n} HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Accept-Ranges: none Content-Length: 438 Connection: close Content-Type: text/html; charset=utf-8 {Body}

4.1 Static Web Pages: HTML Plain text markup Angle brackets Well defined tags and attributes <p>: Paragraph <div>: Division / Section <ul>: Unordered List <ol>: Ordered List <h[1-5]>: Section Headers <img>: An image etc id and class for overloading

4.1 Static Web Pages: The Dom HTML DOM

4.1 Static Web Pages: Display DOM Render

4.1 Static Web Pages: Putting It All Together Browser makes HTTP request Server responds with HTML (or other asset GET /index.html <head><body> Client Parses HTML to DOM Parse Client Renders DOM Display

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation

4.2 Presentation: CSS CSS: Cascading Style Sheets Plain text Included in document Separates content and presentation Pairs of selectors and rules Controls positioning, colors, fonts, animations, etc

4.2 Presentation: CSS

4.2 Presentation: CSS

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation 3. Dynamic Page Generation

3. Dynamic Page Generation Need a way to send input from browser to server Need a way to process that information

3. Dynamic Page Generation: Forms HTML Form Rendering

3. Dynamic Page Generation: HTTP Form HTTP Request GET GET /index.4-3.html?statement=oh+hey&count=5 HTTP/1.1 Host: localhost POST POST /index.4-3.html HTTP/1.1 Host: localhost statement=oh+hey&count=5

3. Dynamic Page Generation: HTTP HTTP Request Server Side Program GET /speaker.php?statement=oh+hey&count=5 HTTP/1.1 Host: localhost

3. Dynamic Page Generation: HTTP Server Side Program Dynamic Output

3. Dynamic Page Generation: HTTP Dynamic Output Browser Rendering

3. Dynamic Page Generation: Complete GET /index.html GET /index.html <head><body> <head><body> Generation Parse Display

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation 3. Dynamic Page Generation 4. Persistence

4.4 Persistence: Cookies and Sessions Values that browsers automatically include Allow sites to distinguish users across requests Along with server side persistent stores, allows for sessions

4.4 Persistence: Cookies and Sessions GET /index.php GET /index.php Login Request HTML Login Request HTML Checks request POST /login.php user / pass POST /login.php user / pass HTML set-cookie: <uuid> HTML Checks authentication set-cookie: <uuid> Parse / Record Cookie Display

4.4 Persistence: Cookies and Sessions GET /index.php Cookie: <uuid> GET /index.php Cookie: <uuid> Restricted Access HTML Restricted Access HTML Checks request Parse Display

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation 3. Dynamic Page Generation 4. Persistence 5. Client Side Logic

4.5 Client Side Programming: Javascript (1/6) Javascript Client / Browser side programming History: Originally developed by Netscape in 1995 by Brendan Eich in 10 days! AKA ECMAscript, Livescript and JScript Not at all related to Java

4.5 Client Side Programming: Looks Like C (2/6) Curly braces for / while / do-while loops Semi-colon terminated statements Functions look C- ish Trips lots of people up

4.5 Client Side Programming: Not Like C! (3/6) Dynamically typed First class functions Lambda / anonymous functions Prototypal inheritance Function Scope

4.5 Client Side Programming: The DOM API (4/6) API for interacting with DOM Buggy, unintuitive and inconsistent Events / effects / styles, etc.

4.5 Client Side Programming: Example (5/6)

4.5 Client Side Programming: Example (6/6)

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation 3. Dynamic Page Generation 4. Persistence 5. Client Side Logic 6. Background Client/Server Interaction (AJAX)

4.6 Background Interaction: AJAX (1/3) Asynchronous Javascript and XML Allows for the browser to do background requests Javascript API Ends page response model Talk HTML / JSON / XML / YAML / etc.

4.6 Background Interaction: Flow (2/3) GET /index.php HTML Parse Display AJAX Request Response AJAX Request Response

4.6 Background Interaction: Formats (3/3) JSON XML YAML

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation 3. Dynamic Page Generation 4. Persistence 5. Client Side Logic 6. Background Client/Server Interaction (AJAX) 7. Two Way Communication

4.7 Two Way Communication: Old Way (1/4) AJAX Polling Client checks periodically for updates Wasteful but reliable

4.7 Two Way Communication: Polling Flow (2/4) GET /index.php HTML Parse Display AJAX Request (anything new?) Response (no) AJAX Request (anything new?) Response (no) AJAX Request (anything new?) Response (Yes!) - JSON

4.7 Two Way Communication: WebSockets (3/4) Allows servers to push updates to clients Starts on HTTP, updates to lighter protocol Available in all latest browsers Javascript API talks to implementing server

4.7 Two Way Communication: WebSockets (4/4) GET /index.php HTML HTTP Parse Display Web Socket Init Web Socket Response WebSockets Server -> Client Message Server -> Client Message Client -> Server Message Server -> Client Message

4. What Goes Into a Modern Web Project? 1. Static Web Pages 2. Presentation 3. Dynamic Page Generation 4. Persistence 5. Client Side Logic 6. Background Client/Server Interaction (AJAX) 7. Two Way Communication 8. HTML5 (The Kitchen Sink)

4.8 Looking Forward: HTML5 LocalStorage (javascript API for structured DB storage in the browser) Canvas API WebGL Failure condition specs New CSS <audio> / <video> New Markup (<article>, <section>) Lots more!

5. Making Web Development Fun (or, at least easing the pain)

5. Making This All Fun Use client side (CSS/JS) frameworks - Bootstrap / Blueprint - jquery / YUI Use compile down languages - LESS - CoffeeScript Use Server Side Frameworks - PHP: Symphony, Drupal, CodeIgniter, Zend - Ruby: Rails - Python: Django, web2py, Twisted, Tornado

6. Web Development Challenges (or, everything is broken)

6. Web Development Challenges Following best practices is tedious! HTTP is not a good protocol for all this! Scaling this is really hard! Web security is really hard!

Thanks Very Much! Pete Snyder <psnyde2@uic.edu>