Module 3 Building a web app.

Slides:



Advertisements
Similar presentations
Web Hosting. The purpose of this Startup Guide is to familiarize you with Own Web Now's Web Hosting. Own Web Now offers two web hosting platforms, one.
Advertisements

Client-server practices DSC340 Mike Pangburn. Agenda Overview of client-server development Editing on client (e.g., Notepad) or directly on server (e.g.,
The Client-Server Model for the Web 1. A Web Client (usually in the form of a web browser) makes an HTTP request to a specific web server. 2. The Web Server.
Master’s course Bioinformatics Data Analysis and Tools Lecture 6: Internet Basics Centre for Integrative Bioinformatics.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Presented by Mina Haratiannezhadi 1.  publishing, editing and modifying content  maintenance  central interface  manage workflows 2.
INTRO TO MAKING A WEBSITE Mark Zhang.  HTML  CSS  Javascript  PHP  MySQL  …That’s a lot of stuff!
Boris Tshibangu. What is a proxy server? A proxy server is a server (a computer system or an application) that acts as an intermediary for requests from.
LEARN THE QUICK AND EASY WAY! VISUAL QUICKSTART GUIDE HTML and CSS 8th Edition Chapter 21: Publishing Your Pages on the Web.
Mohammed Saiyeedur Rahman.  E-commerce is buying and selling goods over the internet. This could include selling/buying mobile phones, clothes or DVD’s.
SYST Web Technologies SYST Web Technologies Installing a Web Server (XAMPP)
Web Page A page displayed by the browser. Website Collection of multiple web pages Web Browser: A software that displays web pages on client computer.
PHP and MySQL Week#1  Course Plan.  Introduction to Dynamic Web Content.  Setting Up Development Server Eng. Mohamed Ahmed Black 1.
TOPIC 1 – SERVER SIDE APPLICATIONS IFS 234 – SERVER SIDE APPLICATION DEVELOPMENT.
Additional SugarCRM details for complete, functional, and portable deployment.
CSCI 323 – Web Development Chapter 1 - Setting the Scene We’re going to move through the first few chapters pretty quick since they are a review for most.
Class 5 Computer Software. Outline System Software Application Software (“Applications”) Markup languages for Internet (HTML, XML) User Interface Client-Server.
Web Page Design I Retest Terms Review. 1. Web pages are created using a language known as ___________. The coding of this language must follow specific.
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition1  Wiley and the.
PHP With Oracle 11g XE By Shyam Gurram Eastern Illinois University.
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
Chapter 1: The Internet and the WWW CIS 275—Web Application Development for Business I.
Microsoft Azure SoftUni Team Technical Trainers Software University
1 After completing this lesson, you will be able to: Transfer your files to the Internet. Choose a method for posting your Web pages. Use Microsoft’s My.
CS 7: Introduction to Computer Programming Java and the Internet Sections ,2.1.
Apache Web Server Quick and Dirty for AfNOG 2015 (Originally by Joel Jaeggli for AfNOG 2007) ‏
Introduction TO Network Administration
Family Connection Collaborative Webs A Tool for Creating and Managing Web sites.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
(ITI310) By Eng. BASSEM ALSAID SESSIONS 10: Internet Information Services (IIS)
Hostway Confidential & Proprietary Introduction to Web Hosting.
Web Page Designing With Dreamweaver MX\Session 1\1 of 9 Session 1 Introduction to PHP Hypertext Preprocessor - PHP.
IN THIS LESSON WE WILL REVIEW THE STRUCTURE OF THE INTERNET AND HOW BROWSERS ASSEMBLE WEBSITES BASED ON INSTRUCTIONS THEY RECEIVE FROM SERVERS. Internet.
XAMPP.
Week-10 (Lecture-1) Web Building STEPS OF BUILDING: create web pages using HTML add a consistent style using CSS add computer code using JavaScript add.
L.A.M.P. İlker Korkmaz & Kaya Oğuz CS 350. Why cover a lecture on LAMP? ● Job Opportunities – There are many hosting companies offering LAMP as a web.
Website Deployment Week 12. Software Engineering Practices Consider the generic process framework – Communication – Planning – Modeling – Construction.
Web Technology Seminar
Welcome to the Hands on Lab!
Chapter Objectives In this chapter, you will learn:
IS1500: Introduction to Web Development
3.02H Publishing a Website 3.02 Develop webpages..
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
1.4 Wired and Wireless Networks
Technologies and Applications
Module 8: Networking Services
Netscape Application Server
E-commerce | WWW World Wide Web - Concepts
Platform as a Service.
E-commerce | WWW World Wide Web - Concepts
Unit 5: Providing Network Services
BTEC NCF Dip in Comp - Unit 15 Website Development Lesson 05 – Website Performance Mr C Johnston.
Networking for Home and Small Businesses – Chapter 6
Configuration for Network Security
Developing Web-Based Applications
Providing Network Services
Networking for Home and Small Businesses – Chapter 6
CS222 Web Programming Course Outline
INSTALLING AND SETTING UP APACHE2 IN A LINUX ENVIRONMENT
Unit 1.4 Wired and Wireless Networks Lesson 3
Module P3 Practical: Building a webapp in nodejs and
4.02 Develop web pages using various layouts and technologies.
Intro to PHP.
Networking for Home and Small Businesses – Chapter 6
Lecture 14: JSON and Web SERVICES
Web Servers (IIS and Apache)
Client/Server Computing and Web Technologies
Web Application Development Using PHP
XAMPP.
Presentation transcript:

Module 3 Building a web app

Contents Objective: Get a basic understanding of how one would try to build a webapp Topics: Recap Domain names Hosting Web application code Deploying application code

Building a webapp... Web server Browser (web client) Network response request Computer (host) DNS helps convert domain name to IP This is what we need to set up, to serve our own webapp

Build a webapp that others can use? Building a webapp involves the following steps: Get a unique domain name So that people can remember your webapp so that they can reach it. Set up a computer with an IP to serve the webapp Link the domain name with the server’s IP address. Write your application code (web server) Deploy your application code on the computer that is your server host

3.1 Get a domain name Get a domain name so that people can reach our web app. Buy a domain name using domain registrars. Registrars take your domain name and make sure that no-one else, including other registrars can use that name while you have it. Some popular domain registrars: gandi.net godaddy.com name.com Screenshot from godaddy

✔ Web server Browser (web client) Network Computer (host) response request Computer (host) DNS helps convert domain name to IP ✔

3.2 Set up a web server - I We need to get a computer and a unique IP. Option 1: (super hard!) Buy a computer Connect it to your ISP Get a unique IP for your computer that won’t change Install your OS and web server software Option 2: Rent a computer from a vendor somewhere else in the world. Vendor provides the IP with which you can reach your computer.

3.2 Set up a web server - II The technical term for renting computational power from a vendor: hosting Many different types of hosting 1. Shared hosting: Many different users are created on the same computer (the same as creating multiple users on your own computers) Users have to share CPU, RAM and disk resources. All users get the same IP. 3. VPS hosting Virtual Private Servers are virtual machines created on the same physical machine. You get a dedicated IP. Pros: Less expensive than dedicated hosting Cons: Lower performance than dedicated hosting 4. Cloud hosting Similar to VPS providers but allow for rapidly changing size of the virtual machine and provisioning more machines on the go. Quick exercise: For each of the below, find out what kind of hosting they offer? webfaction, godaddy, Google Cloud Platform, bluehost, AWS, softlayer, linode, digitalocean, Rackspace 2. Dedicated hosting: You can rent a machine that only you get to use. No other users get access to that machine. You get a dedicated IP that is unique to you.

3.2 Set up a web server - III The experience of buying or renting a computer.

3.3 Link domain name to the server Next, you map the domain name to this IP This information is published by the registrar on their DNS servers so that anyone in the world can now exchange your domain name for the IP You can access a webserver using its domain name or its IP. ex: http://nptel.ac.in/ is the same as http://14.139.160.71/ My Server IP mydomain.com

3.3 DNS propagation What happens when you set the IP for a domain? The DNS system is a globally distributed database of domain-name to IP mappings maintained by many name servers spread over the Internet. When you update the domain-name to IP mapping with your registrar a gradual wave of updates begins and DNS can take upto 48 hours to update worldwide! Image source: https://pbs.twimg.com/media/ClkNsrGUoAAvnQN.jpg

Understand DNS in more detail! https://howdns.works/

3.4 Write application code Web server Browser (web client) Network response request Computer (host)

3.4 Write application code Write or install a program in your favourite language that can listen to a request and respond with appropriate information. This is the web server that will serve your webapp. Listen on the network Accept a request Process the request Output a response in a format that the browser will understand Send the response back over the same connection on the network

3.4 Write application code Writing a program that knows how to listen on a network is quite hard Developers use several frameworks, libraries and tools that help them write only portions specific to their application and avoid the complex bits. Listen on the network Accept a request Process the request Output a response in a format that the browser will understand Send the response back over the same connection on the network Apache + Linux Common “stacks” & frameworks that developers use: LAMP: Linux Apache MySQL PHP. WAMP, MEAN, Django, Rails, Laravel, Express PHP + MySQL Apache + Linux

3.5 Deploy code on your server After writing and testing your code, the code needs to be deployed on the server: Install the correct OS + dependencies on your server Copy your code (as source code or binaries) Run your code! Common ways to remote manage a server: SSH FTP (only for files) Cpanel Remote desktop Deployment is a tricky process especially when making updates to an app that is already live. Deployment is also a process that needs to be very secure to ensure that unknown people or unknown code does not get deployed to our app.

Things to keep in mind Things in our control Domain name Server side code These are things not in our control What requests are made by users What browser or client the user is using Web server Network Browser (web client) response request Computer (host)

A quick exercise

‘Inspect Element’ on Chrome. Requests and responses Different response types Making arbitrary requests and checking responses Modifying the HTML in the browser (because we have control) Using the IP instead of the domain name

Chrome Dev Tools Chrome Dev Tools (the window that opens up when you click on ‘inspect’) is a very powerful analysis and debugging tool https://developer.chrome.com/devtools

Summary

What we covered What does it take to build a webapp. Domain names (required only if we don’t want people to use our IP). Hosting (a computer to host our server code). A web server (either a software that we can directly use, or a software that we can write). Deploying the web server code on the hosting provider’s given machine. You can watch this module on Youtube: https://www.youtube.com/watch?v=2P7f6b_E3E4