User:Buidhe paid/sandbox2

Source: Wikipedia, the free encyclopedia.

Screenshot from 2007 of Horde, a groupware and open-source web application

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.

Representational State Transfer (REST)—an interface for separating the client and server side of the application—and database software such as SQL
to manage data regarding different users.

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,

client-side scripting language called JavaScript, allowing programmers to add some dynamic elements to the user interface that ran on the client side. Instead of sending data to the server in order to generate an entire web page, the embedded scripts of the downloaded page can perform tasks such as input validation and showing or hiding parts of the page.[1] Before 2010, many web applications were developed to make the server generate a page in HTML, JavaScript, and CSS that was sent to the client. To update, the client would send another request that was returned via HTTP.[2]

The invention of

network protocol. The client-side software is more similar to a standard desktop application than to older web applications: it only needs to be loaded once, instead of on each update, and can make requests to multiple servers for data.[3]

Technologies

As of 2020[update], it is common for web applications to use the following technologies:[4]

Types

The simplest type of web application is static and delivered to the client without any modifications.

Progressive web applications are an innovation that function like a mobile app, but are delivered via a web browser.[17] Advantages of progressive web apps over traditional mobile apps are that they are portable across many different operating systems, require less persistent storage on the device, and are still accessible without an internet connection.[18]

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.

JSP/Java, Node.js, PHP, Python or Ruby on Rails) is the middle tier (application logic), and a database is the third tier (storage).[20]
The web browser sends requests to the middle tier, which services them by making queries and updates against the database and generates a user interface.

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, 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.

session management that many applications run over HTTP, which does not allow saving user data between requests.[21] Because most applications rely on dependencies, which are usually not scrutinized as much as custom-written code, the dependencies or the linkage between them and the in-house code can be the source of vulnerabilities.[23] On the other hand, reinventing code can lead to its own security pitfalls if the new code is not as secure as the alternative.[24]

To build a secure application, developers make security a priority during and after the development of the application's functionality.

security audits, vulnerability assessments, and penetration tests (deliberate attempted cyberattack). Testing is followed by rewriting the software to close the identified vulnerabilities.[27] Most security features will have trade-offs, for example increasing the cost of development or reducing the application's usability.[28]

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

graphical user interfaces (GUIs) on computers, has been repurposed for web applications. The benefit of this model is that it separates the part of the software controlling the overall application from that which is displaying content to the user or taking commands.[34]

The optimization of performance for

caching and prefetching with more accurate predictions of what content the user will want next.[36] Reducing power consumption on the client side is a particular focus for web applications viewed from mobile devices.[37] Testing web applications can be more difficult than other applications due to the wide range of hardware and operating systems on which they are expected to function. Nevertheless, there are a variety of tools available for testing web applications and finding faults.[38]

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

References

  1. ZDNet
    .
  2. ^ a b Hoffman 2020, p. 27.
  3. ^ Hoffman 2020, pp. 27–28.
  4. ^ Hoffman 2020, p. 28.
  5. ^ Hoffman 2020, pp. 29–30.
  6. .
  7. ^ Hoffman 2020, p. 32.
  8. ^ Hoffman 2020, pp. 28, 30–31.
  9. ^ Hoffman 2020, p. 33.
  10. ^ Hoffman 2020, pp. 45–46.
  11. ^ Hoffman 2020, p. 45.
  12. ^ Hoffman 2020, p. 46.
  13. ^ a b c d Hoffman 2020, p. 47.
  14. ^ Hoffman 2020, p. 49.
  15. ^ a b c Hoffman 2020, p. 50.
  16. ^ Hoffman 2020, p. 51.
  17. ^ "Web Application Development: Everything You Need to Know". www.turing.com. Retrieved 17 March 2024.
  18. ISSN 1877-0509
    .
  19. ^ Hoffman 2020, p. 53.
  20. ^ a b c d e f g h i Petersen, Jeremy (4 September 2008). "Benefits of using the n-tiered approach for web applications".
  21. ^ .
  22. ^ Hoffman 2020, p. 120.
  23. ^ Hoffman 2020, p. 87.
  24. ^ Hoffman 2020, pp. 105–106.
  25. ^ a b Hoffman 2020, p. 100.
  26. ^ Hoffman 2020, p. 104.
  27. ^ Lepofsky 2014, p. 13.
  28. ^ Hoffman 2020, pp. xxv–xxvi.
  29. ^ "A beginners guide to web application development (2024)". budibase.com. 24 January 2024. Retrieved 17 March 2024.
  30. ^ "Web Development". GeeksforGeeks. 5 December 2023. Retrieved 17 March 2024.
  31. ^ Purewal 2014, p. 25.
  32. ^ Purewal 2014, pp. 1–2, 6.
  33. ^ "Top 10 Frameworks for Web Applications". GeeksforGeeks. 25 February 2016. Retrieved 16 March 2024.
  34. ^ "MVC Framework Introduction". GeeksforGeeks. 21 March 2022. Retrieved 17 March 2024.
  35. ^ Shivakumar 2020, p. 45.
  36. ^ Shivakumar 2020, pp. 39, 41–43.
  37. .
  38. .
  39. ^ Hoffman 2020, pp. 55–56.
  40. ^ Hoffman 2020, p. 54.
  41. ^ Shivakumar 2020, p. 46.

Sources