برنامه وب (یا برنامه وب ) نرم افزار کاربردی است که با استفاده از یک مرورگر وب قابل دسترسی است . برنامه های کاربردی وب در شبکه جهانی وب به کاربران با اتصال شبکه فعال تحویل داده می شوند. [1]
تک صفحه ای و مترقی دو رویکرد هستند که یک وب سایت بیشتر شبیه یک برنامه بومی به نظر می رسد .
در مدلهای محاسباتی قبلی مانند سرویس گیرنده-سرور، بار پردازش برنامه بین کدهای روی سرور و کدهای نصب شده روی هر کلاینت به صورت محلی تقسیم میشد. به عبارت دیگر، یک برنامه کاربردی برنامه مشتری از پیش کامپایل شده خود را داشت که به عنوان رابط کاربری آن عمل می کرد و باید به طور جداگانه روی رایانه شخصی هر کاربر نصب می شد . ارتقاء کد سمت سرور برنامه معمولاً نیاز به ارتقاء کد سمت سرویس گیرنده نصب شده در هر ایستگاه کاری کاربر نیز دارد که به هزینه پشتیبانی و کاهش بهره وری می افزاید . علاوه بر این، هر دو مؤلفه سرویس گیرنده و سرور برنامه معمولاً به یک معماری رایانه و سیستم عامل خاص متصل بودند و انتقال آنها به دیگران اغلب برای همه برنامهها به جز بزرگترین برنامهها بسیار گران تمام میشد (امروزه، [ چه زمانی؟ ] برنامههای بومی برای تلفن همراه دستگاه ها نیز به دلیل برخی یا همه مسائل فوق دچار مشکل می شوند). [ مشکوک - بحث ]
در سال 1995، نت اسکیپ یک زبان برنامه نویسی سمت کلاینت به نام جاوا اسکریپت را معرفی کرد که به برنامه نویسان این امکان را می داد تا برخی از عناصر پویا را به رابط کاربری که در سمت کلاینت اجرا می شد اضافه کنند. بنابراین به جای ارسال داده ها به سرور به منظور تولید یک صفحه وب کامل، اسکریپت های تعبیه شده صفحه دانلود شده می توانند کارهای مختلفی مانند اعتبار سنجی ورودی یا نمایش/پنهان کردن بخش هایی از صفحه را انجام دهند. [2]
در سال 1999، مفهوم "برنامه وب" در زبان جاوا در Servlet Specification نسخه 2.2 معرفی شد. [2.1؟]. [3] [ نیاز به منبع غیر اولیه ] در آن زمان هر دو جاوا اسکریپت و XML قبلاً توسعه داده شده بودند، اما Ajax هنوز ابداع نشده بود و شی XMLHttpRequest به تازگی در اینترنت اکسپلورر 5 به عنوان یک شی اکتیو ایکس معرفی شده بود . [ نیازمند منبع ]
برنامههایی مانند جیمیل از اوایل دهه 2000 شروع به تعامل بیشتر و بیشتر در سمت مشتری خود کردند. یک اسکریپت صفحه وب میتواند برای ذخیره/بازیابی دادهها بدون دانلود کل صفحه وب با سرور تماس بگیرد. این تمرین در سال 2005 به نام آژاکس شناخته شد. [4]
« برنامههای وب پیشرو »، اصطلاحی که توسط طراح فرانسیس بریمن و مهندس گوگل کروم الکس راسل در سال 2015 ابداع شد، [5] به برنامههایی اشاره دارد که از ویژگیهای جدید پشتیبانی شده توسط مرورگرهای مدرن استفاده میکنند، که ابتدا در یک برگه مرورگر وب اجرا میشوند اما بعداً میتوانند اجرا شوند. کاملاً آفلاین است و می تواند بدون وارد کردن URL برنامه در مرورگر راه اندازی شود.
برنامه های کاربردی رایانه های شخصی سنتی معمولاً تک لایه هستند و فقط بر روی دستگاه مشتری قرار می گیرند. در مقابل، برنامه های کاربردی وب ذاتا معماری چند لایه را تسهیل می کنند. [6] اگرچه بسیاری از تغییرات ممکن است، رایج ترین ساختار کاربرد سه لایه است . [6] در رایجترین شکل آن، سه سطح ارائه ، کاربرد و ذخیرهسازی نامیده میشوند . یک مرورگر وب اولین لایه (ارائه) است، موتوری که از برخی فناوری های محتوای وب پویا (مانند ASP ، CGI ، ColdFusion ، Dart ، JSP/Java ، Node.js ، PHP ، Python یا Ruby on Rails ) استفاده می کند، لایه میانی است. (منطق برنامه)، و پایگاه داده سومین ردیف (ذخیره) است. [6] مرورگر وب درخواستها را به لایه میانی ارسال میکند، که با ایجاد پرس و جو و بهروزرسانی در پایگاه داده به آنها سرویس میدهد و یک رابط کاربری ایجاد میکند.
برای کاربردهای پیچیده تر، راه حل 3 لایه ممکن است کوتاه بیاید، و ممکن است استفاده از یک رویکرد n-لایه مفید باشد، جایی که بزرگترین مزیت شکست منطق تجاری، که در لایه برنامه قرار دارد، به یک روش دقیق تر است. مدل [6] مزیت دیگر ممکن است اضافه کردن یک لایه یکپارچه سازی باشد که با ارائه یک رابط کاربری آسان برای دسترسی به داده ها، ردیف داده را از بقیه سطوح جدا می کند. [6] به عنوان مثال، داده های سرویس گیرنده با فراخوانی تابع "list_clients()" به جای ایجاد یک پرس و جوی SQL مستقیماً در جدول مشتری در پایگاه داده قابل دسترسی است . این اجازه می دهد تا پایگاه داده زیربنایی بدون ایجاد هیچ تغییری در سطوح دیگر جایگزین شود. [6]
برخی هستند که به یک برنامه وب به عنوان یک معماری دو لایه نگاه می کنند. این می تواند یک کلاینت "هوشمند" باشد که تمام کارها را انجام می دهد و یک سرور "گنگ" را جستجو می کند، یا یک کلاینت "گنگ" که به یک سرور "هوشمند" متکی است. [6] کلاینت ردیف ارائه را مدیریت می کند، سرور پایگاه داده (سطح ذخیره سازی) را خواهد داشت و منطق تجاری (سطح برنامه) روی یکی از آنها یا در هر دو قرار می گیرد. [6] در حالی که این امر مقیاسپذیری برنامهها را افزایش میدهد و نمایشگر و پایگاه داده را از هم جدا میکند، اما هنوز امکان تخصصیسازی واقعی لایهها را نمیدهد، بنابراین بیشتر برنامهها از این مدل پیشی میگیرند. [6]
نقض امنیت در این نوع برنامهها یک نگرانی بزرگ است زیرا میتواند هم اطلاعات سازمانی و هم دادههای مشتری خصوصی را در بر بگیرد. حفاظت از این دارایی ها بخش مهمی از هر برنامه وب است و برخی از مناطق عملیاتی کلیدی وجود دارد که باید در فرآیند توسعه گنجانده شوند. [7] این شامل فرآیندهایی برای احراز هویت، مجوز، رسیدگی به دارایی، ورودی، و ثبت و حسابرسی است. ایجاد امنیت در برنامه ها از ابتدا می تواند در دراز مدت موثرتر و کمتر مخرب باشد.
نوشتن برنامه های کاربردی وب با استفاده از چارچوب های برنامه کاربردی وب ساده شده است . این چارچوبها توسعه سریع برنامهها را تسهیل میکنند و به تیم توسعه اجازه میدهند تا بر روی بخشهایی از برنامههای کاربردی خود که منحصر به اهدافشان هستند، بدون نیاز به حل مسائل رایج توسعه مانند مدیریت کاربر، تمرکز کنند. [8] بسیاری از چارچوب های مورد استفاده نرم افزار منبع باز هستند .
علاوه بر این، پتانسیل توسعه برنامههای کاربردی در سیستمعاملهای اینترنتی وجود دارد ، اگرچه در حال حاضر پلتفرمهای قابل دوام زیادی که متناسب با این مدل باشند وجود ندارد. [ نیازمند منبع ]
برنامه وب یک برنامه کامپیوتری است که از مرورگرهای وب و فناوری وب برای انجام وظایف از طریق اینترنت استفاده می کند.