Web Development: Static vs Dynamic Sites
Web Development: Static vs Dynamic Sites
Contents
Task 1: ................................................................................................................................. 3
1.1. Static websites........................................................................................................... 3
1.2. Dynamic websites ...................................................................................................... 4
1.3. ISO 25010 ................................................................................................................. 6
Task 2: ................................................................................................................................. 7
2.1. Different types of VCS ............................................................................................... 7
2.2 Examples .................................................................................................................... 7
2.3. Type of objects in Git ............................................................................................... 10
Task 3: ............................................................................................................................... 12
3.1 HTML code of bookstore .......................................................................................... 12
3.2 HTML5 and tags explanation .................................................................................... 13
3.3. Why a static page does not include dynamic content and how this limitation impacts
the overall functionality and user interaction. .................................................................. 14
Task 4: ............................................................................................................................... 15
4.1. General overview of the layouts with pros and cons ................................................ 15
4.2. Grid systems and breakpoints ................................................................................. 17
Task 5: ............................................................................................................................... 21
Task 6: ............................................................................................................................... 24
6.1. Access control ......................................................................................................... 24
6.2. OWASP Risks ......................................................................................................... 25
6.3. Server Configuration and Port Management ........................................................... 26
6.4. DoS and DDoS ........................................................................................................ 27
Appendix A. List of figures ................................................................................................. 28
Appendix B. List of tables .................................................................................................. 29
Appendix C. Bibliography................................................................................................... 30
2
Task 1:
Explain the architectural differences between static and dynamic web pages, focusing on client-
side and server-side dynamics. In your answer, discuss the role of technologies such as HTML,
CSS, JavaScript, PHP, and CGI in web development. Additionally, describe how hybrid
approaches combine client-side and server-side techniques. Illustrate your explanation with
examples of how static web pages differ from dynamic ones, including specific use cases for
JavaScript on the client side and PHP on the server side. Furthermore, discuss the importance of
web application quality and explain the key criteria from ISO 25010 that apply to web development,
providing examples of how they can be evaluated.
Criteria Static
3
Here is the example of static website - [Link] Simple site with lessons about CSS
and web-design.
Client-Server part
As previously mentioned, static websites don’t connect to databases or servers. Instead, all the
content is pre-rendered and delivered directly to the client, where it is processed by the browser.
This makes static websites faster and more secure than dynamic websites since there is no
information about users that should be delivered to the server and can leak while delivering.
Typically, static websites can contain such forms of interactivity as HTML forms (e.g., contact
forms), clickable buttons, CSS animations, embedded media (images, videos), and JavaScript-
enhanced effects. These interactive elements are handled entirely on the client side without
requiring server-side computation.
A dynamic website is more interactive than a static website and can change based on user input or
real-time data. Imagine an e-commerce store where product prices and availability fluctuate—this
requires a dynamic website to display the most up-to-date information (Figma Resource Library,
n.d.).
Criteria Dynamic
4
Development More expensive and more complex than static
websites. More difficult to develop
Dynamic websites generate content on the server side in response to user requests. They retrieve
data from database using server, process data and deliver it to user and vice versa. Dynamic
websites can provide more personalized content, allow users to register and create accounts, and
update site content in real time. These kinds of sites support complex functionality such as content
management systems, e-commerce platforms, or social networks. For example, users can buy
some items from the store and share their cart with friends via social media at the same time. They
also can store some items in store cart, take their time to think and complete purchase next time.
Server will keep their info as much as needed. This flexibility and data storage come at the cost of
5
increased server load and potentially slower response times, but client-side technologies like
JavaScript can still enhance interactivity after the initial content is rendered.
ISO 25010 is an international standard that defines important quality characteristics for software
and web applications. These criteria help developers create systems that are reliable, secure,
user-friendly, and easy to maintain. By following ISO quality standards, teams can build better web
applications that meet user needs and perform well over time (ISO, 2023).
Functional Stability The application should work Test if all features (e.g. login,
as expected under different form submission) still work
conditions after updates.
Performance Efficiency The website should load and Use tools like Google
run quickly, even with many PageSpeed to measure load
users time and server response
speed.
Compatibility The app should work across Check how the website
various devices, browsers, displays on Chrome, Safari,
and operating systems Firefox, mobile and desktop.
Reliability The site should work correctly Monitor uptime and check for
over time without frequent broken links or server errors
crashes or errors under normal usage.
6
Task 2:
Describe the role and functionality of version control systems (VCS) in managing file versions
within web and software development projects. Explain the differences between centralized version
control systems (CVCS) and distributed version control systems (DVCS), highlighting their
respective advantages and disadvantages.
Illustrate the use of Git as a DVCS by detailing the process of initializing a Git repository,
configuring user settings, and tracking changes. Provide a practical example that includes
initializing a repository, staging files, committing changes, and pushing updates to a remote
repository such as GitHub. Additionally, describe the different types of objects Git stores (commits,
trees, and blobs) and explain how to view and interpret these objects using Git commands.
Include specific commands and output examples, such as git init, git add, git commit, and git push,
as well as how to inspect the commit log and the contents of files within the repository.
Version control - also known as source control or revision control - is an important software
development practice for tracking and managing changes made to code and other files. It is closely
related to source code management (Gitlab about, n.d.).
The version management tool (or version control system (VCS)) is used to manage multiple
versions of one or more files. It is used primarily in the field of web and software development and
mainly involves managing the source code.
CVCS DVCS
Architecture The main server keeps the Every developer has full copy
code and history of changes on their computers
Offline work Not allowed since connection Possible since developers can
to the server required keep data on their computers
2.2 Examples
• Git init:
7
What we have in our project folder after this command:
• Git config – here I change my name and email address globally and then for one local
project
• Git add – I added file to my project. Git status – checked recent changes in my project.
8
Figure 9. Git status of my project. Created by author.
• Git diff – this command shows difference between committed files and files in my directory.
• Git remote add origin – connection with remote repository like GitHub
9
Figure 13. Git remote add origin. Created by author.
10
Figure 17. Git cat-file blob output. Created by author.
11
Task 3:
Explain the fundamental structure of a static web page using HTML5, emphasizing the role of
various HTML tags and attributes. In your response, create a complete HTML code example for a
fictional online bookstore that includes a header, main content area, and footer. Describe how each
HTML element and attribute is used, including specific tags like <header>, <nav>, <section>,
<footer>, <h1>, <p>, <ul>, <li>, and <img>. Illustrate how you can apply attributes such as alt for
images and class for grouping elements. Furthermore, include HTML comments to explain the
purpose of each section of the code, as if documenting for future developers. Provide a brief
discussion on why a static page does not include dynamic content and how this limitation impacts
the overall functionality and user interaction.
Basic tags: <!doctype html>, <html>, <head>. <head> tag includes information about
document: <tittle>, links to design (css) and scripts (Java Script), other metadata like <meta
charset="UTF-8"> etc.
<body> - the whole body of document including header, main, footer etc.
Header: <header>.
Navigation: <nav>.
Main content: <main>. Includes different types of tags like <article>, <p>, <section>, <div> etc.
13
Footer: <footer>. (MDN Contributors, n.d.).
3.3. Why a static page does not include dynamic content and how this limitation impacts the
overall functionality and user interaction.
This page is built using only HTML, making it a static page. Static pages don't include animations,
server or database connections, so they can accept user input like files or images, but cannot send
these data to the server. After refreshing the page all the data will disappear. They also can't store
user data or session states. Because of these limitations, static pages aren't suitable for online
stores. However, they work well for simple websites like portfolios. For more advanced features,
it's better to use technologies like PHP, JavaScript, and connect the site to a server and a CMS.
14
Task 4:
In the context of web design, compare and contrast the fixed, fluid, adaptive, and responsive layout
approaches. Your answer should outline the primary characteristics of each layout type, including
their adaptability to different screen sizes. Explain how these layouts handle content presentation
and user experience on various devices, such as desktops, tablets, and smartphones. Additionally,
discuss the role of grid systems in these layouts and how breakpoints are used to enhance layout
flexibility. Provide practical examples of when each layout type might be most appropriate. Finally,
evaluate the advantages and disadvantages of each approach in terms of usability and design
efficiency.
Responsive web design enables a web page’s design and layout to automatically adapt to any
screen size. The design technique uses CSS media queries (a tailored style sheet) to inspect the
end user’s device characteristics. The website then renders itself accordingly. (Wix blog, n.d.).
Pros Cons
Consistent content experience across all Less control over how the site renders on each
platforms device
Works on new devices, even those with non- Can hinder visual hierarchy if elements reflow
standard screen dimensions in the wrong order or size
• 320
• 480
• 760
• 960
• 1200
• 1600
15
Pros Cons
Layout designers can convert fixed pixel measurements to percentages using the formula: target ÷
context = result. The target is the size of the element you are resizing, the context is the size of
the containing element, and the result is a percentage you can use in in your style rules (Robbins,
2018).
Pros Cons
Flexible width for any screen Content may "stretch" too much
Pros Cons
The easiest layout to develop and support Not adaptable to screen sizes
16
4.2. Grid systems and breakpoints
A grid system is a structure system of the site. This helps to organize elements of the page in
consistent order that helps users to use websites and interact with their content. We can call grids
“the skeleton of the website”. There are 5 grid systems that are commonly used in developing
websites.
This simple block grid features a large, central rectangular column, filling most of the page space
within the margins.
Block grids support a vertical reading experience, drawing the reader’s eyes downward. This is
ideal for text-heavy content like blogs, newsletters, articles, or an About Us page. Google Docs and
Microsoft Word both use block grids (Figma Resource Library, n.d.).
Column grid
This grid can be recognized from print and digital newspapers, which organize content into
columns. Media sites range from two to 12-column grids, but three are considered the UX sweet
spot.
With a column grid layout, text, visual elements, and videos fit within the column's vertical lines and
flowlines. A classic web design use case for column grids is a pricing page, where site visitors can
easily compare and contrast cost and feature differences to inform purchases (Figma Resource
Library, n.d.).
17
Figure 19. Schematic view of column grid. Created by author via Canva
Baseline grid
A baseline grid is like a piece of notebook paper—a dense grid with equally spaced horizontal
lines. These lines dictate where text must fit, aligning text throughout the document for scalability.
The once-standard 8px grid system uses a 4px baseline—but today, web designers measure text
size in REM to ensure it meets scalability and size standards for accessibility (Figma Resource
Library, n.d.).
Figure 20. Schematic view of baseline grid. Created by author via Canva
18
Hierarchical grid
Hierarchy allows you to organize modules and other page elements in order of importance, while
offering a more flexible, responsive page design.
Figure 21. Schematic view of hierarchical grid. Created by author via Canva
Modular grid
Most websites and apps that display a gallery of images rely on modular grids to organize content
into neat columns and rows. For example, a user’s profile on Instagram displays videos and photos
in modules. Clothing websites often show products in modular fashion for easy comparison (Figma
Resource Library, n.d.).
This grid combines the other types of grids such as columns, hierarchy, baselines, and
manuscripts in one structure.
19
Figure 22. Schematic view of modular grid. Created by author via Canva.
Breakpoints
Breakpoints are customizable widths that determine how your responsive layout behaves across
device or viewport sizes (Bootstrap documentation, n.d.).
Core concepts
• Breakpoints are the building blocks of responsive design. Use them to control when your
layout can be adapted at a particular viewport or device size.
• Use media queries to architect your CSS by breakpoint. Media queries are a feature of
CSS that allow you to conditionally apply styles based on a set of browser and operating
system parameters. We most commonly use min-width in our media queries.
• Mobile first, responsive design is the goal. Bootstrap’s CSS aims to apply the bare
minimum of styles to make a layout work at the smallest breakpoint, and then layers on
styles to adjust that design for larger devices. This optimizes your CSS, improves rendering
time, and provides a great experience for your visitors (Bootstrap documentation, n.d.).
As we talk about Bootstrap, it has six default breakpoints: x-small - <576px, small – sm - ≥576px,
medium – md - ≥768px, large – lg - ≥992px, extra large – xl - ≥1200px and extra-extra large – xxl -
≥1400px (Bootstrap documentation, n.d.).
20
Task 5:
Create a simple web application that manages a list of books using JSON data. The application
should include a basic interface for displaying and manipulating book information.
JSON Data Structure: Define a JSON object to represent a list of books, where each book has
attributes such as title, author, year, and genre. Ensure that your JSON data includes at least three
example books.
Display Data: Write a JavaScript function to parse the JSON data and display it in an HTML table.
The table should have columns for Title, Author, Year, and Genre. Show how the data from the
JSON object is dynamically inserted into the table.
Update Data: Implement a feature that allows users to update the details of a book. Provide an
input form where users can enter the title, author, year, and genre of the book they wish to update.
After submission, the book’s information should be updated in the JSON data and reflected in the
HTML table.
Remove Data: Add a function to remove a book from the list based on its title. Provide a way for
users to specify the title of the book they want to remove. Once removed, the book should be
deleted from the JSON data and the HTML table should be updated accordingly.
Validation: Include basic validation to ensure that book details are not left blank and that the year is
a valid number. Describe how you handle validation errors and ensure that users are prompted to
correct any mistakes before updating or removing data.
In your response, include examples of the JSON data structure, JavaScript functions, and
screenshots or code snippets showing how the data is displayed and manipulated in the web
application. Discuss how using JSON simplifies data management in this context and any
challenges you encountered during the implementation.
JSON is the simple text data format that usually is used with JavaScript. However, it can be used
with other programming languages such as Python, Java, etc. without any restrictions.
Advantages of JSON:
• Simple syntax. JSON’s syntax is easy to write and understand. One doesn’t even need to
know JavaScript to use JSON’s files.
21
• Compatible with many programming languages. It can be used with whatever language
one wants.
• Lightweight and Fast. JSON files are smaller and can be loaded by browser much faster,
than XML, for example.
• Flexible Data Types. JSON can store arrays, text data, ordered list, etc. It also can handle
complex data structures.
• Wide Browser Support. All modern browsers work with JSON.
Thanks to its simplicity, speed, flexibility, and broad compatibility, JSON has become one of the
most popular data formats in web development and beyond. It's easy to use, works across different
languages and platforms, and efficiently handles both simple and complex data. Whether you're
building a small app or a large system, JSON helps make data exchange smooth and reliable.
5.3. Examples
22
Figure 21. Overview of the validation output. Created by author.
23
Task 6:
Consider a peer-to-peer (P2P) marketplace platform where individuals can buy and sell used
items, such as electronics, clothing, and furniture. This platform allows users to create listings,
communicate with buyers and sellers, and complete transactions. Evaluate the security aspects of
this P2P marketplace, addressing the following areas:
1. Access Control: Discuss the importance of implementing robust access control mechanisms in
the P2P marketplace platform. Explain how different user roles, such as buyers, sellers, and
administrators, should have distinct access levels. Detail the security risks associated with
inadequate access controls, such as unauthorized access to user data or the ability to manipulate
listings. Propose solutions to enforce access control policies effectively, ensuring that users have
appropriate permissions based on their role and activities.
2. OWASP Risks: Analyze three relevant risks from the OWASP Cloud Top 10 list that could affect
the P2P marketplace. For instance, consider "Sensitive Information Disclosure," "Broken
Authentication," and "Insecure Direct Object References." Provide examples of how these risks
might manifest in the platform, such as exposure of personal details in user profiles or flaws in the
authentication process that could lead to unauthorized transactions. Suggest mitigation strategies
to address these risks, including encryption for sensitive data and improved authentication
mechanisms.
3. Server Configuration and Port Management: Examine the significance of proper server
configuration and port management in securing the P2P marketplace. Explain how misconfigured
servers or open ports could introduce vulnerabilities, such as unauthorized access or data
breaches. Describe best practices for configuring servers and managing ports to protect the
platform, including using firewalls to restrict access and minimizing the number of open ports.
4. Denial of Service (DoS) and Distributed Denial of Service (DDoS): Define Denial of Service
(DoS) and Distributed Denial of Service (DDoS) attacks and discuss their potential impact on the
availability of the P2P marketplace. Outline measures to safeguard the platform from these attacks,
such as implementing traffic monitoring, using rate limiting, and employing DDoS protection
services. In your answer, provide a comprehensive assessment of each security concern,
incorporating practical examples related to the P2P marketplace to illustrate your points.
Access control is the traditional center of gravity of computer security. It is where security
engineering meets computer science. Its function is to control which principals have access to
which resources in the system — which files they can read, which programs they can execute, how
they share data with other principals, and so on (Anderson, 2020).
24
Access control is essential for every internet resource and most of all for p2p platforms where
people leave their personal data.
Roles:
1. A seller or buyer can access admin tools and manipulate or steal the data.
2. A buyer or seller can see private information such as messages or hidden profiles.
3. Malicious users can bypass role restrictions to elevate their privileges.
4. Users can edit other people’s advertisements or even delete them.
Solutions:
1. Role-Based Access Control (RBAC): Allow users to have permissions based on their
roles (usual user: seller/buyer and admins).
2. Principle of Least Privilege (PoLP): Users get only those privileges they need to use the
platform.
3. Access control enforcement on both frontend and backend.
4. Audit logs that can be used for critical actions and periodic access reviews.
The OWASP Top 10 is a standard awareness document for developers and web application
security. It represents a broad consensus about the most critical security risks to web applications
(OWASP Foundation, 2021).
25
7. Identification and Authentication Failures
8. Software and Data Integrity Failures
9. Security Logging and Monitoring Failures
10. Server-Side Request Forgery (OWASP Foundation, 2021)
1. Sensitive Information Disclosure. This includes user data such as emails, phone
numbers, addresses, first and last names. Without proper encryption and data masking,
this information is vulnerable.
2. Broken Authentication. This includes weak password policy and lack of two-factor (2FA)
authentication.
3. Insecure Direct Object References (IDOR). This includes the possibility of manipulations
with object IDs to list private information. For example, the attacker may change object ID
from /orders/1001 to /orders/1002 to expose private information about another user.
Solutions:
1. Proper encryption. Using HTTPS protocols for all data transmissions can increase
security. Also, the platform should encrypt sensitive data at rest using algorithms such as
AES-256, and limit visible personal data.
2. Increase password requirements and 2FA. Enforce strong password requirements,
implement 2FA, and use secure cookie attributes such as HttpOnly, Secure, SameSite.
3. Validation of access. The platform should check user rights and validate access to every
resource server-side, use indirect object references (like UUIDs), and avoid exposing
internal IDs in URLs
A lack of server security can be caused by both developer mistakes in the server software and
errors in how the server is configured. Developer mistakes are often fixed through updates and
patches from the software provider. However, configuring a server is a complex task, and poor
configuration can let attackers access the system. This usually happens due to open ports or
incorrectly set folder access permissions. Risks related to open ports can be reduced by using a
firewall and configuring it properly.
Possible problems:
1. Open or unused ports can expose services to the public internet. For example, if a
database is listening on some port and this port is not firewalled, attackers can attempt
brute-force logins or exploit known vulnerabilities.
2. Default credentials that are still in use (e.g., admin:admin or root:toor) allow easy
unauthorized access to services.
26
Solutions:
1. Disabling unused services. Each running service represents a potential entry point to
attackers.
2. Using configuration management tools that help to enforce security settings consistently
across environments.
3. Configure firewalls to block all ports by default and only open the necessary ones.
4. Implement log monitoring and alerting tools, which can automatically ban IPs that show
suspicious behavior.
A denial-of-service (DoS) attack is a type of cyber attack in which a malicious actor aims to render
a computer or other device unavailable to its intended users by interrupting the device's normal
functioning. DoS attacks typically function by overwhelming or flooding a targeted machine with
requests until normal traffic is unable to be processed, resulting in denial-of-service to addition
users. A DoS attack is characterized by using a single computer to launch the attack (Cloudflare,
n.d.).
A distributed denial-of-service (DDoS) attack is a malicious attempt to disrupt the normal traffic of a
targeted server, service or network by overwhelming the target or its surrounding infrastructure
with a flood of Internet traffic (Cloudflare, n.d.).
Possible problems:
Solutions:
1. Rate limiting. Limit amount of possible request with tools cush as NGINX, Cloudflare, or
API Gateway.
2. Deploying Web Application Firewalls (WAFs). A WAF or web application firewall helps
protect web applications by filtering and monitoring HTTP traffic between a web application
and the Internet (Cloudflare, n.d.).
3. Monitoring traffic with tools like Prometheus and Grafana. This helps differentiate high
traffic from possible attacks.
4. Using DDos protection services like Cloudflare, AWS Shield, Akamai. CDN or cloud-
based DDoS protection services can provide protection against attackers.
27
Appendix A. List of figures
1. Figure 1. Example of static website. Source: Modern CSS, 2024.
2. Figure 2. Example of dynamic website. Source: H&M web store, 2025.
3. Figure 3. Initializing repository. Created by author.
4. Figure 4. Project folder. Created by author.
5. Figure 5. Git config. Created by author.
6. Figure 6. Git config (local project config). Created by author.
7. Figure 7. Changes in config file. Created by author.
8. Figure 8. Git add. Created by author.
9. Figure 9. Git status of my project. Created by author.
10. Figure 10. Git commit. Created by author.
11. Figure 11. Git diff. Created by author.
12. Figure 12. Git remote add origin. Created by author.
13. Figure 13. Git remote add origin. Created by author.
14. Figure 14. File added to GitHub. Created by author.
15. Figure 15. Git log. Created by author.
16. Figure 16. Git cat-file. Created by author.
17. Figure 17. Git cat-file blob output. Created by author.
18. Figure 18. Git cat-file blob and tree. Created by author.
19. Figure 19. Schematic view of column grid. Created by author via Canva.
20. Figure 20. Schematic view of baseline grid. Created by author via Canva.
21. Figure 21. Schematic view of hierarchical grid. Created by author via Canva.
22. Figure 22. Schematic view of modular grid. Created by author via Canva.
28
Appendix B. List of tables
1. Table 1. Static websites overview. Created by author.
2. Table 2. Dynamic websites overview. Created by author.
3. Table 3. ISO criteria explanation. Created by author.
4. Table 4. CVCS vs. DVCS. Created by author.
5. Table 5. Object types in Git. Created by author.
6. Table 6. HTML document structure. Created by author.
7. Table 7. HTML tags explanation Created by author.
8. Table 8. Responsive web design. Created by author.
9. Table 9. Adaptive web design. Created by author.
10. Table 10. Fluid web design. Created by author.
11. Table 11. Fixed web design. Created by author.
12. Table 12. User roles. Created by author.
29
Appendix C. Bibliography
1. Anderson, R. (2020). Security Engineering: A Guide to Building Dependable Distributed
Systems 3rd Edition. Wiley Publishing, Inc.
2. Bootstrap (n.d.). Bootstrap documentation. [Link]
started/introduction/
3. Chrome team. (n.d.). Overview of HTML | [Link]. [Link].
[Link] \
4. Cloudflare. (n.d.). What is a DDoS attack? [Link]
ru/learning/ddos/what-is-a-ddos-attack/
5. Cloudflare. (n.d.). What is a denial-of-service attack? [Link]
ru/learning/ddos/glossary/denial-of-service/
6. Figma Resource lab. (n.d.). 5 top web design grid layout examples.
[Link]
modular-grid
7. Figma Resource lab. (n.d.). Static vs. dynamic websites: Which website is right for you?
[Link]
websites
8. Git SCM. (n.d.). Git documentation. [Link]
9. Gitlab about. (n.d.). What is version control? [Link]
10. International Organization for Standardization. (2023). Systems and software engineering
— Systems and software Quality Requirements and Evaluation. (ISO Standard No.
ISO/IEC 25010:2023.) [Link]
11. Kay, M. (2009, June 2). Fixed vs. fluid vs. elastic layout: What’s the right one for you?
Smashing Magazine. [Link]
layout-whats-the-right-one-for-you/
12. MDN Contributors. (n.d.). Structuring the web with HTML: Structuring a page of content.
MDN Web Docs. [Link]
US/docs/Learn_web_development/Core/Structuring_content/Structuring_documents
13. MDN Contributors. (n.d.). HTML: Global attributes. MDN Web Docs.
[Link]
14. OWASP Foundation. (2021). OWASP Top 10: The ten most critical web application security
risks. [Link]
15. Robbins, J. N. (2018). Learning Web Design: A Beginner’s Guide to HTML, CSS,
JavaScript, and Web Graphics. O’Reilly Media.
16. Wix. (n.d.). Responsive vs. adaptive design: What’s the difference and which should you
use? [Link]
30