748:
243:
655:
79:
470:
181:
38:
303:
626:
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. Another benefit may be adding an integration tier
707:
Security breaches on these kinds of applications are a major concern because it can involve both enterprise information and private customer data. Protecting these assets is an important part of any web application and there are some key operational areas that must be included in the development
634:
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. The client would handle the presentation tier, the server would have the database (storage
635:
tier), and the business logic (application tier) would be on one of them or on both. 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.
416:
to the user interface that ran on the client side. So instead of sending data to the server in order to generate an entire web page, the embedded scripts of the downloaded page can perform various tasks such as input validation or showing/hiding parts of the page.
364:
In earlier computing models like client-server, the processing load for the application was shared between code on the server and code installed on each client locally. In other words, an application had its own pre-compiled client program which served as its
455:
engineer Alex
Russell in 2015, refers to apps taking advantage of new features supported by modern browsers, which initially run inside a web browser tab but later can run completely offline and can be launched without entering the app URL in the browser.
566:
Traditional PC applications are typically single-tiered, residing solely on the client machine. In contrast, web applications inherently facilitate a multi-tiered architecture. Though many variations are possible, the most common structure is the
623:) is the middle tier (application logic), and a database is the third tier (storage). 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.
443:
started to make their client sides more and more interactive since early 2000s. A web page script is able to contact the server for storing/retrieving data without downloading an entire web page. The practice became known as Ajax in 2005.
708:
process. This includes processes for authentication, authorization, asset handling, input, and logging and auditing. Building security into the applications from the beginning can be more effective and less disruptive in the long run.
724:
by allowing a development team to focus on the parts of their application which are unique to their goals without having to resolve common development issues such as user management. Many of the frameworks in use are
627:
that separates the data tier from the rest of tiers by providing an easy-to-use interface to access the data. For example, the client data would be accessed by calling a "list_clients()" function instead of making an
863:
991:
373:. An upgrade to the server-side code of the application would typically also require an upgrade to the client-side code installed on each user workstation, adding to the
1232:
1222:
947:
1013:
631:
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.
420:
In 1999, the "web application" concept was introduced in the Java language in the
Servlet Specification version 2.2. . At that time both JavaScript and
1214:
1118:
853:
828:
1269:
921:
1870:
694:
553:
289:
224:
162:
65:
1199:
987:
672:
96:
51:
885:
1743:
1184:
1039:
534:
143:
1855:
1398:
676:
491:
484:
191:
100:
506:
115:
943:
1537:
721:
616:
840:
A web application is a computer program that utilizes web browsers and web technology to perform tasks over the
Internet.
1264:
1111:
1017:
771:
513:
122:
1418:
1274:
1254:
600:
381:. In addition, both the client and server components of the application were usually tightly bound to a particular
1600:
1294:
1289:
717:
1860:
1817:
1587:
1500:
1394:
733:
520:
255:
129:
1865:
1179:
592:
206:
1822:
1620:
1104:
665:
502:
480:
337:
202:
111:
89:
1306:
1144:
568:
1542:
1495:
1425:
1194:
766:
405:
382:
747:
1615:
1483:
1478:
1314:
726:
323:
264:
57:
820:
1827:
1610:
1448:
1237:
588:
448:
341:
1725:
1547:
1413:
1227:
425:
393:
them to others was often prohibitively expensive for all but the largest applications (Nowadays,
353:
1070:
917:
1738:
1369:
1090:
644:
374:
370:
527:
136:
1807:
1788:
1753:
1729:
1699:
1689:
1284:
891:
386:
307:
1783:
1242:
781:
753:
349:
242:
1605:
1577:
1532:
429:
366:
331:
854:"JavaScript creator Eich: My take on 20 years of the world's top programming language"
1849:
1834:
1795:
1773:
1660:
1562:
1247:
895:
620:
452:
1733:
1389:
1259:
604:
413:
378:
1630:
1567:
1439:
1385:
1135:
1073:, changes to HTML and related APIs to ease authoring of web-based applications.
1047:
796:
791:
654:
584:
469:
327:
78:
583:. A web browser is the first tier (presentation), an engine using some dynamic
1572:
1552:
1527:
1354:
1334:
801:
743:
736:, although currently there are not many viable platforms that fit this model.
596:
409:
394:
397:
for mobile devices are also hobbled by some or all of the foregoing issues).
1595:
1557:
1349:
1204:
302:
1778:
1635:
1403:
1364:
1359:
1339:
1329:
1324:
401:
1086:
1748:
1694:
1510:
1490:
1408:
1189:
1127:
887:
Java
Servlet Specification ("Specification") Version: 2.2 Final Release
786:
776:
732:
In addition, there is potential for the development of applications on
679: in this section. Unsourced material may be challenged and removed.
608:
433:
390:
345:
17:
432:
object had only been recently introduced on
Internet Explorer 5 as an
1705:
1645:
1640:
1519:
1319:
1172:
1162:
1157:
209:. Statements consisting only of original research should be removed.
1673:
1668:
1650:
1473:
1466:
1461:
1456:
1167:
1076:
858:
761:
440:
301:
1096:
571:
application. In its most common form, the three tiers are called
1800:
1279:
1152:
1100:
1625:
1344:
988:"Benefits of using the n-tiered approach for web applications"
648:
628:
612:
463:
421:
236:
174:
72:
31:
944:"Progressive Web Apps: Escaping Tabs Without Losing Our Soul"
716:
Writing web applications is simplified with the use of
260:
198:
1080:
884:
Davidson, James Duncan; Coward, Danny (1999-12-17).
451:", the term coined by designer Frances Berriman and
1766:
1718:
1682:
1659:
1586:
1518:
1509:
1447:
1438:
1378:
1305:
1213:
1143:
1134:
103:. Unsourced material may be challenged and removed.
369:and had to be separately installed on each user's
29:Application that uses a web browser as a client
1112:
310:, a groupware and open-source web application
8:
334:to users with an active network connection.
66:Learn how and when to remove these messages
1515:
1444:
1140:
1119:
1105:
1097:
981:
979:
977:
975:
973:
971:
969:
967:
965:
695:Learn how and when to remove this message
554:Learn how and when to remove this message
290:Learn how and when to remove this message
225:Learn how and when to remove this message
163:Learn how and when to remove this message
330:. Web applications are delivered on the
812:
490:Please improve this section by adding
428:had still not yet been coined and the
1014:"Top Tips for Secure App Development"
986:Petersen, Jeremy (4 September 2008).
7:
994:from the original on 1 December 2017
677:adding citations to reliable sources
101:adding citations to reliable sources
950:from the original on March 24, 2021
412:, allowing programmers to add some
25:
47:This article has multiple issues.
918:"What Does AJAX Even Stand For?"
894:. pp. 43–46. Archived from
746:
653:
468:
424:had already been developed, but
241:
179:
77:
36:
924:from the original on 2021-10-18
866:from the original on 2023-09-26
831:from the original on 2022-08-15
664:needs additional citations for
88:needs additional citations for
55:or discuss these issues on the
1077:Web Applications Working Group
720:. These frameworks facilitate
1:
722:rapid application development
492:secondary or tertiary sources
821:"What Is A Web Application?"
772:Mobile development framework
767:Software as a service (SaaS)
1040:"Web application framework"
916:Jay Hoffmann (2019-03-04).
254:to comply with Knowledge's
205:the claims made and adding
1887:
1071:HTML5 Draft recommendation
1016:. Dell.com. Archived from
734:Internet operating systems
718:web application frameworks
642:
1871:User interface techniques
1081:World Wide Web Consortium
344:are two approaches for a
326:that is accessed using a
852:Liam Tung (2020-06-15).
306:Screenshot from 2007 of
267:may contain suggestions.
252:may need to be rewritten
479:relies excessively on
311:
1856:Software architecture
406:client-side scripting
383:computer architecture
305:
727:open-source software
673:improve this article
587:technology (such as
449:Progressive web apps
377:cost and decreasing
324:application software
97:improve this article
1414:Application server
439:Applications like
312:
190:possibly contains
1843:
1842:
1762:
1761:
1739:Browser extension
1714:
1713:
1434:
1433:
1370:Phusion Passenger
1091:Google Developers
1038:Multiple (wiki).
705:
704:
697:
645:Internet security
564:
563:
556:
538:
503:"Web application"
371:personal computer
300:
299:
292:
282:
281:
256:quality standards
235:
234:
227:
192:original research
173:
172:
165:
147:
112:"Web application"
70:
16:(Redirected from
1878:
1861:Web applications
1808:Web API security
1730:Remote scripting
1700:Web SQL Database
1516:
1445:
1141:
1121:
1114:
1107:
1098:
1059:
1058:
1056:
1055:
1046:. Archived from
1035:
1029:
1028:
1026:
1025:
1010:
1004:
1003:
1001:
999:
983:
960:
959:
957:
955:
939:
933:
932:
930:
929:
913:
907:
906:
904:
903:
892:Sun Microsystems
881:
875:
874:
872:
871:
849:
843:
842:
837:
836:
817:
756:
751:
750:
700:
693:
689:
686:
680:
657:
649:
559:
552:
548:
545:
539:
537:
496:
472:
464:
414:dynamic elements
408:language called
387:operating system
295:
288:
277:
274:
268:
245:
237:
230:
223:
219:
216:
210:
207:inline citations
183:
182:
175:
168:
161:
157:
154:
148:
146:
105:
81:
73:
62:
40:
39:
32:
21:
1886:
1885:
1881:
1880:
1879:
1877:
1876:
1875:
1866:Web development
1846:
1845:
1844:
1839:
1813:Web application
1758:
1710:
1678:
1655:
1582:
1505:
1430:
1374:
1301:
1280:JavaScript JSGI
1260:ASP.NET Handler
1243:Jakarta Servlet
1209:
1130:
1125:
1087:PWAs on Web.dev
1067:
1062:
1053:
1051:
1037:
1036:
1032:
1023:
1021:
1012:
1011:
1007:
997:
995:
985:
984:
963:
953:
951:
942:Russell, Alex.
941:
940:
936:
927:
925:
915:
914:
910:
901:
899:
883:
882:
878:
869:
867:
851:
850:
846:
834:
832:
819:
818:
814:
810:
782:Web engineering
754:Internet portal
752:
745:
742:
714:
701:
690:
684:
681:
670:
658:
647:
641:
560:
549:
543:
540:
497:
495:
489:
485:primary sources
473:
462:
362:
316:web application
296:
285:
284:
283:
278:
272:
269:
259:
246:
231:
220:
214:
211:
196:
184:
180:
169:
158:
152:
149:
106:
104:
94:
82:
41:
37:
30:
23:
22:
15:
12:
11:
5:
1884:
1882:
1874:
1873:
1868:
1863:
1858:
1848:
1847:
1841:
1840:
1838:
1837:
1832:
1831:
1830:
1825:
1820:
1810:
1805:
1804:
1803:
1793:
1792:
1791:
1786:
1776:
1770:
1768:
1764:
1763:
1760:
1759:
1757:
1756:
1751:
1746:
1741:
1736:
1722:
1720:
1716:
1715:
1712:
1711:
1709:
1708:
1703:
1702:(formerly W3C)
1697:
1692:
1686:
1684:
1680:
1679:
1677:
1676:
1671:
1665:
1663:
1657:
1656:
1654:
1653:
1648:
1643:
1638:
1633:
1628:
1623:
1618:
1613:
1608:
1603:
1598:
1592:
1590:
1584:
1583:
1581:
1580:
1578:XMLHttpRequest
1575:
1570:
1565:
1560:
1555:
1550:
1545:
1540:
1535:
1530:
1524:
1522:
1513:
1507:
1506:
1504:
1503:
1498:
1493:
1488:
1487:
1486:
1476:
1471:
1470:
1469:
1464:
1453:
1451:
1442:
1436:
1435:
1432:
1431:
1429:
1428:
1423:
1422:
1421:
1411:
1406:
1401:
1392:
1382:
1380:
1376:
1375:
1373:
1372:
1367:
1362:
1357:
1352:
1347:
1342:
1337:
1332:
1327:
1322:
1317:
1311:
1309:
1307:Apache modules
1303:
1302:
1300:
1299:
1298:
1297:
1287:
1282:
1277:
1272:
1267:
1262:
1257:
1252:
1251:
1250:
1240:
1235:
1230:
1225:
1219:
1217:
1211:
1210:
1208:
1207:
1202:
1197:
1192:
1187:
1182:
1177:
1176:
1175:
1170:
1165:
1160:
1149:
1147:
1138:
1132:
1131:
1128:Web interfaces
1126:
1124:
1123:
1116:
1109:
1101:
1095:
1094:
1084:
1074:
1066:
1065:External links
1063:
1061:
1060:
1030:
1005:
961:
934:
908:
876:
844:
827:. Stack Path.
811:
809:
806:
805:
804:
799:
794:
789:
784:
779:
774:
769:
764:
758:
757:
741:
738:
713:
710:
703:
702:
661:
659:
652:
643:Main article:
640:
637:
562:
561:
476:
474:
467:
461:
458:
430:XMLHttpRequest
367:user interface
361:
358:
332:World Wide Web
298:
297:
280:
279:
249:
247:
240:
233:
232:
187:
185:
178:
171:
170:
85:
83:
76:
71:
45:
44:
42:
35:
28:
24:
14:
13:
10:
9:
6:
4:
3:
2:
1883:
1872:
1869:
1867:
1864:
1862:
1859:
1857:
1854:
1853:
1851:
1836:
1835:Web framework
1833:
1829:
1826:
1824:
1821:
1819:
1816:
1815:
1814:
1811:
1809:
1806:
1802:
1799:
1798:
1797:
1796:Web standards
1794:
1790:
1787:
1785:
1782:
1781:
1780:
1777:
1775:
1774:Microservices
1772:
1771:
1769:
1765:
1755:
1752:
1750:
1747:
1745:
1742:
1740:
1737:
1735:
1731:
1727:
1724:
1723:
1721:
1717:
1707:
1704:
1701:
1698:
1696:
1693:
1691:
1688:
1687:
1685:
1681:
1675:
1672:
1670:
1667:
1666:
1664:
1662:
1658:
1652:
1649:
1647:
1644:
1642:
1639:
1637:
1634:
1632:
1629:
1627:
1624:
1622:
1619:
1617:
1614:
1612:
1609:
1607:
1604:
1602:
1599:
1597:
1594:
1593:
1591:
1589:
1585:
1579:
1576:
1574:
1571:
1569:
1566:
1564:
1563:Web messaging
1561:
1559:
1556:
1554:
1551:
1549:
1546:
1544:
1541:
1539:
1536:
1534:
1531:
1529:
1526:
1525:
1523:
1521:
1517:
1514:
1512:
1508:
1502:
1499:
1497:
1494:
1492:
1489:
1485:
1482:
1481:
1480:
1477:
1475:
1472:
1468:
1465:
1463:
1460:
1459:
1458:
1455:
1454:
1452:
1450:
1446:
1443:
1441:
1437:
1427:
1424:
1420:
1417:
1416:
1415:
1412:
1410:
1407:
1405:
1402:
1400:
1396:
1393:
1391:
1387:
1384:
1383:
1381:
1377:
1371:
1368:
1366:
1363:
1361:
1358:
1356:
1353:
1351:
1348:
1346:
1343:
1341:
1338:
1336:
1333:
1331:
1328:
1326:
1323:
1321:
1318:
1316:
1313:
1312:
1310:
1308:
1304:
1296:
1293:
1292:
1291:
1288:
1286:
1283:
1281:
1278:
1276:
1273:
1271:
1268:
1266:
1263:
1261:
1258:
1256:
1253:
1249:
1246:
1245:
1244:
1241:
1239:
1236:
1234:
1231:
1229:
1226:
1224:
1221:
1220:
1218:
1216:
1212:
1206:
1203:
1201:
1198:
1196:
1193:
1191:
1188:
1186:
1183:
1181:
1178:
1174:
1171:
1169:
1166:
1164:
1161:
1159:
1156:
1155:
1154:
1151:
1150:
1148:
1146:
1142:
1139:
1137:
1133:
1129:
1122:
1117:
1115:
1110:
1108:
1103:
1102:
1099:
1092:
1088:
1085:
1082:
1078:
1075:
1072:
1069:
1068:
1064:
1050:on 2020-06-20
1049:
1045:
1041:
1034:
1031:
1020:on 2012-05-22
1019:
1015:
1009:
1006:
993:
989:
982:
980:
978:
976:
974:
972:
970:
968:
966:
962:
949:
945:
938:
935:
923:
919:
912:
909:
898:on 2010-01-07
897:
893:
889:
888:
880:
877:
865:
861:
860:
855:
848:
845:
841:
830:
826:
825:stackpath.com
822:
816:
813:
807:
803:
800:
798:
795:
793:
790:
788:
785:
783:
780:
778:
775:
773:
770:
768:
765:
763:
760:
759:
755:
749:
744:
739:
737:
735:
730:
728:
723:
719:
711:
709:
699:
696:
688:
685:February 2018
678:
674:
668:
667:
662:This section
660:
656:
651:
650:
646:
638:
636:
632:
630:
624:
622:
621:Ruby on Rails
618:
614:
610:
606:
602:
598:
594:
590:
586:
582:
578:
574:
570:
558:
555:
547:
544:November 2022
536:
533:
529:
526:
522:
519:
515:
512:
508:
505: –
504:
500:
499:Find sources:
493:
487:
486:
482:
477:This section
475:
471:
466:
465:
459:
457:
454:
453:Google Chrome
450:
445:
442:
437:
435:
431:
427:
423:
418:
415:
411:
407:
404:introduced a
403:
398:
396:
392:
388:
384:
380:
376:
372:
368:
359:
357:
355:
351:
347:
343:
339:
335:
333:
329:
325:
321:
317:
309:
304:
294:
291:
276:
266:
262:
257:
253:
250:This article
248:
244:
239:
238:
229:
226:
218:
208:
204:
200:
194:
193:
188:This article
186:
177:
176:
167:
164:
156:
153:February 2018
145:
142:
138:
135:
131:
128:
124:
121:
117:
114: –
113:
109:
108:Find sources:
102:
98:
92:
91:
86:This article
84:
80:
75:
74:
69:
67:
60:
59:
54:
53:
48:
43:
34:
33:
27:
19:
1812:
1449:Browser APIs
1390:Web resource
1052:. Retrieved
1048:the original
1043:
1033:
1022:. Retrieved
1018:the original
1008:
996:. Retrieved
952:. Retrieved
937:
926:. Retrieved
911:
900:. Retrieved
896:the original
886:
879:
868:. Retrieved
857:
847:
839:
833:. Retrieved
824:
815:
797:Web sciences
792:Web services
731:
715:
706:
691:
682:
671:Please help
666:verification
663:
633:
625:
580:
576:
573:presentation
572:
569:three-tiered
565:
550:
541:
531:
524:
517:
510:
498:
478:
446:
438:
419:
399:
379:productivity
363:
352:more like a
336:
319:
315:
313:
286:
270:
261:You can help
251:
221:
212:
189:
159:
150:
140:
133:
126:
119:
107:
95:Please help
90:verification
87:
63:
56:
50:
49:Please help
46:
26:
1828:Progressive
1823:Single-page
1631:WebAssembly
1611:Geolocation
1568:Web storage
1474:C NPRuntime
1462:LiveConnect
1440:Client-side
1386:Web service
1315:mod_include
1270:Python ASGI
1265:Python WSGI
1215:Server APIs
1136:Server-side
998:24 November
712:Development
585:Web content
577:application
395:native apps
342:progressive
338:Single-page
328:web browser
1850:Categories
1596:DOM events
1573:Web worker
1558:WebSockets
1419:comparison
1355:mod_python
1335:mod_parrot
1168:Encryption
1054:2010-03-06
1024:2012-06-22
928:2021-10-18
902:2008-07-27
870:2021-10-18
835:2022-08-15
808:References
802:Web widget
597:ColdFusion
514:newspapers
481:references
410:JavaScript
199:improve it
123:newspapers
52:improve it
1754:Scripting
1616:IndexedDB
1467:XPConnect
1426:Scripting
1350:mod_proxy
1295:container
1285:Perl PSGI
1275:Ruby Rack
1248:container
1205:WebSocket
1145:Protocols
460:Structure
400:In 1995,
265:talk page
203:verifying
58:talk page
1779:Web page
1636:WebAuthn
1511:Web APIs
1404:Open API
1365:mod_ruby
1360:mod_wsgi
1340:mod_perl
1330:mod_mono
1325:mod_lisp
1255:CLI OWIN
1044:Docforge
992:Archived
954:June 15,
948:Archived
922:Archived
864:Archived
829:Archived
740:See also
639:Security
605:JSP/Java
436:object.
402:Netscape
273:May 2022
215:May 2022
1789:Dynamic
1749:Web IDL
1695:GraphQL
1661:Khronos
1491:ActiveX
1479:C PPAPI
1457:C NPAPI
1409:Webhook
1345:mod_php
1290:Portlet
1238:COM ASP
1233:C ISAPI
1228:C ASAPI
1223:C NSAPI
1079:at the
787:Web GIS
777:Web 2.0
609:Node.js
581:storage
528:scholar
434:ActiveX
391:porting
375:support
360:History
346:website
320:web app
197:Please
137:scholar
18:Web App
1784:Static
1767:Topics
1744:Mashup
1719:Topics
1706:WebUSB
1683:Others
1646:WebRTC
1641:WebGPU
1533:Canvas
1520:WHATWG
1379:Topics
1320:mod_jk
1173:WebDAV
617:Python
530:
523:
516:
509:
501:
354:native
263:. The
139:
132:
125:
118:
110:
1734:DHTML
1690:Gears
1674:WebGL
1669:WebCL
1651:WebXR
1553:Video
1528:Audio
1083:(W3C)
859:ZDNet
762:D3.js
535:JSTOR
521:books
441:Gmail
356:app.
322:) is
308:Horde
144:JSTOR
130:books
1818:Rich
1801:REST
1732:vs.
1728:and
1726:Ajax
1606:File
1538:CORS
1501:XBAP
1484:NaCl
1397:vs.
1388:vs.
1200:WSRP
1190:FCGI
1185:SCGI
1153:HTTP
1000:2017
956:2015
601:Dart
579:and
507:news
426:Ajax
389:and
385:and
350:seem
340:and
318:(or
116:news
1626:SVG
1621:MSE
1601:EME
1588:W3C
1548:SSE
1543:DOM
1496:BHO
1399:ROA
1395:WOA
1195:AJP
1180:CGI
1089:by
675:by
629:SQL
619:or
613:PHP
593:CGI
589:ASP
483:to
422:XML
348:to
201:by
99:by
1852::
1163:v3
1158:v2
1042:.
990:.
964:^
946:.
920:.
890:.
862:.
856:.
838:.
823:.
729:.
615:,
611:,
607:,
603:,
599:,
595:,
591:,
575:,
494:.
314:A
61:.
1120:e
1113:t
1106:v
1093:.
1057:.
1027:.
1002:.
958:.
931:.
905:.
873:.
698:)
692:(
687:)
683:(
669:.
557:)
551:(
546:)
542:(
532:·
525:·
518:·
511:·
488:.
447:"
293:)
287:(
275:)
271:(
258:.
228:)
222:(
217:)
213:(
195:.
166:)
160:(
155:)
151:(
141:·
134:·
127:·
120:·
93:.
68:)
64:(
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.