Web Application Development & Hosting Pt-1
Web Application Development & Hosting Pt-1
BY Gift Msigwa
ITT 06112
Internet
❖ As a developer, it is important to have a solid understanding of what the internet is and how it
works.
❖ It is the foundation upon which most modern software applications are built.
❖ In order to build effective, secure, and scalable applications and services, you need to have a solid
understanding of how the internet works and how to leverage its power and connectivity.
Introduction to the Internet
❖ Before we learn what the Internet is, we need to understand what a Network is.
❖ A network is a group of computers or other devices which are connected to eachother.
❖ For example,
➢ You at your home might have a network of computers and devices.
➢ Your friend living next door might have a similar network of devices.
➢ Their neighbor might have a similar network of devices.
➢ All these networks when connected together form the internet.
❖ To ensure that packets are sent and received correctly, the internet uses a variety of protocols,
including the Internet Protocol (IP) and the Transmission Control Protocol (TCP).
➢ IP is responsible for routing packets to their correct destination,
➢ while TCP ensures that packets are transmitted reliably and in the correct order.
❖ In addition to these core protocols, there are a wide range of other technologies and protocols that
are used to enable communication and data exchange over the internet,
➢ including the Domain Name System (DNS),
➢ the Hypertext Transfer Protocol (HTTP),
➢ and the Secure Sockets Layer/Transport Layer Security (SSL/TLS) protocol.
❖ As a developer, it is important to have a solid understanding of how these different technologies
and protocols work together to enable communication and data exchange over the internet.
Basic Concepts and Terminology
❖ To understand the internet, it’s important to be familiar with some basic concepts and terminology.
❖ Here are some key terms and concepts to be aware of:
➢ Packet: A small unit of data that is transmitted over the internet.
➢ Router: A device that directs packets of data between different networks.
➢ IP Address: A unique identifier assigned to each device on a network, used to route data to the correct destination.
➢ Domain Name: A human-readable name that is used to identify a website, such as google.com.
➢ DNS: The Domain Name System is responsible for translating domain names into IP addresses.
➢ HTTP: The Hypertext Transfer Protocol is used to transfer data between a client (such as a web browser) and a server (such
as a website).
➢ HTTPS: An encrypted version of HTTP that is used to provide secure communication between a client and server.
➢ SSL/TLS: The Secure Sockets Layer and Transport Layer Security protocols are used to provide secure communication over
the internet.
NB: Understanding these basic concepts and terms is essential for working with the internet and developing internet-based
applications and services.
The Role of Protocols in Internet
❖ Protocols play a critical role in enabling communication and data exchange over the internet.
❖ A protocol is a set of rules and standards that define how information is exchanged between
devices and systems.
❖ Role of Protocols in Internet:
➢ IP is responsible for routing packets of data to their correct destination,
➢ while TCP and UDP ensure that packets are transmitted reliably and efficiently.
➢ DNS is used to translate domain names into IP addresses,
➢ and HTTP is used to transfer data between clients and servers.
❖ One of the key benefits of using standardized protocols is that they allow devices and systems from
different manufacturers and vendors to communicate with each other seamlessly.
➢ For example, a web browser developed by one company can communicate with a web server developed by
another company, as long as they both adhere to the HTTP protocol.
Understanding IP Addresses and Domain Names
❖ IP addresses and domain names are both important concepts to understand when working with
the internet.
❖ An IP address is a unique identifier assigned to each device on a network.
❖ It’s used to route data to the correct destination, ensuring that information is sent to the intended
recipient.
➢ For example “192.168.1.1”
❖ Domain names, on the other hand, are human-readable names used to identify websites and other
internet resources.
❖ They’re typically composed of two or more parts, separated by periods.
➢ For example, “google.com”
❖ Domain names are translated into IP addresses using the Domain Name System (DNS).
Introduction to HTTP and HTTPS
❖ HTTP (Hypertext Transfer Protocol) and HTTPS (HTTP Secure) are two of the most commonly
used protocols in internet-based applications and services.
❖ HTTP is the protocol used to transfer data between a client (such as a web browser) and a server
(such as a website).
➢ When you visit a website, your web browser sends an HTTP request to the server, asking for the webpage or
other resource you’ve requested.
➢ The server then sends an HTTP response back to the client, containing the requested data.
❖ HTTPS is a more secure version of HTTP, which encrypts the data being transmitted between the
client and server using SSL/TLS (Secure Sockets Layer/Transport Layer Security) encryption.
➢ This provides an additional layer of security, helping to protect sensitive information such as login credentials,
payment information, and other personal data.
Building Applications with TCP/IP
❖ TCP/IP (Transmission Control Protocol/Internet Protocol) is the underlying communication protocol used
by most internet-based applications and services.
❖ It provides a reliable, ordered, and error-checked delivery of data between applications running on
different devices.
❖ When building applications with TCP/IP, there are a few key concepts to understand:
➢ Ports: Ports are used to identify the application or service running on a device.
■ Each application or service is assigned a unique port number, allowing data to be sent to the correct
destination.
➢ Sockets: A socket is a combination of an IP address and a port number, representing a specific endpoint for
communication.
■ Sockets are used to establish connections between devices and transfer data between applications.
➢ Connections: A connection is established between two sockets when two devices want to communicate with each
other.
■ During the connection establishment process, the devices negotiate various parameters such as the maximum
segment size and window size, which determine how data will be transmitted over the connection.
➢ Data transfer: Once a connection is established, data can be transferred between the applications running on each
device.
■ Data is typically transmitted in segments, with each segment containing a sequence number and other
metadata to ensure reliable delivery.
Securing Internet Communication with SSL/TLS
❖ As we discussed earlier, SSL/TLS is a protocol used to encrypt data being transmitted over the
internet.
❖ It is commonly used to provide secure connections for applications such as web browsers, email
clients, and file transfer programs.
❖ When using SSL/TLS to secure internet communication, there are a few key concepts to
understand:
➢ Certificates: SSL/TLS certificates are used to establish trust between the client and server.
➢ Handshake: During the SSL/TLS handshake process, the client and server exchange information to negotiate
the encryption algorithm and other parameters for the secure connection.
➢ Encryption: Once the secure connection is established, data is encrypted using the agreed-upon algorithm
and can be transmitted securely between the client and server.
How browsers work
❖ A web browser is a type of software that allows you to find and view websites on the Internet.
❖ There are five major browsers used on desktop today:
➢ Chrome,
➢ Internet Explorer,
➢ Firefox, Safari
➢ and Opera.
The browser's high level structure
❖ The browser's main components are:
➢ The user interface: this includes the address bar, back/forward button,
bookmarking menu, etc. Every part of the browser display except the
window where you see the requested page.
➢ The browser engine: marshals actions between the UI and the
rendering engine.
➢ The rendering engine: responsible for displaying requested content.
For example if the requested content is HTML, the rendering engine
parses HTML and CSS, and displays the parsed content on the screen.
➢ Networking: for network calls such as HTTP requests, using different
implementations for different platform behind a
platform-independent interface.
➢ UI backend: used for drawing basic widgets like combo boxes and
windows. This backend exposes a generic interface that is not platform
specific. Underneath it uses operating system user interface methods.
➢ JavaScript interpreter. Used to parse and execute JavaScript code.
➢ Data storage. This is a persistence layer. The browser may need to
save all sorts of data locally, such as cookies. Browsers also support
storage mechanisms such as localStorage, IndexedDB, WebSQL and
FileSystem.
Reference
❖ Web development, also known as website development, refers to the tasks associated with
creating, building, and maintaining websites and web applications that run online on a browser.
➢ It may, however, also include web design, web programming, and database management.
❖ Web Development vs. Web Design
➢ Web Designers:
■ Create everything a user sees on a website or software product, including all visual, color, typography,
and usability elements
➢ Web Developers:
■ Write the code that makes a website function, whether they work on the front end or back end
(server-side)
Main components of a web application
❖ A web application typically consists of various components that work together to provide a
user-friendly and functional experience.
❖ These components can be categorized into:
➢ Front-end components
➢ Back-end components
Primary components of a web application
❖ Database:
➢ Databases (typically relational databases like MySQL or PostgreSQL) store and manage the application's
data.
❖ Back-End Logic:
➢ The back-end logic includes the server-side code responsible for processing requests, implementing business
logic, and interacting with the database.
❖ APIs (Application Programming Interfaces):
➢ APIs enable communication between different components of the application and external services, defining
how data and functionality can be accessed and used.
❖ Authentication and Authorization:
➢ Components for user authentication (verifying user identity) and authorization (granting access rights) to
ensure data security and privacy.
What Is Web Hosting?
❖ Web hosting is an online service that allows you to publish your website files onto the internet.
❖ So, anyone who has access to the internet has access to your website.
❖ Types of Web Hosting
➢ Shared Hosting
➢ VPS (Virtual Private Server) Hosting
➢ Dedicated Server Hosting
➢ Cloud Hosting
➢ Reseller Hosting
Web Design Principles
❖ Interoperability: Web languages and protocols must be compatible with one another independent
of hardware and software
❖ Evolution: The Web must be able to accommodate future technologies. Encourages simplicity,
modularity and extensibility
❖ Decentralization: Facilitates scalability and robustness
What Is Web Development?