Knowledge

Web framework

Source 📝

722:" to be used, increasing the simplicity of the site and allowing for better indexing by search engines. For example, a URL that ends with "/page.cgi?cat=science&topic=physics" could be changed to simply "/page/science/physics". This makes the URL easier for people to remember, read and write, and provides search engines with better information about the structural layout of the site. A graph traversal approach also tends to result in the creation of friendly URLs. A shorter URL such as "/page/science" tends to exist by default as that is simply a shorter form of the longer traversal to "/page/science/physics". 752:", is a web development technique for creating web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user requests a change. This is intended to increase a web page's interactivity, speed, maintainability, and 588:". A web cache stores copies of documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met. Some application frameworks provide mechanisms for caching documents and bypassing various stages of the page's preparation, such as database access or template interpretation. 1378:
Object Relational Mapping, commonly referred to as its abbreviation ORM, is a technique that connects the rich objects of an application to tables in a relational database management system...Active Record automatically creates methods to allow an application to read and manipulate data stored within
254:
Most MVC frameworks follow a push-based architecture also called "action-based". These frameworks use actions that do the required processing, and then "push" the data to the view layer to render the results. An alternative to this is pull-based architecture, sometimes also called "component-based".
330:
Server-side page changes typically require that the page be refreshed, but allow any language to be used and more computing power to be utilized. Client-side changes allow the page to be updated in small chunks which feels like a desktop application, but are limited to JavaScript and run in the
279:. The client on web applications is a web browser that runs HTML generated by the application layer. The term should not be confused with MVC, where, unlike in three-tier architecture, it is considered a good practice to keep business logic away from the controller, the "middle layer". 657:
as a persistence layer, which can generate a database schema at runtime capable of persisting the necessary information. This allows the application designer to design business objects without needing to explicitly define a database schema. Frameworks such as
781:, the complexity of programming directly in Ajax and JavaScript has become so apparent that compiler technology has stepped in, to allow developers to code in high-level languages such as Java, Python and Ruby. The first of these compilers was 529:" design pattern is considered to be a defining principle of a framework, and benefits the code by enforcing a common flow for a team which everyone can customize in similar ways. For example, some popular "microframeworks" such as Ruby's 793:
and RubyJS following some time after. These compilers and their associated widget set libraries make the development of rich media Ajax applications much more akin to that of developing desktop applications.
537:) allow for "middleware" hooks prior to and after HTTP requests. These middleware functions can be anything, and allow the user to define logging, authentication and session management, and redirecting. 695:
mapping or routing facility is the mechanism by which the framework interprets URLs. Some frameworks, such as Drupal and Django, match the provided URL against pre-determined patterns using
331:
user's browser, which may have limited computing power. Some mix of the two is typically used. Applications which make heavy use of JavaScript and only refresh parts of the page, are called
255:
These frameworks start with the view layer, which can then "pull" results from multiple controllers as needed. In this architecture, multiple controllers can be involved with a single view.
630:
to a database backend, enabling web applications to work with a variety of databases with no code changes, and allowing programmers to work with higher-level concepts. Additionally, some
1187: 1213: 143:. More recent implementations utilize persistent processes amongst other techniques to reduce the footprint in the server's resources and offer a general performance boost. 287:
Frameworks are built to support the construction of internet applications based on a single programming language, ranging in focus from general purpose tools such as
2223: 2549: 2539: 295:, which augment the capabilities of a specific language, to native-language programmable packages built around a specific user application, such as 808:
Some frameworks provide tools for creating and providing web services. These utilities may offer similar tools as the rest of the web application.
1061: 238:, and allows multiple interfaces to be applied. In web applications, this permits different views to be presented, for example serving different 139:
Original implementations of the CGI interface typically had adverse effects on the server load however, because each request started a separate
854: 1085: 618:
is one example that provides role-based access to pages, and provides a web-based interface for creating users and assigning them roles.
146:
In 1995, fully integrated server/language development environments first emerged and new web-specific languages were introduced, such as
17: 2531: 2435: 1511: 1491: 860: 215: 902: 763:
that exclusively deal with Ajax support. Some Ajax frameworks are even embedded as a part of larger frameworks. For example, the
1416: 1104: 1440:
Maximilien, E. M. (2006). "Tutorial 4: Web Services on Rails: Using Ruby and Rails for Web Services Development and Mashups".
1191: 2586: 1576: 272: 936: 703:
techniques to translate the provided URL into one that the underlying engine will recognize. Another technique is that of
976: 176:
In the late 1990s, mature, "full stack" frameworks began to appear, that often gathered multiple libraries useful for
1457: 165:
to help with common tasks, web applications often require specific libraries for particular tasks, such as creating
2516: 1756: 650: 1391: 3060: 2501: 826: 2715: 1893: 1125: 891: 841: 830: 2854: 2401: 2377: 2357: 2129: 880: 662:
can also work in reverse, that is, define properties of model objects at runtime based on a database schema.
209: 193: 1256: 525:
of a program and allow the user of the framework to "hook into" that flow by exposing various events. This "
2581: 2428: 2286: 1484: 914: 614:
to identify the users of the application, and restrict access to functions based on some defined criteria.
275:. The application contains the business logic, running on a server and communicates with the client using 3070: 2735: 2591: 2571: 2391: 2268: 2235: 1741: 639: 631: 312: 2544: 2917: 2611: 2606: 2343: 83: 3134: 2904: 2817: 2711: 1217: 714:
A URL mapping system that uses pattern matching or rewriting to route and handle requests allows for
635: 296: 2496: 1693: 1333: 885: 692: 597: 132:(CGI) standard was introduced for interfacing external applications with web servers, to provide a 129: 2795: 3172: 3139: 2937: 2421: 2373: 2248: 2192: 1814: 1673: 1477: 1231: 477: 463: 415: 332: 264: 128:. Any modifications to published pages needed to be performed by the pages' author. In 1993, the 2182: 1089: 2623: 2461: 2276: 2197: 2152: 1868: 1726: 395: 375: 308: 231: 1019: 2859: 2812: 2742: 2511: 2162: 1903: 1683: 1280: 870: 585: 574: 385: 197: 66:. Web frameworks aim to automate the overhead associated with common activities performed in 994: 2932: 2800: 2631: 2294: 2202: 2167: 2019: 1828: 1678: 1544: 1362: 896: 875: 837: 778: 666: 526: 107: 1731: 711:, where a URL is decomposed in steps that traverse an object graph (of models and views). 8: 3144: 2927: 2765: 2554: 2059: 1941: 1761: 1581: 570: 546: 360: 162: 155: 140: 71: 2601: 1308: 1146: 1040: 3042: 2864: 2730: 2353: 2327: 2258: 2187: 2049: 1999: 1711: 1706: 1167: 865: 786: 767: 736: 696: 530: 390: 335:
and typically make use of a client-side JavaScript web framework to organize the code.
320: 316: 79: 47: 3055: 2686: 2397: 2079: 2074: 1951: 1946: 1614: 1559: 1453: 410: 267:, applications are structured around three physical tiers: client, application, and 62:. Web frameworks provide a standard way to build and deploy web applications on the 3124: 3105: 3046: 3016: 3006: 2094: 2024: 1898: 1637: 1629: 1619: 1445: 741: 682: 654: 581: 485: 440: 133: 91: 307:
Web frameworks must function according to the architectural rules of browsers and
3129: 3100: 2559: 1771: 704: 686: 177: 95: 67: 51: 944: 2922: 2894: 2849: 2299: 2044: 1796: 1736: 1235: 909: 760: 731: 715: 670: 653:
and/or following well-known conventions. For example, many Java frameworks use
603: 567: 450: 288: 227: 181: 113: 63: 3166: 3112: 3090: 2977: 2879: 2827: 2564: 2253: 1786: 1766: 1554: 980: 659: 607: 420: 345: 292: 223: 170: 759:
Due to the complexity of Ajax programming in JavaScript, there are numerous
161:
Although the vast majority of languages for creating dynamic web pages have
3050: 2706: 2576: 1908: 1833: 1751: 1539: 1534: 834: 817: 719: 522: 350: 55: 1449: 1334:"Capital One Engineering – Philosophies that Shaped Successful Frameworks" 649:
Some frameworks minimize web application configuration through the use of
2947: 2884: 2778: 2756: 2702: 2452: 2084: 1984: 1956: 1863: 1823: 1647: 1549: 803: 510: 469: 405: 365: 243: 125: 833:(ROA) infrastructure for building collections of resources in a sort of 2889: 2869: 2844: 2790: 2783: 2671: 2651: 2387: 2383: 2207: 2064: 2014: 1994: 1913: 1843: 1806: 1746: 1591: 1571: 744: 611: 578: 534: 435: 380: 324: 235: 219: 147: 87: 2912: 2874: 2666: 2521: 2314: 2137: 2109: 2004: 1818: 1791: 753: 700: 563: 557: 489: 473: 117: 3095: 2952: 2720: 2681: 2676: 2656: 2646: 2641: 2322: 2304: 2147: 2142: 2069: 1873: 1838: 1721: 1716: 481: 425: 268: 239: 75: 2217: 3065: 3011: 2807: 2725: 2506: 2444: 2413: 2363: 2157: 2099: 2039: 2034: 2009: 1979: 1888: 1883: 1878: 1701: 1665: 1655: 1586: 1529: 1469: 823: 774: 430: 400: 355: 230:(the "view"). This is generally considered a good practice as it 59: 3022: 2962: 2957: 2836: 2636: 2489: 2479: 2474: 2347: 2212: 2029: 1989: 1961: 1923: 1918: 1858: 1848: 1781: 1776: 1609: 1566: 782: 764: 615: 497: 493: 370: 242:
for mobile vs. desktop browsers, or providing machine-readable
2990: 2985: 2967: 2773: 2484: 2172: 2114: 2104: 2089: 1601: 958: 643: 621: 1442:
2006 IEEE International Conference on Web Services (ICWS'06)
1257:"Web Application Architecture – Client-Side vs. Server-Side" 299:(CMS), some mobile development tools and some portal tools. 3117: 2596: 2469: 2243: 2177: 2054: 1933: 1853: 1521: 790: 708: 276: 166: 121: 2942: 2661: 2367: 2119: 1971: 1105:"Using Client Access Express in a three tier environment" 748: 627: 445: 151: 27:
Software framework to support the development of websites
327:. Either approach has its advantages and disadvantages. 503: 1357: 1355: 1353: 302: 187: 1350: 665:Other features web frameworks may provide include 3164: 789:, with ports to Python and Ruby in the form of 50:that is designed to support the development of 1083: 323:and can then be modified by the browser using 203: 2429: 1485: 855:Comparison of JavaScript-based web frameworks 634:frameworks contain mapping tools to provide 249: 90:. Although they often target development of 1126:"Understanding the Three-Tier Architecture" 934: 773:With the increased interest in developing " 70:. For example, many web frameworks provide 2436: 2422: 1492: 1478: 1439: 622:Database access, mapping and configuration 258: 1254: 1020:"Clarification on MVC= Pull and MVC Push" 282: 1281:"AngularJS vs. Backbone.js vs. Ember.js" 959:"Top Open-Source Static Site Generators" 861:Comparison of server-side web frameworks 1188:"ASP.NET MVC Controller Best Practices" 1017: 903:List of rich web application frameworks 14: 3165: 1211: 540: 2417: 1473: 1302: 1300: 1232:"Getting Started With Web Frameworks" 1144: 1038: 626:Many web frameworks create a unified 192:Most web frameworks are based on the 504:Discussion forums, wikis and weblogs 86:management, and they often promote 24: 2443: 1499: 1306: 1297: 1165: 1147:"Pragmatic Architecture: Layering" 1123: 1059: 303:General-purpose website frameworks 124:text files that were published on 116:was not inherently dynamic, early 25: 3184: 1086:"Introduction to Web Development" 811: 188:Types of framework architectures 1433: 1409: 1384: 1331: 1325: 1273: 1255:KLIMUSHYN, Mel (6 April 2015). 1248: 1224: 1205: 1180: 1159: 1138: 1117: 1102: 977:"CGI: Common Gateway Interface" 797: 214:Many frameworks follow the MVC 1214:"Skinny Controller, Fat Model" 1096: 1077: 1053: 1032: 1011: 987: 969: 951: 928: 892:List of web service frameworks 842:Resource Description Framework 831:resource-oriented architecture 770:is included in Ruby on Rails. 676: 602:Some web frameworks come with 457: 338: 319:. Webpages are served up by a 271:. The database is normally an 94:, they are also applicable to 13: 1: 921: 881:Convention over configuration 829:frameworks are now providing 521:Frameworks typically set the 1392:"Active Record Transactions" 1018:Thomson, Kris (2003-10-29). 915:Mobile development framework 610:frameworks, that enable the 136:that reflected user inputs. 7: 1742:Remote Application Platform 1309:"bliki: InversionOfControl" 1041:"Three-tiered distribution" 937:"Web application framework" 847: 591: 516: 226:(the "controller") and the 204:Model–view–controller (MVC) 184:for web developers to use. 10: 3189: 1062:"clustering_concepts_10en" 815: 801: 729: 680: 595: 555: 551: 544: 461: 297:content management systems 207: 105: 101: 3083: 3035: 2999: 2976: 2903: 2835: 2826: 2764: 2755: 2695: 2622: 2530: 2460: 2451: 2336: 2313: 2285: 2267: 2234: 2128: 1970: 1932: 1805: 1692: 1664: 1646: 1628: 1600: 1520: 1507: 1168:"3-Tier Web Architecture" 840:, based on concepts from 636:object-relational mapping 250:Push-based vs. pull-based 40:web application framework 18:Web application framework 699:, while some others use 671:database migration tools 598:Web application security 333:single-page applications 130:Common Gateway Interface 120:consisted of hand-coded 54:including web services, 725: 464:Single-page application 265:three-tier organization 259:Three-tier organization 180:into a single cohesive 1421:www.dlsweb.rmit.edu.au 1363:"Active Record Basics" 283:Framework applications 1450:10.1109/ICWS.2006.139 886:Don't repeat yourself 871:Application framework 779:rich web applications 667:transactional support 216:architectural pattern 210:Model–view–controller 194:model–view–controller 112:As the design of the 106:Further information: 1084:Robert R. Perkoski. 897:Rich web application 876:Application security 527:inversion of control 108:Rich web application 2344:Application Express 697:regular expressions 573:in order to reduce 562:Web caching is the 547:Web template system 541:Web template system 156:Active Server Pages 2731:Application server 1444:. pp. xliii. 866:Application server 822:A number of newer 787:Google Web Toolkit 768:JavaScript library 48:software framework 3160: 3159: 3079: 3078: 3056:Browser extension 3031: 3030: 2751: 2750: 2687:Phusion Passenger 2411: 2410: 1338:www.capitalone.io 935:Multiple (wiki). 739:, shorthand for " 584:, and perceived " 468:Examples include 411:Pop PHP Framework 92:dynamic web sites 16:(Redirected from 3180: 3125:Web API security 3047:Remote scripting 3017:Web SQL Database 2833: 2832: 2762: 2761: 2458: 2457: 2438: 2431: 2424: 2415: 2414: 1638:ColdBox Platform 1494: 1487: 1480: 1471: 1470: 1464: 1463: 1437: 1431: 1430: 1428: 1427: 1413: 1407: 1406: 1404: 1402: 1388: 1382: 1381: 1375: 1373: 1359: 1348: 1347: 1345: 1344: 1329: 1323: 1322: 1320: 1319: 1313:martinfowler.com 1307:Fowler, Martin. 1304: 1295: 1294: 1292: 1291: 1277: 1271: 1270: 1268: 1267: 1252: 1246: 1245: 1243: 1242: 1228: 1222: 1221: 1216:. Archived from 1209: 1203: 1202: 1200: 1199: 1190:. Archived from 1184: 1178: 1177: 1175: 1174: 1163: 1157: 1156: 1154: 1153: 1142: 1136: 1135: 1133: 1132: 1121: 1115: 1114: 1112: 1111: 1100: 1094: 1093: 1088:. Archived from 1081: 1075: 1074: 1072: 1071: 1066: 1057: 1051: 1050: 1048: 1047: 1036: 1030: 1029: 1027: 1026: 1015: 1009: 1008: 1006: 1005: 991: 985: 984: 979:. Archived from 973: 967: 966: 955: 949: 948: 943:. Archived from 932: 707:such as used by 683:Front controller 533:(which inspired 441:Wt (web toolkit) 232:modularizes code 218:to separate the 134:dynamic web page 82:frameworks, and 52:web applications 21: 3188: 3187: 3183: 3182: 3181: 3179: 3178: 3177: 3163: 3162: 3161: 3156: 3130:Web application 3075: 3027: 2995: 2972: 2899: 2822: 2747: 2691: 2618: 2597:JavaScript JSGI 2577:ASP.NET Handler 2560:Jakarta Servlet 2526: 2447: 2442: 2412: 2407: 2337:Other languages 2332: 2309: 2281: 2263: 2230: 2124: 1966: 1928: 1801: 1688: 1660: 1642: 1624: 1596: 1516: 1503: 1498: 1468: 1467: 1460: 1438: 1434: 1425: 1423: 1415: 1414: 1410: 1400: 1398: 1390: 1389: 1385: 1371: 1369: 1361: 1360: 1351: 1342: 1340: 1330: 1326: 1317: 1315: 1305: 1298: 1289: 1287: 1285:www.airpair.com 1279: 1278: 1274: 1265: 1263: 1253: 1249: 1240: 1238: 1230: 1229: 1225: 1210: 1206: 1197: 1195: 1186: 1185: 1181: 1172: 1170: 1164: 1160: 1151: 1149: 1143: 1139: 1130: 1128: 1122: 1118: 1109: 1107: 1101: 1097: 1082: 1078: 1069: 1067: 1064: 1058: 1054: 1045: 1043: 1037: 1033: 1024: 1022: 1016: 1012: 1003: 1001: 993: 992: 988: 975: 974: 970: 957: 956: 952: 933: 929: 924: 919: 850: 820: 814: 806: 800: 761:Ajax frameworks 734: 728: 705:graph traversal 689: 687:URL redirection 679: 632:object-oriented 624: 600: 594: 560: 554: 549: 543: 519: 506: 466: 460: 455: 341: 305: 285: 261: 252: 212: 206: 190: 178:web development 110: 104: 96:static websites 68:web development 28: 23: 22: 15: 12: 11: 5: 3186: 3176: 3175: 3173:Web frameworks 3158: 3157: 3155: 3154: 3149: 3148: 3147: 3142: 3137: 3127: 3122: 3121: 3120: 3110: 3109: 3108: 3103: 3093: 3087: 3085: 3081: 3080: 3077: 3076: 3074: 3073: 3068: 3063: 3058: 3053: 3039: 3037: 3033: 3032: 3029: 3028: 3026: 3025: 3020: 3019:(formerly W3C) 3014: 3009: 3003: 3001: 2997: 2996: 2994: 2993: 2988: 2982: 2980: 2974: 2973: 2971: 2970: 2965: 2960: 2955: 2950: 2945: 2940: 2935: 2930: 2925: 2920: 2915: 2909: 2907: 2901: 2900: 2898: 2897: 2895:XMLHttpRequest 2892: 2887: 2882: 2877: 2872: 2867: 2862: 2857: 2852: 2847: 2841: 2839: 2830: 2824: 2823: 2821: 2820: 2815: 2810: 2805: 2804: 2803: 2793: 2788: 2787: 2786: 2781: 2770: 2768: 2759: 2753: 2752: 2749: 2748: 2746: 2745: 2740: 2739: 2738: 2728: 2723: 2718: 2709: 2699: 2697: 2693: 2692: 2690: 2689: 2684: 2679: 2674: 2669: 2664: 2659: 2654: 2649: 2644: 2639: 2634: 2628: 2626: 2624:Apache modules 2620: 2619: 2617: 2616: 2615: 2614: 2604: 2599: 2594: 2589: 2584: 2579: 2574: 2569: 2568: 2567: 2557: 2552: 2547: 2542: 2536: 2534: 2528: 2527: 2525: 2524: 2519: 2514: 2509: 2504: 2499: 2494: 2493: 2492: 2487: 2482: 2477: 2466: 2464: 2455: 2449: 2448: 2445:Web interfaces 2441: 2440: 2433: 2426: 2418: 2409: 2408: 2406: 2405: 2395: 2381: 2371: 2361: 2351: 2340: 2338: 2334: 2333: 2331: 2330: 2325: 2319: 2317: 2311: 2310: 2308: 2307: 2302: 2297: 2291: 2289: 2283: 2282: 2280: 2279: 2273: 2271: 2265: 2264: 2262: 2261: 2256: 2251: 2246: 2240: 2238: 2232: 2231: 2229: 2228: 2220: 2215: 2210: 2205: 2200: 2195: 2190: 2185: 2180: 2175: 2170: 2165: 2160: 2155: 2150: 2145: 2140: 2134: 2132: 2126: 2125: 2123: 2122: 2117: 2112: 2107: 2102: 2097: 2092: 2087: 2082: 2077: 2072: 2067: 2062: 2057: 2052: 2047: 2042: 2037: 2032: 2027: 2022: 2017: 2012: 2007: 2002: 1997: 1992: 1987: 1982: 1976: 1974: 1968: 1967: 1965: 1964: 1959: 1954: 1949: 1944: 1938: 1936: 1930: 1929: 1927: 1926: 1921: 1916: 1911: 1906: 1901: 1896: 1891: 1886: 1881: 1876: 1871: 1866: 1861: 1856: 1851: 1846: 1841: 1836: 1831: 1826: 1821: 1811: 1809: 1803: 1802: 1800: 1799: 1794: 1789: 1784: 1779: 1774: 1769: 1764: 1759: 1754: 1749: 1744: 1739: 1734: 1729: 1724: 1719: 1714: 1709: 1704: 1698: 1696: 1690: 1689: 1687: 1686: 1681: 1676: 1670: 1668: 1662: 1661: 1659: 1658: 1652: 1650: 1644: 1643: 1641: 1640: 1634: 1632: 1626: 1625: 1623: 1622: 1617: 1612: 1606: 1604: 1598: 1597: 1595: 1594: 1589: 1584: 1579: 1574: 1569: 1564: 1563: 1562: 1557: 1552: 1547: 1542: 1537: 1526: 1524: 1518: 1517: 1515: 1514: 1508: 1505: 1504: 1501:Web frameworks 1497: 1496: 1489: 1482: 1474: 1466: 1465: 1458: 1432: 1417:"What is AJAX" 1408: 1383: 1349: 1324: 1296: 1272: 1247: 1236:Wired Magazine 1223: 1220:on 2015-05-16. 1204: 1179: 1158: 1137: 1116: 1095: 1092:on 2013-11-07. 1076: 1052: 1031: 1010: 986: 983:on 2009-04-09. 968: 950: 947:on 2015-07-23. 926: 925: 923: 920: 918: 917: 912: 910:Solution stack 907: 906: 905: 894: 889: 883: 878: 873: 868: 863: 858: 851: 849: 846: 816:Main article: 813: 810: 802:Main article: 799: 796: 732:Ajax framework 730:Main article: 727: 724: 691:A framework's 678: 675: 623: 620: 604:authentication 596:Main article: 593: 590: 556:Main article: 553: 550: 545:Main article: 542: 539: 518: 515: 514: 513: 505: 502: 462:Main article: 459: 456: 454: 453: 451:Zend Framework 448: 443: 438: 433: 428: 423: 418: 413: 408: 403: 398: 393: 388: 383: 378: 373: 368: 363: 358: 353: 348: 342: 340: 337: 304: 301: 289:Zend Framework 284: 281: 260: 257: 251: 248: 228:user interface 224:business rules 208:Main article: 205: 202: 189: 186: 182:software stack 169:(for example, 114:World Wide Web 103: 100: 64:World Wide Web 26: 9: 6: 4: 3: 2: 3185: 3174: 3171: 3170: 3168: 3153: 3152:Web framework 3150: 3146: 3143: 3141: 3138: 3136: 3133: 3132: 3131: 3128: 3126: 3123: 3119: 3116: 3115: 3114: 3113:Web standards 3111: 3107: 3104: 3102: 3099: 3098: 3097: 3094: 3092: 3091:Microservices 3089: 3088: 3086: 3082: 3072: 3069: 3067: 3064: 3062: 3059: 3057: 3054: 3052: 3048: 3044: 3041: 3040: 3038: 3034: 3024: 3021: 3018: 3015: 3013: 3010: 3008: 3005: 3004: 3002: 2998: 2992: 2989: 2987: 2984: 2983: 2981: 2979: 2975: 2969: 2966: 2964: 2961: 2959: 2956: 2954: 2951: 2949: 2946: 2944: 2941: 2939: 2936: 2934: 2931: 2929: 2926: 2924: 2921: 2919: 2916: 2914: 2911: 2910: 2908: 2906: 2902: 2896: 2893: 2891: 2888: 2886: 2883: 2881: 2880:Web messaging 2878: 2876: 2873: 2871: 2868: 2866: 2863: 2861: 2858: 2856: 2853: 2851: 2848: 2846: 2843: 2842: 2840: 2838: 2834: 2831: 2829: 2825: 2819: 2816: 2814: 2811: 2809: 2806: 2802: 2799: 2798: 2797: 2794: 2792: 2789: 2785: 2782: 2780: 2777: 2776: 2775: 2772: 2771: 2769: 2767: 2763: 2760: 2758: 2754: 2744: 2741: 2737: 2734: 2733: 2732: 2729: 2727: 2724: 2722: 2719: 2717: 2713: 2710: 2708: 2704: 2701: 2700: 2698: 2694: 2688: 2685: 2683: 2680: 2678: 2675: 2673: 2670: 2668: 2665: 2663: 2660: 2658: 2655: 2653: 2650: 2648: 2645: 2643: 2640: 2638: 2635: 2633: 2630: 2629: 2627: 2625: 2621: 2613: 2610: 2609: 2608: 2605: 2603: 2600: 2598: 2595: 2593: 2590: 2588: 2585: 2583: 2580: 2578: 2575: 2573: 2570: 2566: 2563: 2562: 2561: 2558: 2556: 2553: 2551: 2548: 2546: 2543: 2541: 2538: 2537: 2535: 2533: 2529: 2523: 2520: 2518: 2515: 2513: 2510: 2508: 2505: 2503: 2500: 2498: 2495: 2491: 2488: 2486: 2483: 2481: 2478: 2476: 2473: 2472: 2471: 2468: 2467: 2465: 2463: 2459: 2456: 2454: 2450: 2446: 2439: 2434: 2432: 2427: 2425: 2420: 2419: 2416: 2403: 2399: 2396: 2393: 2389: 2385: 2382: 2379: 2375: 2372: 2369: 2365: 2362: 2359: 2355: 2352: 2349: 2345: 2342: 2341: 2339: 2335: 2329: 2326: 2324: 2321: 2320: 2318: 2316: 2312: 2306: 2303: 2301: 2298: 2296: 2293: 2292: 2290: 2288: 2284: 2278: 2275: 2274: 2272: 2270: 2266: 2260: 2257: 2255: 2254:Ruby on Rails 2252: 2250: 2247: 2245: 2242: 2241: 2239: 2237: 2233: 2226: 2225: 2221: 2219: 2216: 2214: 2211: 2209: 2206: 2204: 2201: 2199: 2196: 2194: 2191: 2189: 2186: 2184: 2181: 2179: 2176: 2174: 2171: 2169: 2166: 2164: 2161: 2159: 2156: 2154: 2151: 2149: 2146: 2144: 2141: 2139: 2136: 2135: 2133: 2131: 2127: 2121: 2118: 2116: 2113: 2111: 2108: 2106: 2103: 2101: 2098: 2096: 2093: 2091: 2088: 2086: 2083: 2081: 2078: 2076: 2073: 2071: 2068: 2066: 2063: 2061: 2058: 2056: 2053: 2051: 2048: 2046: 2043: 2041: 2038: 2036: 2033: 2031: 2028: 2026: 2023: 2021: 2018: 2016: 2013: 2011: 2008: 2006: 2003: 2001: 1998: 1996: 1993: 1991: 1988: 1986: 1983: 1981: 1978: 1977: 1975: 1973: 1969: 1963: 1960: 1958: 1955: 1953: 1950: 1948: 1945: 1943: 1940: 1939: 1937: 1935: 1931: 1925: 1922: 1920: 1917: 1915: 1912: 1910: 1907: 1905: 1902: 1900: 1897: 1895: 1892: 1890: 1887: 1885: 1882: 1880: 1877: 1875: 1872: 1870: 1867: 1865: 1862: 1860: 1857: 1855: 1852: 1850: 1847: 1845: 1842: 1840: 1837: 1835: 1832: 1830: 1827: 1825: 1822: 1820: 1816: 1813: 1812: 1810: 1808: 1804: 1798: 1795: 1793: 1790: 1788: 1785: 1783: 1780: 1778: 1775: 1773: 1770: 1768: 1765: 1763: 1760: 1758: 1755: 1753: 1750: 1748: 1745: 1743: 1740: 1738: 1735: 1733: 1730: 1728: 1725: 1723: 1720: 1718: 1715: 1713: 1710: 1708: 1705: 1703: 1700: 1699: 1697: 1695: 1691: 1685: 1682: 1680: 1677: 1675: 1672: 1671: 1669: 1667: 1663: 1657: 1654: 1653: 1651: 1649: 1645: 1639: 1636: 1635: 1633: 1631: 1627: 1621: 1618: 1616: 1613: 1611: 1608: 1607: 1605: 1603: 1599: 1593: 1590: 1588: 1585: 1583: 1580: 1578: 1575: 1573: 1570: 1568: 1565: 1561: 1558: 1556: 1553: 1551: 1548: 1546: 1543: 1541: 1538: 1536: 1533: 1532: 1531: 1528: 1527: 1525: 1523: 1519: 1513: 1510: 1509: 1506: 1502: 1495: 1490: 1488: 1483: 1481: 1476: 1475: 1472: 1461: 1459:0-7695-2669-1 1455: 1451: 1447: 1443: 1436: 1422: 1418: 1412: 1397: 1396:Ruby on Rails 1393: 1387: 1380: 1368: 1367:Ruby on Rails 1364: 1358: 1356: 1354: 1339: 1335: 1328: 1314: 1310: 1303: 1301: 1286: 1282: 1276: 1262: 1258: 1251: 1237: 1233: 1227: 1219: 1215: 1208: 1194:on 2011-10-11 1193: 1189: 1183: 1169: 1162: 1148: 1141: 1127: 1120: 1106: 1099: 1091: 1087: 1080: 1063: 1056: 1042: 1035: 1021: 1014: 1000: 996: 990: 982: 978: 972: 964: 960: 954: 946: 942: 938: 931: 927: 916: 913: 911: 908: 904: 901: 900: 898: 895: 893: 890: 887: 884: 882: 879: 877: 874: 872: 869: 867: 864: 862: 859: 857:(client-side) 856: 853: 852: 845: 843: 839: 836: 832: 828: 825: 819: 812:Web resources 809: 805: 795: 792: 788: 784: 780: 776: 771: 769: 766: 762: 757: 755: 751: 750: 746: 743: 738: 733: 723: 721: 720:friendly URLs 717: 712: 710: 706: 702: 698: 694: 688: 684: 674: 672: 668: 663: 661: 660:Ruby on Rails 656: 652: 651:introspection 647: 645: 641: 638:, which maps 637: 633: 629: 619: 617: 613: 609: 608:authorization 605: 599: 589: 587: 583: 580: 576: 572: 569: 565: 559: 548: 538: 536: 532: 528: 524: 512: 508: 507: 501: 499: 495: 491: 487: 483: 479: 475: 471: 465: 452: 449: 447: 444: 442: 439: 437: 434: 432: 429: 427: 424: 422: 421:Ruby on Rails 419: 417: 414: 412: 409: 407: 404: 402: 399: 397: 394: 392: 389: 387: 384: 382: 379: 377: 374: 372: 369: 367: 364: 362: 359: 357: 354: 352: 349: 347: 346:Apache Wicket 344: 343: 336: 334: 328: 326: 322: 318: 314: 310: 300: 298: 294: 293:Ruby on Rails 290: 280: 278: 274: 270: 266: 256: 247: 245: 241: 237: 233: 229: 225: 221: 217: 211: 201: 199: 195: 185: 183: 179: 174: 172: 171:Jakarta Faces 168: 164: 159: 157: 153: 149: 144: 142: 137: 135: 131: 127: 123: 119: 115: 109: 99: 97: 93: 89: 85: 81: 77: 73: 69: 65: 61: 57: 56:web resources 53: 49: 45: 41: 37: 33: 32:web framework 19: 3151: 2766:Browser APIs 2707:Web resource 2222: 2095:Silverstripe 1909:Sencha Touch 1834:Dojo Toolkit 1545:Dynamic Data 1500: 1441: 1435: 1424:. Retrieved 1420: 1411: 1399:. Retrieved 1395: 1386: 1377: 1370:. Retrieved 1366: 1341:. Retrieved 1337: 1332:Xue, Qiang. 1327: 1316:. Retrieved 1312: 1288:. Retrieved 1284: 1275: 1264:. Retrieved 1260: 1250: 1239:. Retrieved 1226: 1218:the original 1212:Jamis Buck. 1207: 1196:. Retrieved 1192:the original 1182: 1171:. Retrieved 1161: 1150:. Retrieved 1140: 1129:. Retrieved 1119: 1108:. Retrieved 1098: 1090:the original 1079: 1068:. Retrieved 1055: 1044:. Retrieved 1034: 1023:. Retrieved 1013: 1002:. Retrieved 998: 989: 981:the original 971: 962: 953: 945:the original 940: 930: 835:Semantic Web 821: 818:Web resource 807: 798:Web services 785:followed by 772: 758: 742:Asynchronous 740: 735: 713: 690: 664: 648: 625: 601: 561: 523:control flow 520: 467: 351:ASP.NET Core 329: 306: 286: 262: 253: 246:interfaces. 213: 191: 175: 160: 145: 138: 111: 43: 39: 35: 31: 29: 3145:Progressive 3140:Single-page 2948:WebAssembly 2928:Geolocation 2885:Web storage 2791:C NPRuntime 2779:LiveConnect 2757:Client-side 2703:Web service 2632:mod_include 2587:Python ASGI 2582:Python WSGI 2532:Server APIs 2453:Server-side 2085:ProcessWire 1985:CodeIgniter 1957:Mojolicious 1864:Knockout.js 1824:Backbone.js 1648:Common Lisp 1379:its tables. 1261:Atomic Spin 1145:Microsoft. 1039:Microsoft. 999:www.ibm.com 899:(obsolete) 804:Web service 677:URL mapping 511:WikiWikiWeb 470:Backbone.js 458:Client-side 406:Mojolicious 366:CodeIgniter 339:Server-side 315:, which is 244:web service 234:, promotes 126:web servers 2913:DOM events 2890:Web worker 2875:WebSockets 2736:comparison 2672:mod_python 2652:mod_parrot 2485:Encryption 2388:JavaScript 2384:SproutCore 2208:TurboGears 2065:PHP-Fusion 1995:eZ Publish 1914:SproutCore 1844:Express.js 1807:JavaScript 1630:ColdFusion 1592:WebSharper 1512:Comparison 1426:2021-05-07 1343:2016-03-06 1318:2016-03-06 1290:2016-06-04 1266:2016-03-06 1241:2018-04-02 1198:2011-09-19 1173:2011-09-19 1152:2011-09-19 1131:2011-09-19 1110:2011-09-19 1070:2011-09-19 1046:2011-09-19 1025:2007-07-29 1004:2021-05-07 922:References 745:JavaScript 681:See also: 612:web server 535:Express.js 436:Spring MVC 381:Express.js 325:JavaScript 236:code reuse 220:data model 148:ColdFusion 88:code reuse 80:templating 3071:Scripting 2933:IndexedDB 2784:XPConnect 2743:Scripting 2667:mod_proxy 2612:container 2602:Perl PSGI 2592:Ruby Rack 2565:container 2522:WebSocket 2462:Protocols 2315:Smalltalk 2138:BlueBream 2110:WordPress 2020:Gyroscope 1894:Prototype 1819:AngularJS 1792:WaveMaker 1560:Web Forms 1401:March 20, 1372:March 20, 963:StaticGen 754:usability 701:rewriting 655:Hibernate 575:bandwidth 571:documents 558:Web cache 509:WikiBase/ 490:jQuery UI 474:AngularJS 317:stateless 309:protocols 240:web pages 163:libraries 118:hypertext 72:libraries 3167:Category 3096:Web page 2953:WebAuthn 2828:Web APIs 2721:Open API 2682:mod_ruby 2677:mod_wsgi 2657:mod_perl 2647:mod_mono 2642:mod_lisp 2572:CLI OWIN 2323:AIDA/Web 2305:Scalatra 2148:CubicWeb 2143:CherryPy 2070:PHP-Nuke 2000:Fat-Free 1942:Catalyst 1874:MooTools 1839:Ember.js 1772:Tapestry 1722:JHipster 1717:ICEfaces 1582:MonoRail 1166:Arokia. 1124:Oracle. 1060:Oracle. 941:Docforge 848:See also 838:ontology 592:Security 517:Features 482:Ember.js 426:Sails.js 361:Catalyst 311:such as 269:database 78:access, 76:database 60:web APIs 3106:Dynamic 3066:Web IDL 3012:GraphQL 2978:Khronos 2808:ActiveX 2796:C PPAPI 2774:C NPAPI 2726:Webhook 2662:mod_php 2607:Portlet 2555:COM ASP 2550:C ISAPI 2545:C ASAPI 2540:C NSAPI 2374:Phoenix 2364:OpenACS 2328:Seaside 2259:Sinatra 2249:Padrino 2203:Tornado 2193:Quixote 2188:Pyramid 2158:FastAPI 2100:Symfony 2075:Pop PHP 2060:Phalcon 2050:Midgard 2040:Laravel 2035:Laminas 2030:Joomla! 2010:FuelPHP 1980:CakePHP 1952:Maypole 1889:OpenUI5 1884:Node.js 1879:Next.js 1829:Closure 1815:Angular 1762:Stripes 1732:Mojarra 1702:AppFuse 1674:Servant 1666:Haskell 1656:CL-HTTP 1587:Umbraco 1530:ASP.NET 844:(RDF). 827:RESTful 824:Web 2.0 775:Web 2.0 716:shorter 640:objects 577:usage, 564:caching 552:Caching 531:Sinatra 486:ReactJS 478:Angular 431:Symfony 416:Phoenix 401:Laravel 356:CakePHP 198:pattern 141:process 102:History 84:session 46:) is a 3101:Static 3084:Topics 3061:Mashup 3036:Topics 3023:WebUSB 3000:Others 2963:WebRTC 2958:WebGPU 2850:Canvas 2837:WHATWG 2696:Topics 2637:mod_jk 2490:WebDAV 2402:Erlang 2378:Elixir 2358:Groovy 2354:Grails 2348:PL/SQL 2277:Rocket 2218:Zope 2 2213:web2py 2198:TACTIC 2183:Pylons 2153:Django 2130:Python 1990:Drupal 1962:WebGUI 1947:Dancer 1924:Vue.js 1919:Svelte 1869:Meteor 1859:jQuery 1849:Ext JS 1787:Wicket 1782:Vert.x 1777:Vaadin 1767:Struts 1757:Spring 1707:Grails 1615:Drogon 1610:CppCMS 1567:Blazor 1456:  783:Morfik 765:jQuery 718:more " 644:tuples 616:Drupal 579:server 498:Vue.js 496:, and 494:Svelte 396:Jam.py 391:Grails 376:Django 371:CppCMS 321:server 196:(MVC) 154:, and 58:, and 3051:DHTML 3007:Gears 2991:WebGL 2986:WebCL 2968:WebXR 2870:Video 2845:Audio 2287:Scala 2173:Nevow 2163:Flask 2115:XOOPS 2105:TYPO3 2090:Qcodo 2080:PRADO 2025:Horde 1904:Remix 1899:React 1752:Sling 1684:Yesod 1555:Razor 1103:IBM. 1065:(PDF) 995:"CGI" 888:(DRY) 386:Flask 273:RDBMS 222:into 38:) or 3135:Rich 3118:REST 3049:vs. 3045:and 3043:Ajax 2923:File 2855:CORS 2818:XBAP 2801:NaCl 2714:vs. 2705:vs. 2517:WSRP 2507:FCGI 2502:SCGI 2470:HTTP 2398:Yaws 2392:Ruby 2300:Play 2295:Lift 2269:Rust 2244:Merb 2236:Ruby 2224:more 2178:Pyjs 2168:Grok 2055:MODX 2015:Grav 2005:Flow 1934:Perl 1854:htmx 1747:Seam 1737:Play 1694:Java 1679:Snap 1540:AJAX 1535:Core 1522:.NET 1454:ISBN 1403:2021 1374:2021 791:Pyjs 747:and 737:Ajax 726:AJAX 709:Zope 685:and 669:and 606:and 582:load 313:HTTP 291:and 277:HTTP 167:HTML 122:HTML 74:for 2943:SVG 2938:MSE 2918:EME 2905:W3C 2865:SSE 2860:DOM 2813:BHO 2716:ROA 2712:WOA 2512:AJP 2497:CGI 2368:Tcl 2227:... 2120:Yii 2045:li₃ 1972:PHP 1727:JWt 1712:GWT 1602:C++ 1577:BFC 1572:DNN 1550:MVC 1446:doi 749:XML 693:URL 642:to 628:API 586:lag 568:web 566:of 446:Yii 263:In 173:). 152:PHP 44:WAF 3169:: 2480:v3 2475:v2 1797:ZK 1620:Wt 1452:. 1419:. 1394:. 1376:. 1365:. 1352:^ 1336:. 1311:. 1299:^ 1283:. 1259:. 1234:. 997:. 961:. 939:. 777:" 756:. 673:. 646:. 500:. 492:, 488:, 484:, 480:, 476:, 472:, 200:. 158:. 150:, 98:. 36:WF 30:A 2437:e 2430:t 2423:v 2404:) 2400:( 2394:) 2390:- 2386:( 2380:) 2376:( 2370:) 2366:( 2360:) 2356:( 2350:) 2346:( 1817:/ 1493:e 1486:t 1479:v 1462:. 1448:: 1429:. 1405:. 1346:. 1321:. 1293:. 1269:. 1244:. 1201:. 1176:. 1155:. 1134:. 1113:. 1073:. 1049:. 1028:. 1007:. 965:. 42:( 34:( 20:)

Index

Web application framework
software framework
web applications
web resources
web APIs
World Wide Web
web development
libraries
database
templating
session
code reuse
dynamic web sites
static websites
Rich web application
World Wide Web
hypertext
HTML
web servers
Common Gateway Interface
dynamic web page
process
ColdFusion
PHP
Active Server Pages
libraries
HTML
Jakarta Faces
web development
software stack

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.