Syllabus Point
- Model elements that form a web development system
Including:
- client-side (front-end) web programming
- server-side (back-end) web programming
- interfacing with databases that are based on Structured Query Language (SQL) or non-SQL
Web development systems consist of interconnected components including client-side technologies for user interaction, server-side logic for data processing, and databases for persistent storage. Understanding the roles and differences between these layers is essential for effective web development.
Full stack web application overview
A full stack web application connects all three components:
- Front end: handles user interaction
- Back end: processes requests, applies business logic, and interacts with database
- Database: stores and retrieves data efficiently
Client-side (front-end) web programming
Refers to the code that runs in the user's web browser, which enables interactive user experiences without needing constant communication with the server.
- Key technologies include HTML, CSS, JS and frameworks (React, Vue, Angular)
- Faster UX because there is no server load
- Can store temporary data using cookies, local storage and session storage
Server-side (back-end) web programming
Server-side programming involves writing code that runs on the server, and enables it to respond to requests from the client-side applications and generate dynamic content to be sent back to the client.
- Handles business logic, database interacts and user authentication
Functions of server side programming
- Processing user requests (form submissions, authentication, etc)
- Manage databases
- Generate dynamic content based on user input
- Implement security features
Comparison of client-side and server-side
- Location
- Client: Runs in web browser and user's device
- Server: Runs on the web server
- Languages
- Client: HTML, CSS, JS
- Server: Python, PHP, Ruby, Node.js
- Main purpose
- Client: Interactivity, UI, form validation
- Server: Data processing, database interaction and security
- Security
- Client: Less secure (code visible to users)
- Server: More secure (code is hidden)
- Speed
- Client: Fast for small tasks - don't need to communicate
- Server: Slower due to server client communication
Interfacing with databases that are based on Structured Query Language (SQL) or non-SQL
Databases store and manage user data, content and application settings. There are two main types of databases.
Relational databases (SQL)
- Organise data into structured tables, and can establish relationships based on keys
- Follows relational model
- SQL is typically used to interact with relational databases
- Example: SQLite, mySQL
- Have a schema
- Typically used when data relationships are complex, and enforcing strict schemas is important
NoSQL databases
- Databases that store and retrieve data in flexible formats (e.g. key-value pairs, documents)
- Horizontally scalable and handles large volumes of unstructured data
- Used for real-time analytics, content management, big data
- Example: mongodb
- Distributed data across multiple servers
- Can store JSON or BSON
Entities and relationships
Entities are real world objects or concepts that can be uniquely identified, and often have relationships with each other - which define how they interact and relate.
- Entities represented as tables - each row is an instance, each column is an attribute
- Relationships are represented by foreign keys or intermediate tables
Related Resources
Keep Progressing
Use the lesson navigation below to move through the module sequence.