User:Buidhe paid/sandbox2
A web application (or web app) is application software that is accessed using a web browser.
Compared to downloaded applications, web applications are quicker to deploy and update because they can be accessed via a URL link. Additionally, they are compatible with a wider range of hardware and operating systems than other applications, and are often cheaper to develop. However, web applications often need an internet connection to work and have more limited functionality compared to native applications.
Web applications are vulnerable to various types of cyberattacks; defenses against malicious actors are incorporated into many. Web applications can be analyzed using functionality built into many popular web browsers, and third-party analytics are also available.
History
In 1995,
The invention of
Technologies
As of 2020[update], it is common for web applications to use the following technologies:[4]
- JavaScript is the only programming language allowed in client-side software loaded into a web browser. Server-side software may be in any programming language.[9]
- A
- A system for
- At least one web server, which most commonly is running a NginX is proprietary and is popular for high-volume applications because of a lower per-connection overhead.[13]
- Most web applications need a least one server-side database software to manage the
- Historically, local storage on the user's machine that persists after a user closes the tab or logs out has been minimized because of compatibility and other technical limitations.image editors.[16]
Types
The simplest type of web application is static and delivered to the client without any modifications.
Structure
Most web applications are split into client and server domains, and often there are multiple server-side domains.[19]
Traditional PC applications are typically single-tiered, residing solely on the client machine. In contrast, web applications inherently facilitate a multi-tiered architecture.
For more complex applications, a 3-tier solution may fall short, and it may be beneficial to use an n-tiered approach, where the greatest benefit is breaking the business logic, which resides on the application tier, into a more fine-grained model.[20] Another benefit may be adding an integration tier that separates the data tier from the rest of tiers by providing an easy-to-use interface to access the data.[20] For example, the client data would be accessed by calling a "list_clients()" function instead of making an SQL query directly against the client table on the database. This allows the underlying database to be replaced without making any change to the other tiers.[20]
There are some who view a web application as a two-tier architecture. This can be a "smart" client that performs all the work and queries a "dumb" server, or a "dumb" client that relies on a "smart" server.[20] The client would handle the presentation tier, the server would have the database (storage tier), and the business logic (application tier) would be on one of them or on both.[20] While this increases the scalability of the applications and separates the display and the database, it still does not allow for true specialization of layers, so most applications will outgrow this model.[20]
Security
As of 2022[update], the number of security breaches via web applications continues to increase. Most of these breaches aim to secure data relating to economic interests. Cyberattacks are carried out through a variety of methods and attack any available target, ranging from hardware to software.
To build a secure application, developers make security a priority during and after the development of the application's functionality.
Development
Compared to other types of applications that are downloaded rather than viewed in a browser, web applications are quicker to deploy and update because they can be accessed via a URL link. Additionally, they are compatible with a wider range of hardware and operating systems than other applications, and are often cheaper to develop. However, web applications often need an internet connection to work and have more limited functionality compared to native applications.[29]
Web development is often separated into front-end or client-side (the part of the application immediately viewable by the end user) and back-end (the part that is not immediately accessible, such as supporting databases).[30] For client-side development, some of the most important technologies to understand are HTML, CSS, and JavaScript.[31]
Like other software, web applications are often developed using a software-oriented
The optimization of performance for
Analysis
Web applications can be analyzed using functionality built into many popular web browsers.[39] Third party tools with even more analytical power are also available. Analysis tools are useful in hacking and security testing,[40] but also in performance improvement.[41]
See also
- D3.js
- Software as a service
- Mobile development framework
- Web 2.0
- Web engineering
- Web GIS
- Web services
- Web sciences
- Web widget
References
- ZDNet.
- ^ a b Hoffman 2020, p. 27.
- ^ Hoffman 2020, pp. 27–28.
- ^ Hoffman 2020, p. 28.
- ^ Hoffman 2020, pp. 29–30.
- .
- ^ Hoffman 2020, p. 32.
- ^ Hoffman 2020, pp. 28, 30–31.
- ^ Hoffman 2020, p. 33.
- ^ Hoffman 2020, pp. 45–46.
- ^ Hoffman 2020, p. 45.
- ^ Hoffman 2020, p. 46.
- ^ a b c d Hoffman 2020, p. 47.
- ^ Hoffman 2020, p. 49.
- ^ a b c Hoffman 2020, p. 50.
- ^ Hoffman 2020, p. 51.
- ^ "Web Application Development: Everything You Need to Know". www.turing.com. Retrieved 17 March 2024.
- ISSN 1877-0509.
- ^ Hoffman 2020, p. 53.
- ^ a b c d e f g h i Petersen, Jeremy (4 September 2008). "Benefits of using the n-tiered approach for web applications".
- ^ .
- ^ Hoffman 2020, p. 120.
- ^ Hoffman 2020, p. 87.
- ^ Hoffman 2020, pp. 105–106.
- ^ a b Hoffman 2020, p. 100.
- ^ Hoffman 2020, p. 104.
- ^ Lepofsky 2014, p. 13.
- ^ Hoffman 2020, pp. xxv–xxvi.
- ^ "A beginners guide to web application development (2024)". budibase.com. 24 January 2024. Retrieved 17 March 2024.
- ^ "Web Development". GeeksforGeeks. 5 December 2023. Retrieved 17 March 2024.
- ^ Purewal 2014, p. 25.
- ^ Purewal 2014, pp. 1–2, 6.
- ^ "Top 10 Frameworks for Web Applications". GeeksforGeeks. 25 February 2016. Retrieved 16 March 2024.
- ^ "MVC Framework Introduction". GeeksforGeeks. 21 March 2022. Retrieved 17 March 2024.
- ^ Shivakumar 2020, p. 45.
- ^ Shivakumar 2020, pp. 39, 41–43.
- .
- .
- ^ Hoffman 2020, pp. 55–56.
- ^ Hoffman 2020, p. 54.
- ^ Shivakumar 2020, p. 46.
Sources
- Hoffman, Andrew (2020). Web Application Security: Exploitation and Countermeasures for Modern Web Applications. O'Reilly Media, Inc. ISBN 978-1-4920-5308-8.
- Lepofsky, Ron (2014). The Manager's Guide to Web Application Security: A Concise Guide to the Weaker Side of the Web. Apress. ISBN 978-1-4842-0148-0.
- Purewal, Semmy (2014). Learning Web App Development: Build Quickly with Proven JavaScript Techniques. O'Reilly Media, Inc. ISBN 978-1-4493-7142-5.
- Shivakumar, Shailesh Kumar (2020). Modern Web Performance Optimization: Methods, Tools, and Patterns to Speed Up Digital Platforms. Apress. ISBN 978-1-4842-6528-4.