درس مهندسی اینترنت — مفاهیم پایه به زبان ساده + منابع، کتاب و فیلم آموزشی - مجله فرادرس\nدرس مهندسی اینترنت — مفاهیم پایه به زبان ساده + منابع، کتاب و فیلم آموزشی\nزمان مطالعه: 70 دقیقه\nبرنامه نویسی، کامپیوتر، مهندسی 1919 بازدید\nدرس مهندسی اینترنت یکی از دروس تخصصی رشته کامپیوتر در مقطع کارشناسی محسوب می‌شود. تمرکز اصلی این درس بر «مهارت‌ها و الگوهای توسعه نرم‌افزارها و کاربردهای تحت وب» است. در حال حاضر، با گسترش چشمگیر فناوری اینترنت در ایران و جهان، می‌توان مدعی شد که درس مهندسی اینترنت یکی از مهم‌ترین دروس رشته کامپیوتر به حساب می‌آید. در این مطلب، کلیه مسائل و نکات لازم پیرامون درس مهندسی اینترنت ارائه شده است. ابتدا به معرفی این درس و نکات قابل توجه در مورد آن پرداخته و سپس با ذکر سرفصل‌ها و رئوس مقالات، شرح مختصر و آموزش ابتدایی درباره هر یک از این مباحث به بیان ساده ارائه شده است.\nدرس مهندسی اینترنت چیست؟\nدرس مهندسی اینترنت درباره چیست؟\nدرس مهندسی اینترنت چه اهدافی را دنبال می‌کند؟\nچرا درس مهندسی اینترنت مهم است؟\nدرس مهندسی اینترنت با چه نامی در سطح جهان شناخته می‌شود؟\nمباحث مطرح شده در درس مهندسی اینترنت چه هستند؟\nپیش نیازهای درس مهندسی اینترنت چه هستند؟\nمنابع درس مهندسی اینترنت کدامند؟\nمنابع فارسی درس مهندسی اینترنت\nمنابع انگلیسی درس مهندسی اینترنت\nآموزش درس مهندس اینترنت\nسرفصل ها و رئوس مقالات درس مهندسی اینترنت\nفهرست مباحث وزارت علوم برای درس مهندسی اینترنت\nمفاهیم کلیدی شبکه‌های کامپیوتری\nتجهیزات ارتباطی در شبکه\nنحوه اتصال اجزا شبکه\nپروتکل‌های ارتباطی در شبکه\nلایه‌های پنجم تا هفتم\nمعرفی فیلم های آموزش شبکه های کامپیوتری\nنحوه عملکرد وب چگونه است؟\nتفاوت توسعه وب و طراحی وب چیست؟\nمعرفی فیلم های آموزش طراحی سایت با HTML و CSS\nمهارت های مورد نیاز برای توسعه وب\nدسترسی از راه دور (Remote Access)\nمعرفی فیلم های آموزش طراحی سایت\nمعرفی فیلم آموزش طراحی وب با HTML – مقدماتی\nمعرفی فیلم آموزش طراحی وب با HTML – تکمیلی\nمعرفی فیلم آموزش طراحی وب با CSS – مقدماتی\nمعرفی فیلم آموزش طراحی وب با CSS3) CSS) – تکمیلی\nمعرفی فیلم آموزش برنامه نویسی PHP\nمعرفی فیلم های آموزش جاوا اسکریپت\nمعرفی فیلم های آموزش پایگاه داده\nپیش نیازهای آموزش برنامه نویسی سوکت\nارتباط بین سوکت‌ها\nمدل کلاینت-سرور چیست ؟\nتعامل کلاینت-سرور در قالب TCP\nایجاد وب اپلیکیشن ساده\nآشنایی با جاوا (Java)\nمعرفی فیلم های آموزش جاوا\nآشنایی با Servlet\nآشنایی با JSP\nالگوی معماری سه لایه\nتفاوت معماری سه لایه با MVC چیست؟\nمعرفی فیلم آموزش مقدماتی پیاده‌سازی ماژول MVC با فریم ورک Spring Boot در Java\nاتصال به پایگاه داده در جاوا\nمعرفی فیلم آموزش پایگاه داده ها در جاوا\nنگاشت اشیا به رابطه‌ها\nمعرفی فیلم آموزش ORM هایبرنیت (Hibernate) جاوا (Java)\nسازمان دهی منطق دامنه\nمنطق دامنه چیست؟\nالگوهای سازمان‌دهی منطق دامنه\nچارچوب ها و الگوهای لایه نمایش در وب\nملاحظاتی پیرامون الگوهای نمایش وب\nمدیریت نشست چیست؟\nسیستم های وب توزیع شده\nخوشه بندی و محاسبات ابری\nامنیت وب اپلیکیشن‌ها\nآسیب‌پذیری‌های رایج امنیت وب‌اپلیکیشن‌ها چیست؟\nتزریق اسکریپت از طریق سایت (XSS)\nمعرفی فیلم آموزش امنیت در شبکه های کامپیوتری و اینترنت\nمعرفی فیلم آموزش تست نفوذ در وب و راه های مقابله با آن\nایجاد سیستم‌های وب اتکاپذیر\nکارایی سیستم های مبتنی بر وب\nمعیارهای کارایی وب اپلیکیشن\nچرا نیاز به وب سرویس وجود دارد ؟\nانواع مختلف سرویس های وب\nتفاوت وب سرویس و API چیست ؟\nمعرفی فیلم های آموزش درس مهندسی اینترنت\nفیلم های آموزش برنامه نویسی ASP.NET\nفیلم های آموزش های jQuery (جی کوئری)\nفیلم آموزش جنگو (Django) – فریمورک تحت وب با پایتون (Python)\nفیلم آموزش REST API در Laravel (لاراول) با بسته Passport\nفیلم آموزش فریمورک PHP کدایگنایتر (CodeIgniter)\nدرس مهندسی اینترنت یکی از دروس تخصصی رشته کامپیوتر است که می‌توان موضوع اصلی آن را توسعه برنامه‌های کاربردی تحت وب دانست. امروزه اینترنت بخش جدایی ناپذیری از زندگی اکثر افراد جامعه به حساب می‌آید. بر خلاف گذشته، بسیاری از کارها و امور روزمره به وسیله اینترنت انجام می‌شود که این مسئله باعث افزایش سطح رفاه و کیفیت زندگی در جامعه شده است. به واسطه رشد چشمگیر اینترنت و کاربردهای مختلف آن، بازار کار گسترده‌ای در این حوزه به وجود آمده است. بنابراین، یادگیری مفاهیم و موضوعات حوزه توسعه وب و مهندسی اینترنت اهمیت بسیار زیادی دارد. به طور قطع، دانشجویان رشته‌های کامپیوتر و همه افرادی که به یادگیری درس مهندسی اینترنت می‌پردازند، باید به این مبحث فراتر از یک درس دانشگاهی توجه نشان دهند. هدف از ارائه این مطلب، آشنایی با درس مهندسی اینترنت و تسهیل در امر آموزش و یادگیری این درس است. در ادامه، به معرفی درس مهندسی اینترنت پرداخته شده است.\nهمان‌طور که در ابتدا بیان شد، درس مهندسی اینترنت یکی از درس‌های مهم مقطع کارشناسی رشته کامپیوتر به حساب می‌آید. این درس سه واحدی، جزء دروس تخصصی رشته‌های مهندسی کامپیوتر گرایش نرم‌افزار و مهندسی فناوری اطلاعات است. درس مهندسی اینترنت برای دانشجویان گرایش سخت‌افزار در رشته مهندسی کامپیوتر جزء دروس اختیاری به حساب می‌آید. همچنین باید گفت که درس مهندسی اینترنت در فهرست دروس رشته علوم کامپیوتر قرار ندارد. در ادامه، توضیحات بیش‌تری پیرامون درس مهندسی اینترنت ارائه و به سوالات رایج درباره این درس پاسخ داده شده است.\nموضوع اصلی درس مهندسی اینترنت پیرامون برنامه‌نویسی و توسعه نرم‌افزارها و کاربردهای تحت وب است که امروزه با نام وب‌اپلیکیشن (Web Application) نیز شناخته می‌شوند.\nیکی از اهداف درس مهندسی اینترنت این است که دانشجویان رشته کامپیوتر با مقدمات برنامه‌نویسی و توسعه وب آشنایی لازم را کسب کنند. همچنین، به دست آوردن شناخت لازم پیرامون الگوهای رایج در توسعه معماری و طراحی برنامه‌های تجاری تحت وب، یکی دیگر از اهداف این درس محسوب می‌شود. آشنایی با الگوها، روش‌ها و مهارت‌های مهم در توسعه وب نیز از جمله مفاد مهم این درس به حساب می‌آیند.\nلازم به توضیح است که فناوری‌ها، ابزارها و بسترهای متفاوت و مختلفی برای توسعه وب وجود دارد و به همین دلیل، درس مهندسی اینترنت در دانشگاه‌های مختلف با تکیه بر روش‌ها و زبان‌های برنامه‌نویسی متفاوتی ارائه می‌شود. به عنوان مثال، می‌توان این درس را با محوریت جاوا، جاوا اسکریپت یا PHP ارائه کرد. بنابراین، نحوه پیاده‌سازی مفاهیم و سرفصل‌های این درس ممکن است بسته به دانشگاه و استاد مربوطه متفاوت باشد. در ادامه این بخش، به بررسی دلایل اهمیت درس مهندسی اینترنت پرداخته شده است.\nدرس مهندسی اینترنت ارتباط نزدیکی با صنعت و بازار کار دارد. همان‌طور که بیان شد، با توجه به گسترش چشمگیر کاربردهای وب در ایران و جهان، بازار کار بسیار وسیعی برای این حوزه وجود دارد. بنابراین، درس مهندسی اینترنت می‌تواند نقطه پرتابی برای دانشجویان به این بازار کار گسترده باشد. همچنین، برای آن دسته از افرادی که قصد دارند شرکت‌های استارتاپی تاسیس کنند و به تولید اپلیکیشن‌های تجاری بزرگ علاقه‌مند هستند، درس مهندسی اینترنت می‌تواند بسیار کاربردی و مفید باشد.\nباید به این نکته اشاره داشت که انتخاب فناوری مناسب و به‌روز برای توسعه وب و ساخت وب‌اپلیکیشن‌ها و کاربردهای تجاری بسیار حائز اهمیت است. به طبع، برخی از مهارت‌ها و مفاهیم پایه در این حوزه مشترک و یکسان هستند اما فناوری و بستر توسعه باید به‌روز و کاربردی باشد. ابزارهای جدید امکانات بیش‌تری ارائه می‌دهند و در نتیجه فرآیند تولید و ساخت با استفاده از آن‌ها بسیار ساده‌تر خواهد بود. در ادامه، در خصوص نام‌های مختلف این درس در سطح جهان بحث شده است.\nدرس مهندسی اینترنت در دانشگاه‌های مختلف، با نام‌ها و عناوین متفاوتی ارائه می‌شود. از جمله برخی از این عناوین می‌توان به موارد زیر اشاره کرد:\nInternet Engineering (مهندسی اینترنت)\nEnterprise Application Development (توسعه اپلیکیشن تجاری)\nWeb Programming (برنامه‌نویسی وب)\nWeb Development (توسعه وب)\nاز جمله دانشگاه‌هایی که تاکنون این درس در آن‌ها با نام Internet Engineering تدریس شده، می‌توان به دانشگاه Kent State ،Clorado و ویرجینیا در ایالات متحده اشاره کرد. حتی در برخی دانشگاه‌ها مهندسی اینترنت در کنار مهندسی کامپیوتر، به صورت یک رشته دانشگاهی در مقطع کارشناسی و کارشناسی ارشد نیز ارائه شده است. همین مسئله بیان‌گر اهمیت این درس در رشته مهندسی کامپیوتر است.\nهمان‌طور که بیان شد، مباحث و موضوعات ارائه شده در قالب درس مهندسی متفاوت است. اما برخی از موضوعات مشترک این درس که در اکثر دانشگاه‌ها تدریس می‌شوند شامل مبانی توسعه وب، راهبردهای کلیدی در توسعه وب و در نهایت استفاده از یک بستر و ابزار خاص برای پیاده‌سازی عملی مفاهیم و رویکردهای تئوری است. در ادامه، هر یک از موضوعات اصلی درس مهندسی اینترنت با جزئیات بیش‌تری فهرست شده است.\nمفاهیم و مهارت‌های مقدماتی: شبکه‌های کامپیوتری، اینترنت چیست؟، سرویس‌های وب، URL ،HTTP ،WWW، وب سرور، وب سایت، مرورگر، ISP ،HTML، هایپرلینک، DNS چیست و سایر موارد\nراهبردهای کلیدی در توسعه وب: الگوی معماری استفاده شده (MVC)، لایه‌بندی، کنترل همروندی، الگوها و پروتکل‌های مختلف و سایر موارد\nاکنون، دید کلی نسبت به درس مهندسی اینترنت حاصل شده و بهتر است در ادامه به بحث پیرامون پیش نیازهای درس مهندسی اینترنت پرداخته شود.\nدرس شبکه‌های کامپیوتری پیش‌نیاز درس مهندسی اینترنت است و درس پایگاه داده نیز هم‌نیاز این درس به حساب می‌آید. درس سیستم عامل پیش‌نیاز درس شبکه‌های کامپیوتری است. همچنین، درس ساختمان داده‌ها، پیش‌نیاز درس پایگاه داده و سیستم عامل به شمار می‌رود. یکی دیگر از پیش‌نیازهای درس سیستم‌های عامل، درس معماری کامپیوتر است. پیش‌نیازهای درس ساختمان داده‌ها نیز دروس برنامه‌سازی پیشرفته و ریاضیات گسسته هستند. در نهایت، پیش‌نیاز درس معماری کامپیوتر، درس مدارهای منطقی است. به طور کلی، برای اینکه بتوان درس مهندسی اینترنت را انتخاب کرد، در صورتی که درس پایگاه داده گذرانده نشده باشد، باید به عنوان هم‌نیاز انتخاب شده و علاوه بر آن، دروس زیر نیز باید گذرانده شده باشند:\nبا مشخص شدن پیش‌نیازهای درس مهندسی اینترنت، اکنون در ادامه مطلب به معرفی منابع این درس پرداخته شده است.\nبا توجه به اینکه بازه مباحث قابل ارائه و آموزش در درس مهندسی اینترنت بسیار گسترده است، منابع مختلفی برای آموزش و یادگیری این درس وجود دارد. در دانشگاه‌های مختلف منابع متفاوتی برای آموزش این درس معرفی شده است و بسیاری از اساتید به یک منبع خاص به عنوان مرجع اصلی درس مهندسی اینترنت بسنده نکرده و برای هر موضوع منابع مختلفی را معرفی می‌کنند. با در نظر داشتن این موضوع، در این بخش از مطلب درس مهندسی اینترنت ابتدا کتاب‌های مربوط به این درس به دو زبان فارسی و انگلیسی و سپس، سایر منابع معرفی شده‌اند.\nاز جمله منابع فارسی مهم این درس می‌توان به «کتاب مهندسی اینترنت عباسعلی رضایی» و «کتاب اصول مهندسی اینترنت دکتر احسان ملکیان» اشاره کرد. در زمان تدوین این مطلب، کتاب مهندسی اینترنت عباسعلی رضایی منبع رسمی این درس در دانشگاه پیام‌نور است. همچنین، از جمله منابع قدیمی این درس، می‌توان «کتاب مهندسی اینترنت مهندس بهزاد اکبری» را نام برد. در ادامه به برخی از منابع انگلیسی این درس اشاره شده است.\nدر این بخش از معرفی منابع درس مهندسی اینترنت برخی از منابع انگلیسی این درس ارائه شده است. در ادامه، منابع رسمی معرفی شده توسط وزارت علوم برای این درس فهرست شده است:\nPatterns of Enterprise Application Architecture | کتاب الگوهای معماری برنامه‌های کاربردی تجاری | مارتین فاولر (Martin Fowler) | 1382\nCore Servlets and Javaserver Pages: Advanced Technologies (2nd Edition) | سرولت‌های کلیدی و صفحات جاوا سرور: فناوری‌های پیشرفته (چاپ دوم) | مارتی هال (Marty Hall) | ۱۳۸۲\nSecurity Strategies in Web Applications and Social Networking | راهبردهای امنیتی در وب‌اپلیکیشن‌ها و شبکه‌های اجتماعی | مایک هاروود (Mike Harwood) | ۱۳۸۹\nهمچنین، از جمله برخی از سایر منابع کاربردی می‌توان به کتاب‌های زیر اشاره کرد:\nDesign Patterns: Elements of Reusable Object-Oriented Software | الگوهای طراحی: عناصر نرم‌افزار شیگرای قابل استفاده مجدد | اریک گاما (Erich Gamma)، ریچارد هلم (Richard Helm)، رالف جانسون (Ralph Johnson) و جان ویسایدس (Jphn Vissides) | 1373\nSoftware Engineering for Internet Applications | مهندسی نرم‌افزار در کاربردهای اینترنت | ایو اندرسون (Eve Anderson)، فیلیپ گرین‌اسپان (Philip Greenspun) و اندرو گرامت (Andrew Grumet) | 1385\nInternet & Intranet Engineering | مهندسی اینترنت و اینترانت | دانیال مینولی (Daniel Minoli) | ۱376\nHands-On Enterprise Application Development with Python: Design Data-intensive Application with Python 3 | آموزش عملی توسعه برنامه کاربردی تجاری با پایتون: طراحی اپلیکیشن با داده‌های حجیم با پایتون ۳ | ساورا بادوار (Saurabh Badhwar) | 1397\nPractical Enterprise Application Development | توسعه کاربردی اپلیکیشن تجاری | Francesco Marchioni (فرانچسکو مارچیونی) | ۱۳۹۸\nProfessional Java for Web Applications | راهنمای حرفه‌ای جاوا برای کاربردهای وب | نیکولاس ویلیامز (Nicholas S. Williams) | ۱۳۹۳\nدر ادامه منابع کاربردی برای درس مهندسی اینترنت و دوره‌های آموزش آنلاین به زبان اصلی معرفی شده است.\nهمان‌طور که بیان شد، هدف آموزش درس مهندسی اینترنت نباید تنها گذراندن این درس و کسب نمره قبولی یا حتی کسب نمره برتر باشد، بلکه این درس باید برای علاقه‌مندان و دانشجویان با انگیزه به عنوان نقطه شروع و اساس ورود به بازار کار و صنعت وب در نظر گرفته شود. بدین سبب، در این بخش از مطلب درس مهندسی اینترنت به آموزش مباحث و موضوعات کلیدی و کاربردی این درس پرداخته و منابع آموزشی متعددی مرتبط نیز معرفی شده‌اند تا دانشجویان بتوانند ضمن یادگیری مباحث و کسب آمادگی کافی برای آزمون این درس، با فناوری‌ها و ابزارهای به‌روز در این حوزه نیز آشنایی لازم را کسب کنند. در ادامه، سرفصل‌های اصلی و مهم برای آموزش درس مهندسی اینترنت ارائه شده است.\nبرای یادگیری درس مهندسی اینترنت آشنایی با مفاهیم شبکه‌های کامپیوتری به عنوان یک پیش‌نیاز ضرورت دارد. کاملاً واضح است که اینترنت از تعداد زیادی شبکه‌های کامپیوتری کوچک‌تر به وجود آمده است و عدم شناخت علم شبکه‌های کامپیوتری درست مثل این است که یک آشپز، شناختی نسبت به مواد اولیه پخت یک دستور غذایی نداشته باشد. بنابراین، اولین فصل درس مهندسی اینترنت به مفاهیم پایه و مروری بر درس شبکه‌های کامپیوتری اختصاص دارد.\nپس از یادگیری مفاهیم مهم شبکه‌های کامپیوتری، نوبت به آموزش لایه‌های مختلف شبکه در اینترنت می‌رسد. البته این مباحث بیش‌تر در منابع فارسی به این شکل مطرح شده‌اند. در خصوص موضوعاتی که در منابع مختلف مشترک هستند در بخش‌های قبلی توضیحات لازم ارائه شده است. تعدادی از سرفصل‌های درس مهندسی اینترنت در کتاب‌های فارسی به لایه‌های واسط شبکه، لایه IP و لایه انتقال در اینترنت اختصاص دارد. سایر سرفصل‌ها نیز پیرامون مسیریابی، DNS، برنامه‌نویسی سوکت، پروتکل‌های دسترسی و انتقال فایل، سازِکار پست الکترونیکی، WWW ،HTTP و مباحث امنیتی در اینترنت هستند.\nبه‌روزترین فهرست مباحث موجود که توسط وزارت علوم برای این درس اعلام شده، به شرح زیر است:\nمقدمه‌ای بر وب | پروتکل HTTP | طراحی صفحات وب\nساخت وب‌اپلیکیشن‌های ساده (بر مبنای PHP ،Servlet یا دات‌نت)\nاتصال به پایگاه داده‌ها | نگاشت اشیا به رابطه‌ها\nسازمان‌دهی منطق دامنه (Logic Domain Organization)\nچارچوب‌ها و الگوهای لایه نمایش در وب\nمدیریت نشست‌ها (Sessions)\nکنترل همروندی در سیستم‌های وب (Concurrency Control)\nسیستم‌های وب توزیع شده (Distributed Web Systems)\nخوشه‌بندی و محاسبات ابری (Cluster and Cloud Computimg)\nایجاد سیستم‌های وب اتکاپذیر (Reliable Web Systems)\nکارایی سیستم‌های مبتنی بر وب\nسرویس‌های وب (Web Services)\nبا توجه به اینکه فهرست فوق به‌روزترین فهرست مباحث درس مهندسی اینترنت محسوب می‌شود، در این مطلب به عنوان محور آموزش درس مهندسی اینترنت در نظر گرفته شده است. اما، بهتر است ابتدا نسبت به مرور مباحث مقدماتی و مفاهیم اصلی درس شبکه‌های کامپیوتری پرداخته شود.\nبا توجه به اینکه درس شبکه‌های کامپیوتری پیش‌نیازی برای درس مهندسی اینترنت به حساب می‌آید، در این بخش، مروری بر درس شبکه و مفاهیم کلیدی و مهم آن انجام شده است. در ادامه، به چیستی شبکه‌های کامپیوتری پرداخته شده است.\nیک شبکه کامپیوتری مجموعه‌ای از کامپیوترها است که با هدف به اشتراک‌گذاری منابع، به یکدیگر متصل می‌شوند. یک شبکه شامل مجموعه‌ای از گره‌ها (Node) است که به وسیله لینک‌های ارتباطی به هم متصل هستند.\nگره یا Node می‌تواند یک کامپیوتر، پرینتر یا هر دستگاه دیگری باشد که امکان برقراری ارتباط با سایر گره‌ها و تبادل (ارسال یا دریافت) داده‌ها را داشته باشد. برای اینکه یک شبکه کامپیوتری بتواند به درستی کار کند، علاوه بر گره‌ها، نیاز به تجهیزات دیگری هم وجود دارد.\nاز جمله تجهیزات و دستگاه‌های ارتباطی مهم در شبکه‌های کامپیوتری می‌توان به هاب (Hub) و سوئیچ (Switch) اشاره کرد. همچنین، یک روتر (Router) دستگاهی است که برای برقراری ارتباط بین چند شبکه مورد استفاده قرار می‌گیرد. برای اطلاعات بیش‌تر پیرامون تجهیزات شبکه، مطالعه مقالات «تفاوت روتر، هاب و سوئیچ در چیست؟ – به زبان ساده» و «روتر چیست و چگونه کار می‌کند؟ – به زبان ساده» پیشنهاد می‌شود. اما، گره‌ها و تجهیزاتی مثل سوئیچ و روتر چگونه به هم متصل می‌شوند؟ در ادامه به این مسئله پرداخته شده است.\nانواع مختلف شبکه‌ها و اجزا آن‌ها می‌توانند به دو صورت کابلی و وایرلس با هم در ارتباط باشند. به طور کلی، ارتباط از طریق کابل پایداری بیش‌تری نسبت به ارتباط بی‌سیم دارد و سریع‌تر است. شبکه‌های کامپیوتری بر اساس میزان گستردگی به انواع مختلفی دسته‌بندی می‌شوند که در ادامه به این مسئله پرداخته شده است.\nبه طور کلی می‌توان شبکه‌های کامپیوتری را به دو دسته LAN و WAN تقسیم کرد. یک شبکه محلی (Local Area Network) ارتباط میان کامپیوترهایی را برقرار می‌کند که به هم نزدیک هستند. در طرف مقابل، یک شبکه گسترده (Wide Area Network) تعداد کامپیوترهای بیش‌تری را در یک محدوده بزرگ‌تر پوشش می‌دهد. یک WAN معمولاً از تعدادی LAN تشکیل و برای اتصال آن‌ها به یکدیگر استفاده می‌شود.\nشبکه‌هایی که در داخل یک WAN قرار دارند به یک شرکت یا سازمان تعلق دارند. می‌توان گفت، اینترنت بزرگ‌ترین شبکه WAN در جهان به شمار می‌رود. برای اطلاعت بیش‌تر راجع به انواع شبکه‌های کامپیوتری، مطالعه مطلب «انواع شبکه‌های کامپیوتری — راهنمای جامع» و «فناوری‌های مختلف LAN در شبکه — راهنمای جامع» پیشنهاد می‌شود. همچنین، در مطلب «توپولوژی شبکه های کامپیوتری — راهنمای جامع» انواع شبکه‌های کامپیوتری از دیدگاه شکل ساختارى (توپولوژی) معرفی شده‌اند.\nکامپیوترها می‌توانند عضوی از چندین شبکه مختلف باشند؛ درست همان‌طور که شبکه‌ها هم بخشی از شبکه‌های بزرگ‌تر هستند. معمولاً یک شبکه محلی در کسب‌وکار کوچک و زیرمجموعه، به شبکه شرکت تجاری بزرگ‌تری متصل است. ممکن است این اتصالات علاوه بر برقراری ارتباط داخلی، دسترسی به اینترنت را نیز فراهم کرده باشند. برای ارتباط میان اجزا در شبکه، نیاز به قواعد و قراردادهایی وجود دارد.\nیک شبکه برای برقراری ارتباط میان اجزا خود، نیاز به پروتکل‌های ارتباطی دارد. کامپیوترهای متصل در یک شبکه باید برای ارتباط با سایر اجزا و تبادل داده با آن‌ها، از مجموعه قوانین مشترکی تبعیت کنند. این قوانین جهانی هستند و همه کامپیوترها در شبکه باید از آن‌ها پیروی کنند. در غیر اینصورت، اینترنت و شبکه به درستی کار نخواهد کرد. به این قوانین پروتکل (Protocol) گفته می‌شود. در بسترها و سیستم‌عامل‌هایی از جمله ویندوز، لینوکس و بسیاری از سایر سیستم‌عامل‌ها از پروتکل TCP/IP استفاده می‌شود. برای مطالعه بیش‌تر و دقیق‌تر پیرامون مفهوم پروتکل، پیشنهاد می‌شود مخاطبین مطلب «پروتکل (Protocol) چیست ؟ | تعاریف، مفاهیم و انواع — به زبان ساده» را مطالعه کنند.\nپروتکل‌های مختلفی وجود دارد که هر یک برای هدف متفاوتی به کار می‌روند. به همه این پروتکل‌ها، مجموعه پروتکل‌های اینترنت (Internet Protocol Suite) گفته می‌شود. دو تا از مهم‌ترین پروتکل‌ها در مجموعه پروتکل‌های اینترنت، پروتکل هدایت انتقال (Transmission Control Protocol |TCP) و پروتکل اینترنت (Internet protocol | IP) هستند که برای اطمینان از سالم رسیدن داده‌ها به مقصد و جلوگیری از بروز خطا وضع شده‌اند.\nپروتکل TCP : پروتکل TCP یا قاعده هدایت انتقال (Transmission Control Protocol)، یکی از پروتکل‌های اصلی مجموعه پروتکل‌های اینترنت به شمار می‌رود. TCP بخشی از ترکیب رایج و محبوب TCP/IP است که در اینترنت مورد استفاده قرار می‌گیرد. TCP برای حصول اطمینان از قرار گرفتن داده‌ها در ترتیب صحیح و گم نشدن آن‌ها در مسیر به کار گرفته می‌شود. همچنین، پروتکل اینترنت یا IP اطمینان حاصل می‌کند که داده‌ها به محل (نشانی) مورد نظر برسند.\nپروتکل IP : پروتکل اینترنت (IP) مهم‌ترین پروتکل ارتباطی در مجموعه پروتکل‌های اینترنت برای انتقال اطلاعات میان شبکه‌ها و گره‌ها به حساب می‌آید. پروتکل IP اساساً قاعده و پروتکل حیاتی در برقراری اینترنت است. پروتکل IP، ارتباطی را برقرار نمی‌کند و فقط تعیین می‌کند که بسته‌ها چگونه باید ایجاد شوند. در عوض، TCP امکان برقراری ارتباط را فراهم می‌کند. بنابراین، هیچکدام بدون دیگری قادر به فعالیت نیستند و به همین دلیل، همیشه در کنار یکدیگر و با نام TCP/IP خطاب می‌شوند. این مسئله، وابستگی شدید این دو پروتکل را نشان می‌دهد.\nدر صورتی که فناوری ارتباطی شبکه دارای یک مدل بزرگ و منفرد باشد، پیاده‌سازی چنین مدلی بسیار دشوار خواهد بود. به همین دلیل، قطعات و اجزا مختلف شبکه به ماژول‌ها و لایه‌های کوچک‌تری تقسیم و جداسازی می‌شوند. مدل استاندارد یک شبکه، مدل OSI یا مدل ارتباط درونی سیستم‌های باز (Open Systems Interconnection) نامیده می‌شود. مدل‌های شبکه دیگری هم وجود دارند که آن‌ها هم به لایه‌های مشابهی تقسیم می‌شوند. در نوشته «مدل‌های شبکه کامپیوتری — راهنمای جامع» توضیحات بیش‌تری پیرامون مدل‌های شبکه ارائه شده است.\nدر مدل‌های شبکه، ارتباطات میان سیستم‌های کامپیوتری به لایه‌های مختلفی تقسیم می‌شود. هر لایه از خدماتی استفاده می‌کند که توسط لایه زیرین فراهم شده است. این درحالی است که این لایه نیز خود به لایه‌های بالاتر خدمت‌رسانی می‌کند. هر لایه در مبدأ تنها می‌تواند با لایه متناظر خود در دستگاه مقصد ارتباط برقرار کند.\nمدل OSI یک مدل شبکه هفت لایه‌ای است که توسط سازمان بین‌المللی استاندارد‌سازی (International Organization for Standardization) وضع شده است و به طور گسترده‌ای در سطح جهان مورد استفاده قرار می‌گیرد. در ادامه، هر یک از این هفت لایه به اختصار شرح داده شده است.\nاولین لایه با نام «لایه فیزیکی» شناخته می‌شود که مشخصات فیزیکی و الکتریکی را برای دستگاه‌ها تعریف می‌کند. همچنین، این لایه «انتقال ماژول‌بندی شده» (Modulated Transmission) و «انتقال باندپایه» (Baseband Transmission) را مشخص می‌کند.\nBaseband Transmission: باندپایه در واقع اصطلاحی است که به داده‌های دیجیتالی در قالب خام خود (1001 1101 1010 0011) اطلاق می‌شود. چنین قالبی، انتقال و تبادل داده‌ها با سرعت بسیار زیاد را در طول مسیرهای کوتاه امکان‌پذیر می‌سازد. فناوری Baseband در شبکه‌های محلی (Local Area Network | LAN) رایج است.\nModulated Transmission: در مخابرات، مدولاسیون (سامان‌دهی | Modulation) به فرآیند حمل و نقل یک سیگنال حامل پیام گفته می‌شود. بر فرض مثال، یک سیگنال پیام می‌تواند یک جریان بیتی دیجیتال باشد یا یک سیگنال صوتی آنالوگ در داخل سیگنال دیگری که قابل انتقال باشد. دستگاهی که مدولاسیون سیگنال باندپایه را فراهم می‌کند، یک مدولاتور نام دارد. لازم به توضیح است که در مطلب «لایه فیزیکی در شبکه‌های کامپیوتری — راهنمای جامع» نیز توضیحاتی پیرامون لایه فیزیکی ارائه شده است.\nلایه دوم، «لایه پیوند داده» (Data Link) نام دارد که وسایل عملکردی و رویه‌ای را برای انتقال داده میان واحدهای شبکه و همچنین برای شناسایی و احتمالاً اصلاح خطاهایی فراهم می‌کند که ممکن است در لایه فیزیکی رخ دهند. در دو مطلب «لایه داده-لینک (Data-link) در شبکه‌های کامپیوتری — راهنمای جامع» و «کنترل گردش و پروتکل‌های داده-لینک در شبکه‌های کامپیوتری — به زبان ساده» نیز برخی مفاهیم لایه پیوند داده شرح داده شده است که مطالعه آن جهت افزایش سطح آگاهی پیرامون این لایه پیشنهاد می‌شود.\nاین لایه که به آن لایه شبکه گفته می‌شود، ابزارهای عملکردی و رویه‌ای انتقال توالی داده‌هایی در اندازه متغیر را از یک منبع میزبان در یک شبکه به میزبان مقصد در شبکه دیگر و با استفاده از IP فراهم می‌سازد. برخی از مقالات پیرامون لایه شبکه جهت مطالعه بیش‌تر علاقه‌مندان در ادامه فهرست شده است:\nپروتکل‌های لایه شبکه — راهنمای جامع\nمسیریابی لایه شبکه — راهنمای جامع\nنشانی پروتکل اینترنت (Internet Protocol | IP) یک برچسب عددی است که به هر دستگاه موجود در شبکه (مثلاً کامپیوتر یا پرینتر و سایر موارد) تخصیص داده می‌شود. در حال حاضر، دو نسخه پروتکل IP به نام‌های IPv4 و IPv6 وجود دارند و مورد استفاده قرار می‌گیرند. در ادامه، هر کدام از این نسخه‌ها به طور مختصر معرفی شده‌اند.\nIPv4: آی‌پی نسخه چهار از آدرس‌دهی ۳۲ بیتی استفاده می‌کند که فضای آدرس آن محدود به تعداد ۲32 (4294967296) آدرس منحصربه‌فرد است.\nIPv6: این نسخه از آدرس‌دهی ۱۲۸ بیتی استفاده می‌کند که فضای آدرس آن به 2128 آدرس ممکن و منحصربه‌فرد محدود می‌شود.\nدر مطلب «آدر‌س‌دهی در شبکه‌های کامپیوتری — به زبان ساده» توضیحاتی پیرامون آدرسی‌دهی IP در شبکه ارائه شده است. در ادامه، لایه چهارم مدل OSI شرح داده شده است.\nلایه چهارم مدل OSI را لایه انتقال می‌نامند. این لایه، انتقال شفاف داده بین کاربران نهایی و خدمات انتقال داده قابل اطمینان به لایه‌های بالاتر را فراهم می‌سازد. پروتکل مدیریت انتقال (Transmission Control Protocol | TCP) و پروتکل داده‌نگار کاربر (User Datagram Protocol | UDP) که جزئی از مجموعه پروتکل‌های اینترنت به شمار می‌روند، عموماً به عنوان پروتکل‌های لایه چهار در مدل OSI دسته‌بندی می‌شوند. در ادامه، دو پروتکل TCP و UDP به اختصار شرح داده شده‌اند:\nTCP: پروتکل مدیریت انتقال، واگذاری مرتب شده یک جریان از بایت‌ها را از یک برنامه در یک کامپیوتر به برنامه دیگری در کامپیوتر دیگر فراهم می‌کند. TCP برای برنامه‌هایی به کار می‌رود که اکیداً نیاز به انتقال قابل اطمینان دارند (مثل ایمیل، WWW، انتقال فایل با FTP و سایر موارد).\nUDP: این پروتکل از یک مدل انتقال ساده و بدون توافق دست‌دهی (Handshaking) پیروی می‌کند. در این پروتکل، فراهم کردن پایداری، حفظ ترتیب یا سلامت داده مد نظر نیست؛ بلکه، UDP در کاربردهایی استفاده می‌شود که در آن‌ها، کاهش تأخیر اولویت بیش‌تری نسبت به پایداری و قابلیت اطمینان دارد.\nدر ادامه، برخی از نوشتارهای مرتبط با موضوع انتقال و لایه انتقال در شبکه‌های کامپیوتری فهرست شده‌اند که تاکنون در مجله فرادرس منتشر شده‌اند.\nانتقال در شبکه‌های کامپیوتری — راهنمای جامع\nلایه انتقال در شبکه‌های کامپیوتری — به زبان ساده\nانتقال آنالوگ در شبکه های کامپیوتری — راهنمای جامع\nانتقال دیجیتال در شبکه های کامپیوتری — راهنمای جامع\nپروتکل UDP در شبکه‌های کامپیوتری — راهنمای جامع\nدر مدل‌های شبکه‌ای که نسبت به مدل OSI ساده‌سازی شده‌اند، سه لایه ۵، ۶ و ۷ معمولاً در یک لایه، متحد و خلاصه می‌شوند. هدف این سه لایه این است که با برنامه‌های کاربردی تعامل داشته باشند، رمزنگاری را انجام دهند و در صورت لزوم ارتباطات اختصاصی (Dedicated) برقرار کنند. مطلبی با عنوان «لایه اپلیکیشن در شبکه‌های کامپیوتری — راهنمای جامع» نیز در مجله فرادرس موجود است که مطالعه آن برای کسب دانش بیش‌تر پیرامون لایه اپلیکیشن پیشنهاد می‌شود. فهرستی از سایر مقالاتی که تاکنون در مجله فرادرس پیرامون موضوع شبکه‌های کامپیوتری انتشار یافته، به شرح زیر است:\nمفاهیم مقدماتی انتقال داده و شبکه های کامپیوتری — راهنمای جامع\nسوئیچینگ در شبکه های کامپیوتری — به زبان ساده\nشناسایی و اصلاح خطا در شبکه های کامپیوتری — راهنمای جامع\nشبکه بندی متقابل (Internetworking) در شبکه های کامپیوتری — به زبان ساده\nمفهوم مالتی پلکس در شبکه‌های کامپیوتری — راهنمای جامع\nانواع سرویس‌های شبکه — راهنمای جامع\nFTTH چیست؟ — از صفر تا صد\nباز کردن پورت (Port) در فایروال ویندوز – به زبان ساده\nراه‌اندازی شبکه خانگی — آموزش گام به گام و به زبان ساده\nدر ادامه، به معرفی فیلم‌ها و دوره‌های آموزشی کاربردی پیرامون شبکه‌های کامپیوتری پرداخته شده است.\nشبکه‌های کامپیوتری یکی از حوزه‌های مهم و اساسی صنعت فناوری اطلاعات به شمار می‌رود. همچنین، درس شبکه‌های کامپیوتری یکی از دروس پایه و مهم در گرایش‌های مختلف رشته مهندسی کامپیوتر و فناوری اطلاعات است. برای یادگیری بهتر مفاهیم شبکه‌های کامپیوتری به عنوان پیش‌نیاز درس مهندسی اینترنت، استفاده از دوره‌های آموزشی شبکه‌های کامپیوتری پیشنهاد می‌شود. مجموعه دوره‌های آموزش شبکه در وب‌سایت فرادرس دارای نزدیک به ۲۰ هزار دقیقه فیلم آموزشی و ۳۸ دوره مختلف است. این دوره‌ها در سطوح مقدماتی تا پیشرفته در دسترس هستند. فناوری‌ها و مباحث مختلف شبکه‌های کامپیوتری در هر یک از این دوره‌ها پوشش داده شده است. دوره‌های سیسکو، مایکروسافت، میکروتیک و همچنین دوره‌هایی پیرامون مباحث امنیت شبکه در این مجموعه موجود است.\nبرای دیدن فیلم های آموزش شبکه های کامپیوتری + اینجا کلیک کنید.\nدر ادامه، برخی از دوره‌های شاخص این مجموعه معرفی و فهرست شده‌اند.\nفیلم آموزش شبکه های کامپیوتری ۱: طول مدت این دوره ۱۹ ساعت و ۱۳ دقیقه است و مدرس آن مهندس علیرضا سبحانی هستند. در این دوره آموزشی جامع، کلیه مباحث مقدماتی و لایه‌های مختلف شبکه پوشش داده شده است. برای دسترسی به صفحه این آموزش + کلیک کنید.\nفیلم آموزش شبکه های کامپیوتری ۲ – همراه با حل مسأله: طول مدت این آموزش ۲۳ ساعت و ۱۷ دقیقه و مدرس آن مهندس منوچهر بابایی هستند. این دوره با رویکرد حل مسئله ارائه شده و برای آماده‌سازی جهت شرکت در آزمون کارشناسی ارشد مناسب است. برای درسترسی به صفحه این آموزش + کلیک کنید.\nفیلم آموزش Windows Server 2012 (ویندوز سرور ۲۰۱۲) – نصب و پیکربندی: طول مدت این آموزش ۲۵ ساعت و ۵۸ دقیقه است و مدرس آن مهندس محمدعلی فردانی هستند. در این دوره، مفاهیم مختلف شبکه از جمله DNS ،DHCP مجازی‌سازی و بسیاری از مباحث دیگر در ویندوز سرور 2012 آموزش داده شده است. برای دسترسی به صفحه این آموزش + کلیک کنید.\nفیلم آموزش سیسکو CCNA (سی سی ان ای) – ICND1: طول مدت این دوره ۱۵ ساعت و ۲ دقیقه است و مدرس آن مهندس عباس ولی زاده هستند. در این دوره، مباحث و رئوس مقالات آزمون CCNA شرکت سیسکو پوشش داده شده است. برای دسترسی به صفحه این آموزش + کلیک کنید.\nاکنون با پایان آموزش شبکه‌های کامپیوتری، زمان آن فرا رسیده است تا به مباحث و مفاهیم اساسی وب و اینترنت پرداخته شود.\nدر این بخش از آموزش درس مهندسی اینترنت مفاهیم مقدماتی وب، پروتکل HTTP، طراحی صفحات وب و سایر موضوعات مرتبط با وب پوشش داده شده است.\nامروزه اینترنت به بخش مهمی از زندگی روزمره افراد در سراسر دنیا بدل شده است. در این بخش از آموزش درس مهندسی اینترنت ارائه تعریف مختصری از اینترنت به عنوان ابتدایی‌ترین مفهوم در دنیای وب ضرورت دارد:\nاینترنت اساساً یک منبع محاسباتیِ جهانی است. می‌توان اینترنت را به صورت مجموعه‌ای از روترها و مدارها در نظر گرفت که جهت به اشتراک‌گذاری منابع به کار گرفته می‌شوند. اینترنت، سیستم جهانی شبکه‌های کامپیوتری به هم پیوسته است که از مجموعه پروتکل‌های اینترنت (TCP/IP) برای ارتباط میان شبکه‌ها و دستگاه‌ها استفاده می‌کند.\nدر ادامه مهم‌ترین سرویس‌های قابل ارائه در چارچوب اینترنت معرفی شده‌اند.\nبرخی از سرویس‌ها و خدمات اساسی که در دسترس کاربران اینترنت قرار دارد، در ادامه فهرست شده‌اند:\nEmail: روشی ساده، آسان و کم‌هزینه برای برقراری ارتباط با سایر کاربران اینترنت در نقاط مختلف جهان محسوب می‌شود. در خصوص ایمیل، مطالعه مطلب «آشنایی با ۷ پروتکل امنیت ایمیل — به زبان ساد» پیشنهاد می‌شود.\nتل‌نت (Telnet): به یک کاربر اجازه می‌دهد تا درست مثل یک کامپیوتر محلی، به یک کامپیوتر راه دور دسترسی داشته باشد.\nFTP: این پروتکل به کاربر امکان می‌دهد تا هر نوع فایل قابل ذخیره‌سازی را در بستر اینترنت از کامپیوتری به کامپیوتر دیگر انتقال دهد. پیرامون مبحث FTP خواندن مقاله «FTP و FTP سرور چیست؟ | به زبان ساده» توصیه می‌شود.\nWWW: تارنمای جهان گستر (شبکه جهانی وب | World Wide Web) یک رابط فرامتنی (Hypertext) برای منابع اطلاعاتی اینترنت است. ممکن است این مفهوم چندان واضح به نظر نرسد. در ادامه توضیحات بیش‌تری پیرامون WWW ارائه شده است.\nهمان‌طور که به اختصار توضیح داده شد، WWW سرنامی برای عبارت «World Wide Web» و به معنی تارنمای جهان گستر است. تعریف فنی از تارنمای جهان گستر به صورت زیر است:\nWWW شامل تمام منابع و کاربران اینترنت است که از پروتکل اچ‌تی‌تی‌پی (HTTP | Hypertext Transfer Protocol) برای برقراری ارتباط استفاده می‌کنند.\nیک تعریف گسترده‌تر برای WWW از سازمانی برگرفته شده که مخترع وب، تیم برنرزلی (Tim Berners-Lee) در بنیان‌گذاری آن نقش داشته است. این سازمان، اتحادیه تارنمای جهان‌گستر (W3C | World Wide Web Consortium) نام دارد. تعریف W3C از WWW بدین شرح است:\nتارنمای جهان‌گستر، جهان اطلاعات قابل دسترس در شبکه و تجسمی از دانش بشر است.\nبه بیان ساده، تارنمای جهان گستر یا همان شبکه جهانی وب، روشی برای تبادل اطلاعات میان کامپیوترها در اینترنت است و آنها را به یک مجموعه گسترده از منابع چندرسانه‌ای تعاملی مرتبط می‌کند. در تعریف فنی WWW، سخن از پروتکل یا قراردادی به نام HTTP به میان آمد که در ادامه توضیحات بیش‌تری راجع به آن ارائه شده است.\nHTTP سرنامی برای عبارت «Hypertext Transfer Protocol» و به معنی «قرارداد انتقال ابَرمتن» است. HTTP پروتکل یا منشوری است که برای انتقال مستندات ابرمتن استفاده می‌شود. این مستندات پایه و اساس شبکه جهانی وب محسوب می‌شوند.\nURL: یک آدرس وب استاندارد مثل www.Faradars.org یک URL نامیده می‌شود. URL سرنامی برای «Uniform Resource Locator» است و برای مشخص کردن آدرس‌ها در وب استفاده می‌شود. یک URL، هویت بنیادین شبکه برای هر منبعی است که به وب متصل باشد. این منابع می‌توانند شامل صفحات ابرمتن و فایل‌های تصویری و صوتی باشند. یک URL قالبی به صورت زیر خواهد داشت:\nسایر اطلاعات / نام میزبان//: پروتکل\nبخش پروتکل در آدرس URL نوع پروتکل برای ارتباط با میزبان را مشخص می‌کند. پروتکلی که برای منابع وب (صفحات وب) به کار می‌رود، HTTP است. امروزه، استفاده از پروتکل HTTPS که نوع ایمن شده HTTP به حساب می‌آید، بسیار رایج شده و اکثر وب‌سایت‌ها از HTTPS استفاده می‌کنند. از جمله پروتکل‌های دیگری که با اکثر صفحات وب همخوانی دارند، می‌توان به FTP و تل‌نت اشاره کرد.\nبعد از پروتکل، یک علامت نقل قول و دو اسلش در آدرس URL قرار داده می‌شود و پس از این علامت‌ها، باید نام دامنه یا میزبان را وارد کرد. نام دامنه کامپیوتری است که منابع در آن قرار دارند. ممکن است پس از نام دامنه، پیوندهایی به یک فایل خاص یا زیرپوشه‌ها نیاز باشد که می‌توان جهت دسترسی، نام آن‌ها را بعد از یک اسلش دیگر و در ادامه نام دامنه وارد کرد. برخی از مقالات مجله فرادرس پیرامون پروتکل HTTP که می‌توانند جهت آشنایی بیش‌تر با این مفهوم مهم در درس مهندسی اینترنت مطالعه شوند، به شرح زیر است:\nدر ادامه به بررسی مفهوم و چیستی یک وب‌سایت پرداخته شده است.\nبه عنوان مثال، مجله فرادرس (www.blog.faradars.com) یک وب‌سایت است که صفحات مختلفی دارد. این صفحات با استفاده از زبان نشانه‌گذاری ابرمتن (Hypertext Markup Language | HTML) ایجاد شده‌اند. یک وب‌سایت، مجموعه‌ای از صفحات در وب است که افراد می‌توانند، به عنوان مثال، برای آموزش و یادگیری فناوری‌های مختلف یا مطالعه و مشاهده خبرها به آن مراجعه کنند. با یک جستجوی ساده، می‌توان دریافت که، در حال حاضر نزدیک به دو میلیارد وب‌سایت در جهان وجود دارد. هر صفحه موجود در یک وب‌سایت را یک «صفحه وب» می‌نامند. اما وب‌سایت‌ها در کجا ذخیره می‌شوند؟ در ادامه به این موضوع پرداخته شده است.\nهر وب‌سایت در یک کامپیوتر ذخیره شده است که به آن وب‌سرور می‌گویند. این سرور همیشه به اینترنت متصل است. به هر وب‌سرور متصل به اینترنت یک نشانی منحصربه‌فرد اختصاص داده می‌شود. این آدرس از یک دسته چهارتایی از اعداد تشکیل شده است. هر کدام از این اعداد می‌تواند مقداری بین صفر تا ۲۵۶ داشته باشد و همچنین، این چهار عدد با نقطه از هم جدا می‌شوند.\nبرای مثال، یک آدرس IP به صورت 68.178.157.132 یا 68.122.35.127 است. وقتی که فردی یک آدرس وب یا همان نام دامنه را ثبت می‌کند، باید آدرس آی‌پی وب‌سروری که از سایت میزبانی می‌کند را مشخص کرده باشد. اما یک فرد چطور می‌تواند به یک سایت دسترسی پیدا کرده و محتوای آن را ببیند؟ در ادامه به این مسئله پرداخته شده است. برای آشنایی بیش‌تر با مفهوم سرور مطالعه مطلب «سرور چیست ؟ — آنچه باید بدانید به زبان ساده» پیشنهاد می‌شود.\nمرورگرهای وب نرم‌افزارهایی هستند که برای دسترسی به وب روی یک کامپیوتر نصب می‌شوند. از جمله برخی از مرورگرهای رایج می‌توان به گوگل کروم، موزیلا فایرفاکس و Opera اشاره کرد. در حال حاضر، برای دسترسی به مجله فرادرس و مطالعه این مطلب، باید از یک مرورگر استفاده شود. اصطلاح رایجی که برای جستجو در وب و جابه‌جایی میان صفحات مختلف به کار برده می‌شود، «وب‌گردی» (Browsing the web | Surfing the web) است. اما اگر شخصی بخواهد از طریق اینترنت نامه ارسال کند، این کار از چه طریقی انجام می‌شود؟ در ادامه راجع به سرور SMTP بحث شده است.\nSMTP Server سرنامی برای «Simple Mail Transfer Protocol Server» به معنی «سرور پروتکل ساده انتقال ایمیل» است. این سرور کار تحویل ایمیل‌ها از یک سرور به سرور دیگر را بر عهده دارد. وقتی ایمیلی به یک نشانی ایمیل فرستاده می‌شود، در واقع، این ایمیل توسط یک سرور SMTP به دریافت کننده تحویل داده می‌شود. حال این سوال وجود دارد که یک کاربر چطور می‌تواند به اینترنت دسترسی داشته باشد؟ در ادامه، به این سوال پاسخ داده شده است. مطالعه مقالات «انواع میل سرورها | میل سرور چیست — انواع آن چه فرقی دارند» و «راه اندازی mail server در ویندوز سرور ۲۰۱۲ — آموزش گام به گام تصویری» نیز در خصوص سرورهای ایمیل، انواع آن‌ها و نحوه پیاده‌سازی آن‌ها پیشنهاد می‌شود.\nISP سرنامی برای عبارت «Internet Service Provider» و به معنی «ارائه‌دهنده خدمات اینترنتی» است. به شرکتی که سرویس اینترنت را برای مشتریان فراهم می‌کند، ISP می‌گویند. همچنین، برای خریداری فضای ذخیره‌سازی روی یک سرور، می‌توان به شرکت‌های ارائه‌دهنده خدمات میزبانی مراجعه کرد. در مطلب «راهنمای جامع خرید هاست | به همراه اینفوگرافیک» توضیحاتی پیرامون نحوه خرید و انواع خدمات میزبانی ارائه شده است. در ادامه، به معرفی HTML پرداخته شده است.\nHTML سرنامی برای «Hyper Text Markup Language» یا «زبان نشانه‌گذاری HTML» است. صفحات وب در وب‌سایت‌ها با HTML نوشته می‌شوند. HTML زیرمجموعه‌ای از زبان نشانه‌گذاری تعمیم‌یافته استاندارد (Standard Generalized Mark-Up Language | SGML) برای انتشار الکترونیکی است. SGML استاندارد تعیین شده برای استفاده در شبکه جهانی وب است. مطلب جامع و کاربردی پیرامون HTML با عنوان «زبان برنامه نویسی HTML چیست؟ | راهنمای یادگیری و شروع به کار | به زبان ساده» در مجله فرادرس موجود است که مطالعه آن برای آشنایی بیش‌تر با HTML و نحوه طراحی صفحات وب با آن، به مخاطبین محترم پیشنهاد می‌شود.\nیک هایپرلینک (Hyperlink) یا لینک (پیوند | Link) یک عنصر قابل انتخاب در یک سند الکترونیک است که در نقش نقطه دسترسی به سایر منابع الکترونیک ظاهر می‌شود. در واقع می‌توان برای دسترسی و رفتن به صفحه پیوند داده شده، روی آن هایپرلینک یا لینک کلیک کرد. برخی از انواع رایج هایپرلینک‌ها شامل دکمه‌ها، آیکن‌ها و لینک‌های متنی قابل کلیک است. مطالعه مطلب «ایجاد هایپرلینک در HTML — راهنمای کاربردی» پیرامون هایپرلینک پیشنهاد می‌شود.\nDNS یعنی سیستم نام دامنه که سرنامی برای «Domain Name System» است. وقتی که شخصی نام دامنه یک وب‌سایت را وارد می‌کند، مرورگر از DNS می‌خواهد تا آدرس IP سروری که از آن وب‌سایت میزبانی می‌کند را بیابد. وقتی که صاحب سایت نام دامنه را ثبت می‌کند، باید آدرس IP سرور سایت را به همراه نام دامنه در یک DNS قرار دهد. در صورتی که این کار انجام نشود، نام دامنه به درستی عمل نخواهد کرد. در مورد DNS، مطالعه مقاله «مفاهیم DNS و انواع سرورهای آن — راهنمای جامع» توصیه می‌شود.\nهمان‌طور که در تعریف WWW اشاره شد، W3C مخفف عبارت «World Wide Web Consortium» و به معنی «اتحادیه شبکه جهانی وب» است. W3C یک اتحادیه بین‌المللی متشکل از شرکت‌های داخلی در اینترنت محسوب می‌شود. W3C در اوایل دهه هفتاد شمسی توسط معمار اولیه شبکه جهانی وب یعنی تیم برنرزلی بنیان‌گذاری شد. هدف از تأسیس سازمان W3C این است که به جای متفرق شدن در گروه‌های رقیب، تکامل شبکه جهانی وب در یک مسیر یکتا انجام شود.\nبدین ترتیب، اکثر مفاهیم کلیدی و مقدماتی وب در آموزش درس مهندسی اینترنت معرفی و شرح داده شدند. در ارتباط با مفاهیم وب، مطالعه مطلب کاربردی «آموزش ICDL – مهارت هفتم – رایگان | به زبان ساده و گام به گام» نیز پیشنهاد می‌شود. بسیاری از مباحث مطرح شده در بخش مفاهیم وب از آموزش مهندسی اینترنت در این مطلب نیز پوشش داده شده است. از جمله سرفصل‌هایی که در این مطلب به آن‌ها پرداخته شده است، می‌توان به مزایا و معایب اینترنت، مدل‌های مرجع شامل مدل OSI و مدل TCP/IP و لایه‌های آن‌ها، نام‌های دامنه، طرز کار DNS، پروتکل‌های اینترنتی، پروتکل‌های ایمیل و بسیاری از موارد دیگر اشاره کرد. یکی دیگر از مباحثی که در درس مهندسی اینترنت مطرح می‌شود، «طراحی صفحات وب» است که در ادامه به آن پرداخته شده است.\nدر این بخش از آموزش درس مهندسی اینترنت به بحث راجع به طراحی صفحات وب و مسائل پیرامون آن پرداخته شده است. در بخش قبل، مفاهیم اولیه و مقدماتی درباره وب ارائه شد. اکنون، پیش از شروع آموزش طراحی صفحات وب، ابتدا باید به این سوال پاسخ داده شود که کارکرد وب چگونه است؟ در ادامه به این مسئله پرداخته شده\nبرای درک نحوه عملکرد وب، ابتدا باید شناختی نسبت به اجزا تشکیل دهنده آن به دست آورد. در ساده‌ترین سطح، وب به لحاظ فیزیکی از اجزا زیر تشکیل شده است:\nکامپیوتری که برای دسترسی به اینترنت و وب استفاده می‌شود.\nارتباط اینترنتی که توسط یک ISP ارائه شده است و کامپیوتر را برای دسترسی به صفحات وب به اینترنت متصل می‌کند.\nوب‌سرور؛ همان کامپیوتری است که میزبانی وب‌سایت را برعهده دارد.\nروترها و سوئیچ‌ها که ترکیبی از نرم‌افزار و سخت‌افزار هستند و کار انتقال اطلاعات میان اجزا اینترنت را برعهده دارند.\nوب به عنوان یک سیستم کلاینت-سروری (Client-Server) شناخته می‌شود. کامپیوتری که سایت با آن باز می‌شود، کلاینت و کامپیوترهای راه دوری که فایل‌های الکترونیکی یک سایت را ذخیره می‌کنند، سرور نامیده می‌شوند. در ادامه آموزش درس مهندسی اینترنت به توضیح نحوه عملکرد وب پرداخته شده است.\nزمانی که کاربر نشانی یک وب‌سایت را در مرورگر وارد می‌کند، درخواست وی به یکی از سرورهای نام دامنه (Domain Name Server) ارسال می‌شود. همه درخواست‌های این چنینی از روترها و سوئیچ‌های متعددی عبور می‌کنند. سرورهای DNS جدول‌هایی از نام ماشین‌ها و نشانی IP آن‌ها را نگهداری می‌کنند. بنابراین، وقتی که کاربر آدرس یک سایت را وارد می‌کند، این آدرس توسط DNS به آدرس IP سرور آن سایت ترجمه می‌شود. پس از مشخص شدن آدرس IP سرور سایت، مرورگر یک درخواست HTTP برای ارسال اطلاعات و باز شدن صفحه به سرور آن سایت ارسال می‌کند. زمانی که سرور درخواست مربوطه را دریافت می‌کند، سند درخواستی را جستجو کرده و آن را به مرورگر باز می‌گرداند.\nهر وقت که یک درخواست انجام می‌شود، سرور آدرس IP درخواست کننده (کلاینت)، سند درخواستی و تاریخ و زمان درخواست را ضبط و نگهداری می‌کند. البته، نوع اطلاعات ذخیره شده در سرورهای مختلف متفاوت است. معمولاً برای باز کردن و نمایش یک صفحه وب نیاز به درخواست بیش از یک فایل از وب سرور توسط مرورگر وجود دارد و تنها درخواست برای فایل HTML یا XHTML کافی نیست و باید همه تصاویر، صفحات استایل‌دهی و سایر منابع استفاده شده در آن صفحه وب نیز درخواست شوند. سپس، موارد ذکر شده توسط وب سرور به مرورگر ارسال می‌شوند و مرورگر تمام این اطلاعات را جمع‌آوری کرده و آن‌ها را در قالب یک صفحه وب نمایش می‌دهد.\nدر این خصوص، مطلبی با نام «نحوه رندر شدن صفحه وب در مرورگر | به زبان ساده» در مجله فرادرس موجود است که مطالعه آن برای اطلاعات بیش‌تر پیشنهاد می‌شود. یکی از مواردی که باید در درس مهندسی اینترنت به آن توجه داشت این است که «طراحی وب» با «توسعه وب» تفاوت دارد و این دو عبارت نباید به جای یکدیگر استفاده شوند. برای درک این مسئله، در ادامه به شرح تفاوت «طراحی وب» با «توسعه وب» پرداخته شده است. در ابتدا، توضیحاتی پیرامون «توسعه وب» ارائه شده است.\nتوسعه وب (Web Development) فرآیند ایجاد وب‌سایت‌ها و اپلیکیشن‌ها برای اینترنت یا یک شبکه خصوصی اینترانت است. توسعه وب با «طراحی» یک وب‌سایت ارتباطی ندارد، بلکه هدف در توسعه وب، افزودن قابلیت‌های عملکردی به یک وب‌سایت از طریق برنامه‌نویسی است. از ساده‌ترین صفحات وب ایستا گرفته تا شبکه‌های اجتماعی، وب‌سایت‌های تجارت الکترونیک (فروشگاه‌های آنلاین)، سامانه‌های مدیریت محتوا (CMS) و به طور کلی همه ابزارهایی که روزانه از طریق اینترنت مورد استفاده قرار می‌گیرند، همگی توسط «توسعه‌دهندگان وب» ساخته شده است. می‌توان توسعه وب را به سه لایه تجزیه کرد:\nکدنویسی سمت کلاینت (فرانت‌اند | Front-End): همه آن چیزی که کاربر نهایی مستقیماً تجربه می‌کند. کدهای سمت کلاینت در مرورگر اجرا می‌شوند و مستقیماً با آنچه کاربر در مراجعه به سایت مشاهده می‌کند ارتباط دارند. مثل: طرح‌بندی، فونت، رنگ‌ها، منوها و سایر موارد\nکدنویسی سمت سرور (بک‌اند | Back-End): مربوط به همه آن چیزی است که در پشت صحنه در جریان است. بک‌اند بخشی از وب‌سایت است که کاربر آن را نمی‌بیند. این بخش مسئولیت ذخیره‌سازی و سازمان‌دهی داده‌ها را برعهده دارد تا از انجام صحیح وظایف لازم در سمت کلاینت اطمینان حاصل شود. این کار به وسیله برقراری ارتباط با فرانت‌اند انجام می‌شود.\nفناوری پایگاه‌داده: پایگاه‌داده حاوی تمام فایل‌ها و محتوای مورد نیاز برای کارکرد یک وب‌سایت است. پایگاه‌داده این اطلاعات را به گونه‌ای ذخیره می‌کند که بازیابی، سازمان‌دهی، ویرایش و ذخیره آن‌ها به سادگی انجام شود. پایگاه‌داده روی یک سرور اجرا می‌شود و اکثر وب‌سایت‌ها نوعی از سیستم پایگاه‌داده رابطه‌ای (RDBMS) را به کار می‌برند.\nبرخی از مقالات کاربردی پیرامون مباحث مطرح شده در این بخش (توسعه وب) به شرح زیر است:\nبرنامه‌نویس فرانت‌اند ، بک‌اند و فول‌استک دولوپر — وظایف، مهارت‌ها و درآمد\nممکن است دو عبارت «طراحی وب» و «توسعه وب» به جای یکدیگر به‌کار گرفته شوند، اما این دو با هم متفاوت هستند. برای درک بهتر این تفاوت، اگر به عنوان مثال قرار باشد یک طراح وب و یک توسعه‌دهنده وب با هم یک اتومبیل بسازند، توسعه‌دهنده مسئولیت ساخت اجزا عملیاتی مثل موتور، چرخ‌ها و چرخ‌دنده‌ها را برعهده خواهد داشت. اما، طراح وظایف مربوط به جنبه‌های بصری مثل شمایل ماشین، طرح‌بندی داشبورد، طراحی صندلی‌ها و همچنین تجربه کاربری ایجاده شده به وسیله ماشین را برعهده خواهد داشت.\nدر مجموعه آموزش‌های طراحی سایت با HTML و CSS بیش از ۱۵ عنوان آموزشی مختلف موجود است. این دوره‌ها در مجموع حاوی بیش از سه هزار دقیقه فیلم و محتوای آموزشی هستند. این دوره‌ها در سطوح مقدماتی تا پیشرفته آموزش HTML و CSS را برای طراحی وب پوشش می‌دهند. همچنین دوره‌های پروژه محور، آموزش فریم‌ورک‌های کاربردی و روش‌های مختلف توسعه و طراحی وب از جمله طراحی سریع و واکنش‌گرا در این مجموعه در دسترس است.\nبرای دیدن فیلم های آموزش طراحی سایت با HTML و CSS + اینجا کلیک کنید.\nطراحان وب، شمایل ظاهری و حس ایجاد شده در کاربر را طراحی می‌کنند. آن‌ها طرح‌بندی وب‌سایت را مدل‌سازی و از منطقی، کاربرپسند و دلپذیر بودن استفاده از وب‌سایت اطمینان حاصل می‌کنند. یک طراح وب تمام اجزا بصری مختلف از قبیل آرایش رنگ‌ها و انتخاب فونت‌ها را مد نظر قرار می‌دهد. همچنین اینکه چه دکمه‌ها و منوهای کشویی و در کجا باید استفاده شوند و بسیاری از موارد دیگر بر عهده طراحان وب است. حوزه طراحی وب بسیار گسترده است و معمولاً به حوزه‌های محدودتری تقسیم می‌شود که در ادامه فهرست شده است:\nطراحی تجربه کاربری (User Experience Design | UX)\nطراحی رابط کاربری (User Interface Design | UI)\nوظیفه یک توسعه‌دهنده وب این است که حاصل کار یک طراح وب را به یک وب‌سایت کاملاً کاربردی و عملیاتی تبدیل کند. توسعه‌دهنده فرانت‌اند طراحی بصری ارائه شده توسط طراح وب را با استفاده از زبان‌هایی مثل CSS ،HTML و جاوا اسکریپت پیاده‌سازی می‌کند. یک توسعه‌دهنده بک‌اند قابلیت‌های عملیاتی پیشرفته‌تر سایت مثل عملیات تسویه حساب یا صندوق یک فروشگاه آنلاین را می‌سازد. به طور خلاصه، یک طراح وب درست مثل یک معمار است؛ در حالی که، توسعه‌دهنده وب را می‌توان سازنده یا مهندس اجرایی در نظر گرفت. مقالات منتشر شده مرتبط با طراحی وب در مجله فرادرس به شرح زیر است:\nطراحی UX چیست؟ | راهنمای جامع آموزش طراحی تجربه کاربری\nUI چیست ؟ | راهنمای جامع آموزش طراحی رابط کاربری\nکاربرد رنگ در طراحی وب — ۶ توصیه برای طراحی مطمئن وب‌سایت\nدرک کیفیت‌ها و خصوصیات رنگ در طراحی وب سایت — به زبان ساده\nاستانداردهای طراحی سایت را بشناسید\nکامپوننت های طراحی متریال (Material Design) برای وب — به زبان ساده\nبرای ساخت وب‌سایت‌ها و وب‌اپلیکیشن‌ها، توسعه‌دهندگان از زبان‌ها، کتابخانه‌ها و فریم‌ورک‌های مختلفی استفاده می‌کنند. در ادامه، هر یک از این ابزارهای توسعه وب به همراه توضیحات و مثال ارائه شده است.\nزبان‌های برنامه‌نویسی: همان‌طور که بیان شد، از زبان‌های برنامه‌نویسی برای ساخت و توسعه قابلیت‌های عملیاتی و تعاملی وب‌سایت‌ها استفاده می‌شود. از جمله برترین زبان‌ها در توسعه وب می‌توان به جاوا اسکریپت، پایتون، PHP ،TypeScript و روبی اشاره کرد.\nزبان‌های نشانه‌گذاری (Markup Languages): زبان‌های نشانه‌گذاری برای مشخص کردن قالب یک فایل متنی به کار گرفته می‌شوند. به بیان دیگر، زبان نشانه‌گذاری نحوه قالب‌بندی متن را برای نرم‌افزار نمایش دهنده متن تعیین می‌کند. دوتا از محبوب‌ترین و رایج‌ترین زبان‌های نشانه‌گذاری، HTML و XML هستند.\nزبان‌های Style Sheet: به زبان ساده، یک زبان Style Sheet مجموعه‌ای از قوانین شیوه‌مند (سبْک‌وار | Stylistic) است. زبان‌های سبک‌وار، به معنی دقیق کلمه برای استایل‌دهی اسنادی به کار می‌روند که با زبان‌های نشانه‌گذاری نوشته شده‌اند. CSS رایج‌ترین زبان Style Sheet به شمار می‌رود. HTML مسئولیت محتوا و ساختار یک صفحه وب را برعهده دارد، درحالی که CSS نحوه ارائه بصری محتوا را تعیین می‌کند. CSS برای اضافه کردن رنگ‌ها، تغییر فونت، اضافه کردن پس‌زمینه و سایر موارد از این دست استفاده می‌شود.\nزبان‌های پایگاه‌داده: پایگاه‌داده‌ها برای ذخیره‌سازی حجم‌های عظیمی از داده‌ها به کار می‌روند. به عنوان مثال، اپلیکیشن‌ها و وب‌سایت‌های شبکه‌های اجتماعی، اطلاعات پروفایل کاربران را ذخیره می‌کنند. برای انجام عملیات مختلف در پایگاه‌داده، نیاز به زبان‌های مخصوصی وجود دارد و نمی‌توان از همان زبان‌های برنامه‌نویسی توسعه وب‌اپلیکیشن‌ها استفاده کرد. به عنوان مثال می‌توان زبان SQL را نام برد که در ادامه توضیحات بیش‌تری پیرامون آن ارائه شده است.\nکتابخانه‌ها و فریم‌ورک‌ها: اگرچه کتابخانه و فریم‌ورک هر دو برای آسان‌تر کردن کار توسعه‌دهندگان مورد استفاده قرار می‌گیرند، در ماهیت با هم تفاوت دارند. یک کتابخانه حاوی مجموعه‌ای از کدهای کاربردی و مفید است که با هم گروه‌بندی شده‌اند تا بتوان بعداً از آن‌ها استفاده کرد. هدف از کتابخانه‌ها کاهش حجم کدنویسی است. اما یک فریم‌ورک دارای اجزا و ابزارهای پیش‌ساخته است که امکان کدنویسی سریع‌تر را برای توسعه‌دهندگان فراهم می‌کنند. بسیاری از فریم‌ورک‌ها خود حاوی چند کتابخانه هستند.\nسایر ابزارهای توسعه وب: علاوه بر موارد ذکر شده، توسعه‌دهندگان وب از یک ویرایش‌گر کُد نظیر Sublime ،Atom یا Visual Studio Code، یک مرورگر وب مثل کروم یا فایرفاکس و یک ابزار بسیار مهم به نام گیت (Git) نیز استفاده می‌کنند. Git یک سیستم کنترل نسخه است که توسعه‌دهندگان می‌توانند به وسیله آن کدهای خود را ذخیره و مدیریت کنند. یک ابزار کنترل نسخه، امکان ردیابی تغییرات و بازگشت به حالت‌های قبلی در کدهای نوشته شده را فراهم می‌کند. گیت‌هاب یک رابط ابری برای گیت است. گیت‌هاب علاوه بر ارائه تمام قابلیت‌های کنترل نسخه گیت، با ویژگی‌های دیگری مانند ردیابی باگ‌ها، مدیریت وظایف و دانشنامه پروژه (Project Wiki) نیز همراه است.\nدر ادامه این بخش، برخی از مهارت‌های مهم و اصلی مورد نیاز برای طراحی و توسعه وب معرفی و توضیحات بیش‌تری برای آن‌ها ارائه شده است. همچنین، مقالات کاربردی پیرامون هر یک از این مهارت‌ها جهت آموزش و یادگیری بهتر معرفی شده‌اند. لازم به توضیح است که برای طراحی یک وب‌سایت ساده، تنها نیاز به چهار مهارت ابتدایی معرفی شده وجود دارد. سایر مهارت‌ها برای ساخت و توسعه وب‌سایت‌های بزرگ‌تر با قابلیت‌های تعاملی مورد نیاز خواهند بود.\nدر این مورد، فرد باید با نحوه کار با کامپیوتر تحت سیستم‌عامل‌هایی نظیر ویندوز، لینوکس یا مک OS آشنایی داشته باشد. این مسئله بستگی دارد به اینکه فرد می‌خواهد میزبانی سایت خود را با چه وب‌سروری انجام دهد. مهارت‌هایی از قبیل ایجاد، حذف و ویرایش یک فایل، ایجاد پوشه (Directory)، سطح دسترسی فایل و سایر موارد باید توسط فرد فرا گرفته شده باشند.\nمقالات و نوشته‌های مرتبط با ویندوز شامل «ویندوز سرور چیست و چه فرقی با ویندوز دارد؟» و «آموزش ویندوز ۱۰ | مجموعه مقالات و آموزش‌ها»، آموزش‌ها و مقالات مربوط به لینوکس شامل «لینوکس چیست؟ | معرفی جامع و راهنمای کامل — از صفر تا صد»، «آموزش لینوکس | مجموعه مقالات و آموزش‌ها» و همچنین مقالات مرتبط با مک OS شامل «آموزش جامع و مقدماتی مک OS» و «دستورهای ترمینال سیستم‌عامل مک (macOS)» اشاره کرد.\nبا توجه به اینکه معمولاً برای ساخت و طراحی وب‌سایت باید از شرکت‌های ارائه‌دهنده خدمات میزبانی سرور اجاره شود، دسترسی به سرور همواره به صورت راه دور خواهد بود. حتی در صورتی که سرور سایت به صورت محلی باشد، باز هم ممکن است به دلایل مختلف همیشه امکان دسترسی مستقیم به سرور وجود نداشته باشد. بنابراین، باید آشنایی با نحوه اتصال به سرور از راه دور وجود داشته باشد. همچنین، داشتن دانش و مهارت کافی پیرامون ابزار و دستورات تل‌نت لازم است. البته، بسیاری از ارائه دهندگان خدمات میزبانی، پنل مدیریت جهت انجام امور وب سایت را در اختیار مشتریان خود قرار می‌دهند. از جمله مقالات و مقالات مرتبط با دسترسی از را دور می‌توان به موارد زیر اشاره کرد:\nبرترین نرم‌افزارهای اتصال به کامپیوتر از راه دور — فهرست جامع\nراه اندازی SSH روی لینوکس — راهنمای جامع\nهمان‌طور که بیان شد، در اکثر مواقع وب‌سرور دور از دسترس فیزیکی خواهد بود و نیاز به آپلود و دانلود فایل‌های مربوط به وب‌سایت وجود خواهد داشت. بنابراین، حداقل نیاز به داشتن دانش ابتدایی پیرامون ابزار FTP برای اتصال به یک ماشین راه دور و دریافت و ارسال فایل‌ها وجود دارد. اگرچه، اکثر ارائه دهندگان خدمات امکان آپلود فایل‌ها روی وب‌سرور را ارائه می‌دهند. در این مطالعه مطلب «ترفندهای وردپرس — استفاده از FTP برای آپلود فایل از کامپیوتر به وب‌سایت» پیشنهاد می‌شود.\nدر مجموعه آموزشی طراحی سایت، دوره‌های کاربردی بسیاری پیرامون طراحی و توسعه وب موجود است. این مجموعه نزدیک به ۳۰ عنوان آموزشی مختلف دارد که مدت زمانی آن‌ها در مجموع نزدیک به ۱۱ هزار دقیقه است. برای تمامی ابزارها و زبان‌های برنامه‌نویسی مختلفی که در توسعه وب کاربرد دارند، دوره‌های آموزشی جامعی در این مجموعه وجود دارد. از زبان‌های CSS ،HTML و PHP گرفته تا فریم‌ورک‌های مختلف توسعه وب در مجموعه آموزش طراحی سایت موجود است.\nبرای مشاهده فیلم های آموزش طراحی سایت + اینجا کلیک کنید.\nداشتن دانش و مهارت کدنویسی HTML برای ساخت وب‌سایت ضروری است. بنابراین، باید درک کافی از مفاهیم HTML وجود داشته باشد. پیش‌تر در بخش «HTML چیست» مطلب آموزش HTML معرفی شده است. در بخشی از این مطلب، سایر مقالات آموزشی و کاربردی در ارتباط با HTML معرفی و فهرست شده‌اند. همچنین، نحوه طراحی یک صفحه وب ساده و دیدن نتیجه آن در خروجی در این مطلب گنجانده شده است. در ادامه، فیلم‌های آموزش HTML معرفی شده‌اند.\nطول مدت دوره «آموزش طراحی وب با HTML – مقدماتی» ۳ ساعت است و مدرس آن مهندس محمد عبداللهی هستند. در این دوره به آموزش طراحی وب با HTML به صورت مقدماتی پرداخته شده است. این دوره برای دانشجویان درس مهندسی اینترنت که قصد آشنایی با HTML را دارند و همچنین برای تمامی علاقه‌مندان به حوزه طراحی وب مناسب است. برخی از سرفصل‌ها و رئوس مقالات این فرادرس شامل مقدمات HTML، تگ‌های قالب‌بندی متن، ساخت پیوند، عکس‌ها در صفحات وب، فهرست‌ها، جداول و سایر مباحث ابتدایی HTML است.\nبرای مشاهده فیلم آموزش طراحی وب با HTML – مقدماتی + اینجا کلیک کنید.\nطول مدت این دوره آموزشی ۳ ساعت و ۲۳ دقیقه است و مدرس آن مهندس سید رضا هاشمیان هستند. در این فرادرس به بررسی قابلیت‌ها و کارکردهای جدید در زبان نشانه گذاری 5 HTML پرداخته شده است. 5 HTML پایه و اساس طراحی و توسعه وب به حساب می‌آید و بسیار اهمیت دارد. استفاده از این دوره آموزشی به دانشجویان درس مهندسی اینترنت که قصد شروع طراحی و توسعه صفحات وب را دارند، توصیه می‌شود. از جمله برخی از سرفصل‌ها و رئوس مقالات این دوره آموزشی می‌توان به آشنایی با HTML 5 و تگ‌های جدید، کار با رویدادهای جدید، کار با کنترل‌های جدید و سایر موارد اشاره کرد.\nبرای مشاهده فیلم آموزش طراحی وب با HTML – تکمیلی + اینجا کلیک کنید.\nCSS یا Cascading Style Sheets زبانی برای توصیف نمایش ظاهری صفحات وب است. این المان‌های ظاهری شامل رنگ‌ها، قالب‌بندی و فونت‌ها می‌شود. CSS امکان سازگاری نمایش وب‌سایت در اندازه‌های مختلف صفحات نمایش را فراهم می‌سازد. CSS مستقل از HTML است و می‌تواند با هر نوع زبان‌نشانه‌گذاری مبتنی بر XML به کار گرفته شود. دانش و مهارت CSS برای دست‌یابی به نتایجی که با HTML قابل تولید نیستند لازم و ضروری است. مقالات پیشنهادی مرتبط با CSS به شرح زیر است:\nمهم‌ترین مفاهیم CSS که باید بدانید — از صفر تا صد\n۸ ابزار مهم CSS که هر توسعه‌دهنده وب باید بشناسد — راهنمای کاربردی\nفهرست برترین کتابخانه های فرانت اند CSS — راهنمای کاربردی\nمجموعه مقالات مرتبط با CSS\nدر ادامه، فیلم‌های آموزشی CSS معرفی شده است.\nطول مدت این آموزش ۴ ساعت و ۳۴ دقیقه است و مدرس آن مهندس محمد عبداللهی هستند. همان‌طور که بیان شد، CSS یک زبان Style Sheet است و برای استایل‌دهی به صفحات HTML استفاده می‌شود. بنابراین، یادگیری CSS نیز یکی از مهارت‌های پایه در طراحی و توسعه وب به شمار می‌رود. دوره آموزشی طراحی وب با CSS در سطح مقدماتی ارائه شده است و برای دانشجویان درس مهندسی اینترنت و سایر افرادی که قصد شروع طراحی وب را دارند، مناسب است. از جمله سرفصل‌های این دوره آموزشی می‌توان به استایل‌دهی به عناصر، باکس در CSS، شبه کلاس‌ها، شفاف کردن تصویر، تبدیل سه‌بعدی و سایر موارد اشاره کرد.\nبرای مشاهده فیلم آموزش طراحی وب با CSS – مقدماتی + اینجا کلیک کنید.\nطول مدت این دوره ۳ ساعت و ۱۶ دقیقه است و مدرس آن مهندس سید رضا هاشمیان هستند. در این فرادرس مباحث تکمیلی پیرامون نسخه سوم CSS و آموزش بهبودها و به‌روزرسانی‌های آن ارائه شده است. گذراندن این دوره نیز در ادامه دوره آموزش CSS در سطح مقدماتی برای یادگیری آخرین فناوری‌های مرتبط با CSS پیشنهاد می‌شود. برخی از سرفصل‌های دوره آموزش طراحی وب با CSS3) CSS) – تکمیلی شامل انحنای گوشه‌ها در CSS3، هم‌تراز کردن متون، کار با فونت‌ها در CSS3، کار با انیمیشن‌ها و بسیاری از موارد دیگر است.\nبرای مشاهده فیلم آموزش طراحی وب با CSS3) CSS) – تکمیلی + اینجا کلیک کنید.\nبسیاری از وب‌سایت‌های موجود در اینترنت با استفاده از PHP توسعه داده شده‌اند. PHP یک زبان اسکریپت‌نویسی سمت سرور است که می‌تواند برای اجرای وظایف مختلفی شامل عملیات پایگاه‌داده و سایر موارد مورد استفاده قرار گیرد. PHP به توسعه‌دهندگان کمک می‌کند تا وب‌سایت‌های تعاملی و واکنش‌پذیر بسازند. بنابراین پس از یادگیری مهارت‌های مقدماتی، کسب مهارت برنامه‌نویسی با زبان PHP برای توسعه و طراحی وب در سطوح پیشرفته‌تر امر مهمی به حساب می‌آید. مقالات آموزشی پیرامون PHP در ادامه فهرست شده‌اند:\nطراحی یک وب‌سایت ساده با PHP — از صفر تا صد\nمجموعه مقالات آموزشی PHP\nطول مدت این آموزش ۲۸ ساعت و ۳۱ دقیقه است و مدرس آن دکتر مصطفی کلامی هریس هستند. در دوره آموزش برنامه نویسی PHP، تمامی نکات و مهارت‌های عملی مورد نیاز جهت شروع برنامه‌نویسی تحت وب و پیاده‌سازی وب سایت‌های پویا، به شکلی ساده و روان و به صورت عملی آموزش داده شده است. این دوره آموزشی جامع نیز برای دانشجویانی که در حال گذراندن درس مهندسی اینترنت هستند و همچنین تمامی افرادی که قصد فعالیت در زمینه توسعه وب و بک‌اند را دارند، مناسب است. از جمله سرفصل‌های این دوره می‌توان به آشنایی با PHP، متغیرها، انواع داده‌ها، ساختارهای کنترل برنامه، آرایه‌ها در PHP، کار با فایل، مدیریت پایگاه داده‌ها و بسیاری از سایر مباحث دیگر را نام برد.\nجاوا اسکریپت چیست؟ — به زبان ساده\nآموزش جاوا اسکریپت — مجموعه مقالات جامع وبلاگ فرادرس\nپروژه‌های جاوا اسکریپت | مجموعه مقالات و آموزش‌ها | مجله فرادرس\nدر ادامه برخی از دوره‌های موجود در مجموعه آموزشی جاوا اسکریپت به اختصار معرفی و فهرست شده است.\nفیلم آموزش کاربردی برنامه نویسی وب با جی کوئری: طول مدت این آموزش ۶ ساعت و ۵۶ دقیقه است و مدرس آن مهندس محمد عبداللهی هستند. jQuery یک کتابخانه جاوا اسکریپت برای ساده‌سازی فرآیند توسعه وب است. برای دسترسی به صفحه آموزش کاربردی برنامه نویسی وب با جی کوئری + کلیک کنید.\nفیلم آموزش کاربردی HTML5 – CSS3 – jQuery در طراحی وب : طول مدت این فرادرس ۵ ساعت و ۳۲ دقیقه و مدرس آن مهندسی مجتبی حیات الغیب هستند. در این دوره طراحی و توسعه وب با استفاده از سه فناوری CSS3 ،HTML5 و jQuery آموزش داده شده است. برای دسترسی به صفحه آموزش کاربردی HTML5 – CSS3 – jQuery در طراحی وب + کلیک کنید.\nSQL زبان ساده‌ای برای اجرای عملیات پایگاه‌داده در یک سیستم مدیریت پایگاه‌داده رابطه‌ای است. از SQL می‌توان برای مدیریت داده‌ها در پایگاه‌داده اپلیکیشن‌های تحت وب یا سایر انواع برنامه‌های کاربردی مانند اپلیکیشن‌های دسکتاپ و موبایل استفاده کرد. می‌توان مقادیر را در یک جدول درج یا حذف کرد، آن‌ها را ویرایش کرد، جدول‌ها را ایجاد یا پاک کرد و همچنین بسیاری از موارد دیگر نیز با SQL در پایگاه‌داده قابل انجام است. برخی از مهم‌ترین مقالات منتشر شده پیرامون SQL به شرح زیر است:\nتقلب نامه (Cheat Sheet) دستورهای SQL — راهنمای کاربردی\n۱۳ دستور SQL مهم که هر برنامه‌نویسی باید بداند (+ دانلود فیلم آموزش گام‌به‌گام)\nمجموعه آموزش پایگاه داده فرادرس در مجموع حاوی بیش از شش هزار دقیقه محتوای آموزشی است. این مجموعه دارای ۱۷ عنوان آموزشی مختلف پیرامون مباحث و فناوری‌های پایگاه‌داده است. همان‌طور که بیان شد، در توسعه یک وب‌اپلیکیشن برای ذخیره‌سازی منابع به پایگاه‌داده نیاز است و باید دانش لازم پیرامون کار با پایگاه‌داده خصوصاً برای توسعه‌دهندگان بک‌اند وجود داشته باشد. در این راستا، یادگیری و استفاده از دوره‌های مجموعه آموزش پایگاه‌داده می‌تواند مفید واقع شود.\nبرای مشاهده فیلم های آموزش پایگاه داده + اینجا کلیک کنید.\nدر ادامه، برخی از دوره‌های موجود در مجموعه آموزش پایگاه‌داده معرفی و فهرست شده‌اند:\nفیلم آموزش پایگاه داده‌ها: طول مدت این آموزش ۷ ساعت و ۵۸ دقیقه و مدرس آن دکتر فرشید شیرافکن هستند. این فرادرس مطالب درس پایگاه‌داده‌ها در مقطع کارشناسی را پوشش داده است و می‌توان از آن به عنوان منبع آموزشی این درس استفاده کرد. برای مشاهده فیلم آموزش پایگاه‌داده + کلیک کنید.\nفیلم آموزش SQL Server – مقدماتی: طول مدت این فرادرس ۹ ساعت و ۶ دقیقه و مدرس مهندس ضحی شبر هستند. SQL Server یکی از محبوب‌ترین سیستم‌های مدیریت پایگاه‌داده رابطه‌ای است که در این دوره به طور کامل آموزش داده شده است. برای مشاهده فیلم آموزش SQL Server مقدماتی + کلیک کنید.\nآموزش SQL Server – تکمیلی: طول مدت این دوره آموزشی ۵ ساعت و ۵۸ دقیقه است و مدرس آن دکتر یوسف مسعودی سبحان زاده هستند. در این دوره تکمیلی قابلیت‌های SQL به صورت کاربردی و بر اساس مثال‌های دنیای واقعی تشریح شده است. برای مشاهده فیلم آموزش SQL Server – تکمیلی + کلیک کنید.\nبا ارائه مقدمه‌ای بر وب، پروتکل HTTP و پرداختن به طراحی و توسعه وب، نوبت به یکی دیگر از مباحث مطرح شده در درس مهندسی اینترنت، یعنی ایجاد کاربردهای ساده وب رسیده است.\nدر این بخش، مفاهیم اساسی برنامه‌نویسی سوکت آموزش داده شده است. برای ساخت و ایجاد هر اپلیکیشن تحت شبکه و اینترنتی، نیاز به برنامه‌نویسی سوکت وجود دارد. مرورگرهای وب مثال خوبی از اپلیکیشن‌های وب یا شبکه هستند. مرورگرها صفحات وب را از وب سرورها دریافت کرده و نمایش می‌دهند. از جمله سایر کاربردهای وب می‌توان به کلاینت‌های FTP اشاره کرد که داده‌ها را از سرورهای FTP دریافت می‌کنند. برای درک چگونگی عملکرد این ابزارها و نحوه برقراری ارتباط و تبادل داده میان آن‌ها، باید درکی از برنامه‌نویسی سوکت وجود داشته باشد. در ادامه به مفاهیمی اشاره شده است که قبل از شروع یادگیری برنامه‌نویسی سوکت باید آشنایی لازم با آن‌ها وجود داشته باشد.\nدر ادامه پیش‌نیازهای آموزش برنامه‌نویسی سوکت فهرست شده‌اند:\nمبانی TCP ،IP و UDP : تعاریف و تفاوت‌های آن‌ها\nمبانی برنامه‌نویسی به زبان C\nکامپایل کد در لینوکس با استفاده از GCC\nیا کامپایل همه برنامه‌ها در ویندوز با استفاده از کتابخانه Winsock\nقبل از شروع یادگیری برنامه‌نویسی سوکت باید درکی از نحوه کارکرد یک وب‌اپلیکیشن وجود داشته باشد. برای هر اپلیکیشن تحت شبکه نیازمندی‌هایی وجود دارد:\nدر هر دو طرف نیاز به یک نقطه نهایی (End Point) برای برقراری ارتباط وجود دارد.\nنیاز به یک نشانی (آدرس) منحصربه‌فرد وجود دارد.\nیکی از نقاط انتهایی باید آغاز‌گر ارتباط با دیگری باشد.\nنقطه نهایی دیگر نیز باید در یک وضعیت آماده برای شروع برقراری ارتباط قرار داشته باشد.\nبا برقراری ارتباط، داده‌ها انتقال داده می‌شوند.\nبا پایان تبادل داده‌ها، نقاط انتهایی ارتباط را قطع می‌کنند.\nدر دنیای سوکت‌ها، عملیات فوق به صورت زیر انجام می‌شود:\nSocket(): برای ایجاد نقطه نهایی برای برقراری ارتباط از فراخوانی سوکت استفاده می‌شود.\nBind(): برای تخصیص یک آدرس منحصربه‌فرد به نقاط انتهایی از Bind استفاده می‌شود. Bind ترکیبی از آدرس IP و آدرس پورت است.\nListen(): با فراخوانی Listen، نقاط انتهایی برای شروع ارتباط منتظر می‌مانند.\nConnect(): آن نقطه انتهایی که قصد برقراری ارتباط با نقطه دیگر را دارد، از Connect استفاده می‌کند.\nAccept(): پردازه‌ای که در انتظار برقراری ارتباط است، از Accept برای پذیرفتن درخواست اتصال استفاده می‌کند.\nSend() و Recieve(): با برقراری ارتباط، از Send و Recieve برای تبادل (ارسال و دریافت) داده استفاده می‌شود.\nClose(): پس از خاتمه تبادل داده، برای قطع ارتباط از Close استفاده می‌شود.\nدر دنیای برنامه‌نویسی سوکت تقریباً تمام ارتباطات شبکه را می‌توان در مدل کلاینت-سرور جای داد. اما مدل کلاینت-سرور چیست؟ در این مدل، یک سرور موجودیتی است که اطلاعات را فراهم و ارائه می‌کند. در طرف مقابل، کلاینت به موجودیتی گفته می‌شود که به دنبال دریافت اطلاعات است. یک مثال ایده‌آل می‌تواند یک سرور آپاچی باشد که صفحات وب را ارائه می‌دهد و یک کلاینت هم می‌تواند مرورگر اینترنت اکسپلورر یا فایرفاکس باشد که صفحات وب را از وب سرور دریافت می‌کند. در یک سازِکار کلاینت-سروی، سرور منتظر می‌ماند تا یک کلاینت به آن متصل شود. پس از اینکه یک کلاینت با موفقیت به سرور متصل می‌شود، درخواست خود برای دریافت اطلاعات را ارسال می‌کند. سرور این اطلاعات را به کلاینت منتقل می‌کند و در پایان سرور ارتباط را قطع می‌کند و منتظر کلانت دیگری می‌نشیند. تعامل کلاینت و سرور در دو قالب TCP و UDP انجام می‌شود که در ادامه به تعامل TCP پرداخته شده است.\nدر این بخش پیرامون برنامه‌نویسی سوکت در تعامل سرور و کلاینت در قالب پروتکل TCP بحث شده است. در تصویر فوق، گام‌های ارتباط میان کلاینت و سرور تجزیه و تفکیک شده است. در ابتدا، سرور سوکت را فراخوانی می‌کند. این کار نقطه نهایی ارتباط سرور را ایجاد می‌کند. کلاینت نیز همین کار را انجام داده و socket() را فراخوانی می‌کند. سپس سرور bind() را برای اتصال یک آدرس منحصربه‌فرد فراخوانی می‌کند. این آدرس منحصربه‌فرد یک آدرس IP و شماره پورتی است که سرور روی آن به درخواست‌ها گوش می‌دهد. در این مرحله، کلاینت از فراخوانی Connect() برای برقراری ارتباط با سرور استفاده می‌کند. سپس، با دریافت درخواست برقراری ارتباط، سرور accept() را برای پذیرش ارتباط با یک کلاینت خاص فراخوانی می‌کند. پس از برقراری ارتباط، هر دو نقطه نهایی برای انتقال داده بین یکدیگر، توابع Read() و Write() را فراخوانی می‌کنند. پس از پایان انتقال داده، از Close() برای بستن و خاتمه اتصال استفاده می شود.\nهدف از مبحث ایجاد وب اپلیکیشن ساده در درس مهندسی اینترنت ، پیاده‌سازی عملی توسعه و طراحی وب به وسیله مجموعه‌ای از زبان‌ها و ابزارهای این حوزه در قالب یک مثال ساده است. در اینجا باید فناوری (زبان‌ها و ابزارهای) مورد استفاده انتخاب شود. همان‌طور که در بخش قبل مطرح شد، فناوری‌های مختلفی برای توسعه وب وجود دارد. اینکه از کدام زبان برنامه‌نویسی، کتابخانه و فریم‌ورک استفاده شود، کاملاً بستگی به استاد و منابع درس مهندسی اینترنت دارد.\nاکثر منابع فارسی درس مهندسی اینترنت و همچنین بسیاری از اساتید دانشگاه‌های مختلف از فناوری جاوا استفاده می‌کنند. زیرا با وجود اینکه جاوا یک فناوری قدیمی به حساب می‌آید، اما امکانات گسترده آن باعث شده است که در کاربردهای تجاری و پروژه‌های بزرگ همچنان از جاوا استفاده شود. همان‌طور که بیان شد، یکی از اهداف درس مهندسی اینترنت آموزش توسعه اپلیکیشن‌های تجاری است.\nبنابراین، در ادامه و این بخش از آموزش درس مهندسی اینترنت، به معرفی منابع آموزشی پیرامون فناوری جاوا برای طراحی و توسعه وب پرداخته شده است. البته از فناوری‌های دیگری نظیر PHP و دات‌نت نیز در فهرست مباحث وزارت علوم برای درس مهندسی اینترنت نام برده شده است. لذا پس از پرداختن به توسعه وب‌اپلیکیشن با جاوا و در پایان این مقاله، منابع آموزشی پیرامون توسعه وب با PHP و دات‌نت نیز معرفی خواهند شد. ابتدا فهرستی از مقالات مرتبط با ایجاد وب‌اپلیکیش آمده است:\nانتخاب بهترین فریمورک برای توسعه وب‌اپلیکیشن | راهنمای کاربردی\nآشنایی با شیوه طراحی وب اپلیکیشن — راهنمای کاربردی\nتوسعه وب اپلیکیشن با جاوا اسکریپت و Webpack — راهنمای کاربردی\nجاوا یک زبان برنامه‌نویسی محبوب ساخته شده در اواسط دهه هفتاد شمسی است. جاوا تحت مالکیت Oracle قرار دارد. کاربردهای شاخص جاوا به شرح زیر است:\nتوسعه اپلیکیشن‌های موبایل (مخصوصاً اپلیکیشن‌های اندروید)\nساخت اپلیکیشن‌های دسکتاپ\nتوسعه وب‌سرورها و اپلیکیشن سرورها\nمطلب جامع و کاربردی پیرامون زبان جاوا به نام «زبان برنامه نویسی جاوا (Java) — از صفر تا صد» ارائه شده است که مطالعه آن برای آشنایی با جاوا توصیه می‌شود. همچنین، برخی از مقالات آموزش جاوا در ادامه فهرست شده است:\nمجموعه آموزش مقدماتی جاوا — از صفر تا صد: هدف این مجموعه مقالات، آشنایی با زبان برنامه نویسی جاوا به شیوه‌ای ساده و مؤثر است. این مجموعه مقالات شامل پنج بخش است:\nبرای مطالعه بخش اول + اینجا کلیک کنید.\nبرای مطالعه بخش دوم + اینجا کلیک کنید.\nبرای مطالعه بخش سوم + اینجا کلیک کنید.\nبرای مطالعه بخش چهارم + اینجا کلیک کنید.\nمجموعه آموزش جامع برنامه‌نویسی جاوا به زبان ساده: در این مجموعه مقالات آموزش جاوا، مباحث بیش‌تری پوشش داده شده، به طوری که شامل پانزده بخش است. با مطالعه کامل تمامی بخش‌های این سلسله آموزش‌ها، آشنایی با برنامه‌نویسی شیءگرا (OOP) و توسعه برنامه‌های واقعی با استفاده از زبان و پلتفرم جاوا به دست خواهد آمد. با کلیک روی هر یک از اعداد ۱، ۲، ۳، ۴، ۵، ۶، ۷، ۸، ۹، ۱۰، ۱۱، ۱۲، ۱۳، ۱۴ و ۱۵ می‌توان به بخش متناظر با آن دسترسی پیدا کرد.\nمجموعه دوره‌های آموزشی جاوا (Java) دارای ۱۲ عنوان آموزشی مختلف پیرامون فناوری جاوا است. در این مجموعه که حاوی بیش از ۵ هزار دقیقه فیلم آموزشی است، علاوه بر دوره آموزش برنامه‌نویسی جاوا، دوره‌هایی پیرامون آموزش فریم‌ورک‌های مختلف جاوا و همچنین دوره‌های پروژه محور جاوا نیز وجود دارد.\nبرای مشاهده فیلم های فیلم‌های آموزش جاوا + اینجا کلیک کنید.\nدر ادامه، برخی از دوره‌های شاخص در مجموعه آموزش‌های جاوا فهرست شده است:\nفیلم آموزش برنامه نویسی جاوا (Java): طول مدت این دوره ۱۹ ساعت و ۱۹ دقیقه است و مدرس آن دکتر سید مصطفی کلامی هریس هستند. این دوره آموزشی جامع شامل ۲۳ درس است که مخاطب را به طور کامل با زبان برنامه‌نویسی جاوا و امکانات مختلف آن آشنا می‌کند. برای دسترسی به صفحه دوره آموزش جاوا + اینجا کلیک کنید.\nآموزش پروژه محور جاوا (Java) – طراحی و ساخت شبکه اجتماعی: طول مدت این دوره آموزشی ۶ ساعت و ۲۴ دقیقه و مدرس آن مهندس محمد جباری هستند. در این دوره آموزشی شیوه ایجاد پایگاه‌داده برای یک شبکه اجتماعی آموزش داده شده است. برای دسترسی به صفحه دوره آموزش پروژه محور جاوا (Java) – طراحی و ساخت شبکه اجتماعی + کلیک کنید.\nفیلم آموزش فریم ورک Spring در جاوا: طول مدت این دوره آموزشی ۵ ساعت و ۳۲ دقیقه و مدرس آن مهندس سید رضا هاشمیان هستند. در این فرادرس آموزش مقدماتی فریم‌ورک Spring به صورت پروژه محور ارائه شده است. فریم‌ورک Spring برای توسعه و ایجاد اپلیکیشن‌های سازمانی و تجاری استفاده می‌شود. برای مشاهده صفحه آموزش فریم‌ورک اسپرینگ در جاوا + اینجا کلیک کنید.\nسرولت (Servlet) روشی برای تولید صفحات وب پویا (Dynamic) با جاوا است. سرولت‌ها برنامه‌های جاوایی هستند که روی وب‌سرورها یا اپلیکیشن‌سرورهای مبتنی بر جاوا اجرا می‌شوند. سرولت‌ها برای مدیریت درخواست‌های دریافتی از وب‌سرور، پردازش درخواست‌ها، تولید پاسخ‌ها و سپس ارسال پاسخ‌ها به وب‌سرور استفاده می‌شوند. سرولت‌ها معمولاً وقتی اجرا می‌شوند که کاربر روی یک لینک کلیک و فُرمی را ثبت می‌کند یا هر عملیات دیگری روی یک وب‌سایت انجام می‌دهد. سرولت‌ها قابلیت مدیریت درخواست‌های پیچیده دریافتی از وب‌سرور را دارا هستند. نمودار معماری Servlet در تصویر زیر نمایش داده شده است.\nصفحات جاوا سرور (JavaServer Pages) یک فناوری استاندارد جاوا است که امکان نوشتن صفحات پویا و مبتنی بر داده‌ها را برای وب‌اپلیکیشن‌های توسعه داده شده با زبان جاوا فراهم می‌سازد. JSP بر اساس Servlet ساخته شده است و این دو اغلب در ساخت وب‌اپلیکیشن‌های قدیمی‌تر جاوا استفاده به کار گرفته شده‌اند. از دیدگاه کدنویسی، تفاوت واضح میان JSP و Servlet این است که در Servlet ابتدا کدهای جاوا نوشته می‌شوند و سپس کدهای HTML سمت کلاینت در داخل آن ادغام می‌شوند. این در حالی است که در خصوص JSP، کار با نشانه‌گذاری سمت کلاینت آغاز شده و سپس برچسب‌های JSP برای اتصال صفحه به بک‌اند جاوا ادغام می‌شوند.\nیکی دیگر از سرفصل‌های درس مهندسی اینترنت الگوی معماری سه لایه است. معماری سه لایه نوعی از معماری نرم‌افزار است که از سه «رده» یا «لایه» تشکیل می‌شود. از این الگوی معماری اغلب در اپلیکیشن‌ها به عنوان یک نوع خاص از سیستم کلاینت-سروری استفاده می‌شود. معماری سه لایه مزایای بسیاری برای محیط‌های تولید و توسعه به وسیله ماژول‌بندی رابط کاربری، منطق کسب‌وکار و لایه‌های ذخیره داده فراهم می‌کند. بر این اساس، با استفاده از معماری سه لایه، انعطاف‌پذیری بیش‌تری از طریق امکان به‌روزرسانی مستقل بخش خاصی از یک اپلیکیشن به طور جداگانه از سایر بخش‌ها برای توسعه‌دهندگان وجود خواهد داشت. مطلب جامع و کاربردی پیرامون معماری سه لایه در مجله فرادرس منتشر شده است. مطالعه مطلب «معماری سه لایه در مهندسی نرم افزار چیست؟ | راهنمای جامع» جهت آشنایی جامع با معماری سه لایه پیشنهاد می‌شود.\nMVC سرنامی برای مدل-نما-کنترل‌گر (Model-View-Controller) است. MVC یک مدل طراحی اپلیکیشن است که از سه بخش به هم پیوسته تشکیل می‌شود. این بخش‌ها شامل مدل (داده‌ها)، نما (رابط کاربری) و کنترل‌گر (پردازشی که ورودی را مدیریت می‌کند) تشکیل شده است. مدل یا «الگوی» MVC به طور رایج برای توسعه رابط کاربری استفاده می‌شود. MVC بخش‌های بنیادی برای طراحی یک برنامه دسکتاپ، موبایل و وب‌اپلیکیشن فراهم می‌کند. این الگوی معماری با برنامه‌نویسی شیگرا به خوبی سازگاری دارد، زیرا مدل‌ها، نما‌ها و کنترل‌گرهای مختلف را می‌توان به عنوان شیٔ در نظر گرفت و از آن‌ها در قسمت‌های مختلف اپلیکیشن مجدداً استفاده کرد. مطلب جامعی پیرامون معماری MVC در مجله فرادرس منتشر شده است. برای آشنایی بیش‌تر با الگوی معماری MVC، مطالعه مطلب «MVC چیست ؟ — آنچه باید درباره معماری MVC بدانید | به زبان ساده» توصیه می‌شود.\nبا توجه به اینکه MVC نیز یک معماری سه لایه است، ممکن است این سوال به وجود بیاید که آیا این دو الگو با هم یکسان هستند؟ در غیر اینصورت چه تفاوتی با هم دارند؟ در این زمینه باید گفت که به لحاظ مفهومی، معماری سه لایه، یک معماری خطی (Linear) به حساب می‌آید. بر خلاف آن، معماری MVC ماهیت مثلثی دارد. یعنی لایه نما به‌روزرسانی‌ها را به لایه کنترل‌گر ارسال می‌کند؛ کنترل‌گر لایه مدل را به‌روزرسانی می‌کند و لایه نما به صورت مستقیم توسط لایه مدل به‌روزرسانی می‌شود. البته، الگوی معماری MVC ممکن است لزوماً مثلثی نباشد اما، الگوهای معماری چند لایه و سه لایه همواره خطی هستند.\nطول مدت دوره آموزش معماری MVC با فریم‌ورک Spring Boot در جاوا نزدیک به سه ساعت است و مدرس آن مهندس رضا غلام زاد هستند. Spring Boot MVC ساخت یک وب‌اپلیکیشن را بر اساس الگوی معماری MVC بسیار سریع‌تر و ساده‌تر کرده است. در این دوره آموزشی برتری‌های Spring Boot MVC نسبت به Spring MVC توضیح داده شده است. هدف از این فرادرس یادگیری مفاهیم ابتدایی است تا نقطه شروع قوی و پایه‌ای ایجاد شود. از جمله برخی از سرفصل‌های این دوره می‌توان به نحوه کار و آشنایی با Spring MVC ،Spring Boot و Servlet، ساخت پروژه Spring Boot، پیاده‌سازی الگوی معماری MVC، ارتباط و کار با پایگاه‌داده و بسیاری موارد دیگر اشاره کرد.\nبرای مشاهده فیلم آموزش مقدماتی پیاده سازی ماژول MVC با فریم ورک Spring Boot در Java + اینجا کلیک کنید.\nدر درس مهندسی اینترنت، پس از ایجاد یک وب‌اپلیکیشن یا کاربرد وب ساده با PHP ،Servlet یا دات‌نت، نوبت به یادگیری نحوه اتصال یک وب‌اپلیکیشن به پایگاه‌داده فرا می‌رسد. معمولاً داده‌هایی در پایگاه‌داده نگهداری می‌شوند که بین اجزا وب به اشتراک گذاشته شده و به طور پیوسته در یک وب‌اپلیکیشن فراخوانی می‌شوند. در ادامه، نحوه اتصال پایگاه‌داده در جاوا شرح داده شده است.\nوب‌اپلیکیشن‌ها از API (رابط برنامه‌نویسی اپلیکیشن) JDBC برای دسترسی به پایگاه‌داده‌های رابطه‌ای استفاده می‌کنند. JDBC سرنامی برای Java Database Connectivity به معنای اتصال پایگاه‌داده جاوا است. JDBC یک API سطح پایین برای ایجاد اتصال پایگاه داده و مدیریت کوئری‌های SQL و پاسخ آن‌ها محسوب می‌شود.\nطول مدت این دوره آموزش پایگاه‌داده در جاوا ۲ ساعت و ۱۱ دقیقه و مدرس آن مهندس مصطفی عنبرمو هستند. در این فرادرس، نحوه ذخیره داده پروژه‌های جاوا در پایگاه‌داده‌های SQL Server و MySQL و Access آموزش داده شده است. از جمله سرفصل‌ها و رئوس مقالات این دوره آموزشی می‌توان آشنایی با شی JDBC، نحوه اتصال به پایگاه داده، خواندن، نوشتن، به‌روزرسانی و حذف اطلاعات در هر یک از پایگاه‌داده‌های SQL Server و MySQL و Access و سایر موارد را نام برد.\nبرای مشاهده فیلم آموزش پایگاه داده ها در جاوا + اینجا کلیک کنید.\nAPI یک واسط نرم‌افزاری است که امکان برقراری ارتباط میان دو اپلیکیشن را فراهم می‌کند. برای کسب اطلاعات بیش‌تر پیرامون API، مطالعه مقالات زیر پیشنهاد می‌شود:\nAPI چیست و APIهای باز چگونه اینترنت را تغییر می‌دهند؟\nمقدمه‌ای بر API-های وب — راهنمای جامع\nدر JDCB API، دسترسی به پایگاه‌داده‌ها از طریق اشیائی به نام DataSource انجام می‌شود. یک DataSource دارای مجموعه‌ای از متعلقات (Property) است. این مجموعه متعلقات منبع داده جهان واقعی را که بازنمایاننده آن هستند، شناسایی و توصیف می‌کنند. این Propertyها شامل اطلاعاتی نظیر موقعیت سرور پایگاه‌داده، نام پایگاه‌داده، پروتکل شبکه مورد استفاده برای ارتباط با سرور و سایر موارد هستند. وب‌اپلیکیشن‌ها با استفاده از یک اتصال به منبع داده دسترسی پیدا می‌کنند. یک شیٔ DataSource را می‌توان به یک کارخانه برای اتصال به یک منبع داده خاص تشبیه کرد. پیرامون مبحث اتصال به پایگاه‌داده در جاوا، مطالعه مقالات زیر توصیه می‌شود:\nاتصال به پایگاه داده MySQL با استفاده از زبان جاوا — آموزش گام به گام\nروش‌های مختلف ایمپورت (Import) پایگاه داده در MySQL — راهنمای جامع\nآموزش مقدماتی جاوا (بخش سوم) – از صفر تا صد\nبرنامه اتصال به یک پایگاه داده SQL در نمونه کدهای کاربردی برای برنامه‌نویسان جاوا\nهمچنین، برای اتصال به پایگاه داده در PHP مقالات زیر موجود است:\nاتصال PHP به MySQL — به زبان ساده\nساختار PHP و نحوه اتصال به پایگاه‌داده MySQL — به زبان ساده\nزبان‌های برنامه‌نویسی شیگرا در ترکیب کردن متغیرها و توابع برای تبدیل آن‌ها به اشیا و کلاس‌ها به کار می‌روند. به عنوان یک مثال در دنیای واقعی، می‌توان شیٔ را مشابه یک اتومبیل در نظر گرفت که دارای متعلقاتی (Property) همچون چرخ‌ها است و از خود رفتاری را مثل حرکت کردن نشان می‌دهد. از سوی دیگر، پایگاه‌داده‌های رابطه‌ای که سیستم مدیریت پایگاه‌داده رابطه‌ای (DBMS) هم خوانده می‌شوند، در ایجاد روابط میان جداول به وسیله استفاده از کلید‌های خارجی به خوبی عمل می‌کنند. می‌توان روابط را در دنیای واقعی به مانند رابطه میان یک عنصر مثل مسافر و عنصر دیگری مثل صندلی هواپیما تصور کرد. این دو عنصر به وسیله یک شناسه منحصربه‌فرد یعنی بلیت هواپیما با یکدیگر مرتبط می‌شوند.\nامروزه اکثر اپلیکیشن‌ها با یک زبان شیگرا نوشته می‌شوند و همچنین از یک پایگاه‌داده رابطه‌ای برای ذخیره داده‌ها استفاده می‌کنند. در نتیجه، نیاز به روشی برای ایجاد هماهنگی میان اشیا و روابط به وجود می‌آید. نگاشت شیٔ-رابطه‌ای (Object-Relational Mapping | ORM) مضمونی است که امکان دستکاری داده‌ها در یک پایگاه‌داده را از طریق یک موجودیت شیگرا به وجود می‌آورد. به بیان دیگر، ORM اجازه می‌دهد با استفاده از هر زبان برنامه‌نویسی دلخواهی و بدون نیاز به زبان SQL، داده‌ها را در پایگاه‌داده فراخوانی کرده یا تغییر داد. فرآیند تبدیل داده‌ها به اشیا، Hydration نامیده می‌شود. Hydration معمولاً شامل تبدیل مقادیر ستون‌های جدول در پایگاه‌داده به Propertyهای یک شیٔ است. همچنین، توضیحاتی هم در مطلب «پایتون و نگاشت‌های شیٔ-رابطه ای (ORM) — هر آن چه باید در این مورد بدانید» پیرامون ORM موجود است.\nطول مدت این دوره آموزشی جامع ۱۷ ساعت و ۵۴ دقیقه و مدرس آن مهندس مصطفی عنبرمو هستند. توسعه‌دهندگان جاوا فناوری‌های مختلفی را برای سیستم‌های مدیریت پایگاه‌داده (DBMS) ارائه کرده‌اند. Hibernate محبوب‌ترین ORM موجود در زبان جاوا به شمار می‌رود. در این دوره آموزش ORM هایبرنیت بررسی و آموزش داده شده است. این دوره آموزشی پروژه محور بوده و در آن مثال‌های مختلفی برای درک بهتر مفاهیم ارائه شده است. همچنین، در انتهای این دوره آموزشی و با هدف جمع‌بندی مباحث آموزش داده شده، یک سیستم اطلاعاتی با تکنولوژی Hibernate پیاده‌سازی شده است. برخی از سرفصل‌های این دوره شامل بررسی مفاهیم DBMS ،SQL ،ORM و JPA، مقدمه‌ای بر Hibernate ORM و تاریخچه پیدایش آن، نصب و راه اندازی، پیکربندی هایبرنیت، نگاشت شیٔ رابطه‌ای، ارث‌بری در Hibernate و بسیاری از موارد دیگر است.\nبرای مشاهده فیلم آموزش ORM هایبرنیت (Hibernate) جاوا (Java) + اینجا کلیک کنید.\nسازمان‌دهی اصولی کدها و مخصوصاً سازمان‌دهی منطق دامنه (Organizing Logic Domain) برای امر نگهداری یا نگهداشت‌پذیری یک پروژه بسیار دارای اهمیت است. برای درک بهتر این موضوع، می‌توان یک فروشگاه کتاب یا کتابخانه را در نظر گرفت. در صورتی که کتابی در قفسه اشتباه قرار داده شود، بعداً نمی‌توان آن کتاب را پیدا کرد. چنین چیزی در کدنویسی هم اتفاق می‌افتد. اگر محل مشخصی برای قرار دادن یک قطعه خاص از کدها وجود نداشته باشد، سایر توسعه‌دهندگان متوجه وجود چنین کدهایی نخواهند شد و تصور خواهند کرد که این کدها وجود ندارند. بنابراین، دوباره اقدام به کدنویسی خواهند کرد که این مسئله باعث اتلاف وقت و منابع خواهد شد.\nمنطق دامنه در واقع همان دنیایی است که اپلیکیشن در آن زیست می‌کند. به عنوان مثال، اگر یک توسعه‌دهنده روی سامانه خرید بلیت هواپیما کار می‌کند، دامنه اپلیکیشن یا همان منطق دامنه، «خرید بلیت هواپیما» خواهد بود.\nسه الگوی اصلی برای سازمان‌دهی منطق دامنه وجود دارد که در ادامه فهرست شده است:\nاسکریپت تراکنش (Transaction Script): در این الگو از برنامه‌نویسی رویه‌ای (Procedural) استفاده می‌شود. در این الگو، برای هر کاری که یک کاربر می‌تواند انجام دهد، یک روند (Procedure) خاص وجود دارد . اگرچه، این به این معنا نیست که روند مربوطه تماماً دارای منطق است. اسکریپت تراکنش روش ساده‌ای برای سازمان‌دهی کدها و کارهای ممکن به حساب می‌آید. اما با رشد پیچیدگی، این روش کافی نخواهد بود، چرا که نمی‌تواند از تکرار کدها جلوگیری کند و بنابراین به دوگانگی منطق منجر خواهد شد.\nمدل دامنه (Domain Model): در این الگو از برنامه‌نویسی شیگرا استفاده می‌شود و مدلی از دامنه ساخته می‌شود که پیرامون فاعل‌ها در دامنه سازمان می‌یابد. لذا، یک فاعل با یک شیٔ مطابقت داده می‌شود. خصوصیت‌های آن فاعل همان متعلقات شیٔ هستند و کاری که می‌تواند انجام دهد هم API شیٔ (متُدهای عمومی) خواهد بود. برتری بزرگ این رویکرد این است که امکان مدیریت منطق فوق پیشرفته را به گونه‌ای منظم و قابل نگهداری فراهم می‌کند.\nماژول جدول (Table Module): این نوع از سازمان‌دهی، حد میانه اسکریپت تراکنش و مدل دامنه به حساب می‌آید. ماژول جدول، منطق دامنه را به جای اشیا دامنه یا عملیات محض، بر اساس جداول سازمان‌دهی می‌کند. ماژول جدول ساختار بهتری نسبت به یک اسکریپت تراکنش فراهم می‌کند و جلوگیری از تکرار کدها در آن بهتر انجام می‌شود. اما، فراهم‌سازی سازکارهایی را که یک مدل دامنه برای الگوها، روش‌ها و راهبُردها از طریق شیگرایی مهیا می‌کند، در ماژول جدول انجام نمی‌شود.\nیک راه دیگر برای سازمان‌دهی بیش‌تر دامنه، تقسیم کردن لایه دامنه به دو بخش است: لایه خدمات و لایه مدل. در ادامه در خصوص این دو لایه توضیحاتی ارائه شده است.\nلایه خدمات: لایه رابط کاربری (که کنترل‌گر‌ها هستند) تنها از طریق لایه خدمات با دامنه تعامل خواهد داشت. به این ترتیب، لایه خدمات یک API شفاف برای تعامل با منطق دامنه فراهم می‌کند. خدمات در این لایه می‌توانند فقط نماها باشند که به سادگی فراخوانی‌ها را به اشیا دامنه منتقل می‌کنند، یا خدمات (نماها) می‌توانند مقدار زیادی از منطق کسب‌وکار را نگهداری کنند. با این کار، دامنه اشیا بسیار ساده یا حتی تضعیف خواهد شد.\nلایه مدل: در این لایه، اشیائی که چیزی مرتبط در دامنه (موجودیت‌ها) را منعکس می‌کنند و در نهایت کلاس‌های عملیاتی فرعی قرار داده می‌شود.\nالگوها نقش مهمی در توسعه وب ایفا می‌کنند. الگوهای طراحی راهکارهایی استاندارد برای مسائل طراحی نرم‌افزار هستند. الگوهای بسیاری به خوبی مستند شده‌اند و امکان فراگیری و به‌کارگیری یک روش اصولی برای توسعه را فراهم می‌کنند. یکی از کتاب‌های محبوب در این زمینه، کتاب الگوهای طراحی (Design Patterns) است که در بخش منابع درس مهندسی اینترنت معرفی شد. یک منبع دیگر هم کتاب الگوهای معماری اپلیکیشن‌های تجاری نوشته مارتین فاولر است. همان‌طور که بیان شد، این کتاب به عنوان منبع رسمی وزارت علوم برای درس مهندسی اینترنت معرفی شده است. اثر مارتین فاولر تلفیقی از الگوهای تخصصی و تعمیم‌یافته است. فاولر الگوی مدل-نما-کنترل‌گر (MVC) را در ارتباط با توسعه وب پوشش داده است و همچنین تعدادی از گونه‌های دیگر MVC با کنترل‌گر صفحه و کنترل‌گر فرانت را نیز توصیف می‌کند.\nدر یک وب‌اپلیکیشن، یک درخواست از طریق پروتکل HTTP وارد و به کنترل‌گر تحویل داده می‌شود. از این جا به بعد، راه‌های مختلفی برای نحوه تعامل مدل و نما وجود دارد. در یک رویکرد منفعل (Passive Approach)، کنترل‌گر اطلاعات را به مدل انتقال می‌دهد تا مدل خود را به‌روزرسانی کند. سپس، کنترل‌گر نمای متناظر را فراخوانی می‌کند. در مرحله بعد، نما وضعیت (State) فعلی را از مدل بازیابی می‌کند. پس از آن، نما در پاسخ HTTP، به کلاینت بازگردانده می‌شود. مدل در رویکرد منفعل، تعامل اندکی با نما دارد. این تعامل تنها برای پاسخ به نما در ازای هر درخواست اطلاعات وضعیتی انجام می‌شود. یک رویکرد فعالانه‌تر (Active Approach) می‌تواند به این صورت باشد که مدل در عمل کار اطلاع‌رسانی (Notify) به نما یا هر مدل دیگری را انجام دهد. کنترل‌گر در یک وب‌اپلیکیشن می‌تواند به روش‌های مختلفی پیاده‌سازی شود. رایج‌ترین رویکردها کنترل‌گر صفحه و کنترل‌گر فرانت هستند.\nدر کنترل‌گر صفحه (Page Controller) هر صفحه در یک سایت به عنوان یک کنترل‌گر برای یک یا تعدادی نما عمل می‌کند. برای مثال، یک فراخوانی به userlist.php ممکن است فهرستی از کاربران را نمایش دهد و useredit.php مسئولیت افزودن، ویرایش و حذف توابع را بر عهده خواهد داشت. هر عمل نمای متفاوتی ارائه می‌دهد، اما همگی به کاربر مرتبط هستند. در این سناریو، نما و کنترل‌گر تمایل دارند ارتباط نزدیک‌تری داشته باشند، چرا که کنترل‌گر برای مدیریت تعداد نماهای خاصی طراحی شده است. مدل همچنان در داخل کلاس‌های مربوط به خودش مستقل و جدا است و توسط نما فراخوانی می‌شود.\nدر یک کنترل‌گر فرانت (Front Controller)، تمام کارها از طریق یک کنترل‌گر مرکزی انجام می‌شوند. این کنترل‌گر مرکزی، از یک دیکشنری استفاده می‌کند تا کنترل‌گر مشخص کند که باید کدام مدل را به‌روزرسانی یا درخواست را به کدام مدل ارسال کند. این رویکردی است که به وسیله بسیاری از وب‌اپلیکیشن‌ها شامل WordPress و eZpublish به کار گرفته شده است.\nبه طور کلی و در یک جمع‌بندی می‌توان گفت که الگوهای طراحی، انتزاعی را به وجود می‌آورند که پیاده‌سازی و استفاده مجدد را تسهیل می‌بخشد. اما، اعتبارسنجی الگوها به عنوان یک ابزار حائز اهمیت است. اینکه فرد سعی کند از همه الگوها استفاده کند، درست نیست، زیرا منجربه «طراحی ترکیبی» (Synthetic Designs) می‌شود؛ طراحی که بر مبنای حدس و گمان است و انعطاف‌پذیری غیر ضروری به وجود می‌آورد. بنابراین، رمز موفقیت در این است که تا حد امکان از الگوهای طراحی کم‌تری استفاده کرده و مناسب‌ترین الگوها به کار گرفته شوند.\nبرای بحث پیرامون مدیریت نشست (Session Managment | مدیریت جلسه)، ابتدا باید دانست که یک نشست وب (Web Session) چیست؟\nیک نشست یا جلسه وب مجموعه‌ای از کارهای پیوسته‌ای است که توسط یک بازدید کننده در یک سایت در یک چارچوب زمانی معین انجام می‌شود. این مجموعه کارها می‌تواند شامل جستجوهای مربوط به موتور جستجوی سایت، پر کردن فرم برای دریافت محتوا، حرکت در یک صفحه وب (Scrolling)، افزودن اقلامی به یک سبد خرید، جستجوی هزینه بلیت یا صفحات بازدید شده در وب‌سایت باشند. هر تعاملی که با یک وب‌سایت توسط کاربر انجام می‌شود، به عنوان یک نشست وب در Property آن وب‌سایت ضبط می‌شود. برای ردیابی نشست‌ها، یک شناسه (ID) در مرورگر کاربر ذخیره می‌شود.\nاین شناسه به هر درخواست HTTP ارسال شده در زمان حضور کاربر در سایت، ضمیمه می‌شود. «نشست» اصطلاحی برای اشاره به مدت زمانی است که یک بازدید کننده در وب‌سایت سپری می‌کند. هدف نشست، بازنمود زمان بین ورود بازدید کننده به یک صفحه در سایت و زمان خروج وی از سایت است. کدهایی که آغازگر یک نشست هستند، یک زمان انقضاء هم دارند. بنابراین، یک جلسه حداقل تا جایی که به یک Property وب مربوط است، هیچ‌گاه فراتر از یک مدت زمانی خاص دوام نخواهد داشت. بسته به شرایط، یک توسعه‌دهنده ممکن است نشست وب را مدت کوتاهی مثلاً پنج دقیقه تعریف کند یا امکان دارد مدت زمان نشست را ۱۴۴۰ دقیقه (معادل یک روز) در نظر بگیرد.\nاکنون با تعریف یک نشست وب، می‌توان به شرح «مدیریت نشست» (Session Managment) در یک وب‌اپلیکیشن پرداخت. مدیریت نشست به فرآیند مدیریت ایمن چندین درخواست به یک اپلیکیشن مبتنی بر وب اطلاق می‌شود. وب‌سایت‌ها و مرورگرها از پروتکل HTTP برای ارتباط استفاده می‌کنند. بنابراین، یک نشست را می‌توان مجموعه‌ای از درخواست‌ها و تراکنش‌های HTTP در نظر گرفت که توسط یک کاربر آغاز شده باشند. معمولاً یک نشست زمانی شروع می‌شود که کاربر تایید هویت خود را از طریق شناسه کاربری و رمز عبور یا هر پروتکل تایید هویت دیگری انجام می‌دهد.\nمدیریت نشست شامل به اشتراک‌گذاری منابع خاص با آن دسته از کاربرانی است که تایید هویت شده باشند. HTTP یک پروتکل بدون حالت است؛ یعنی هر زوج درخواست و پاسخ، مستقل از سایر تعامل‌های وب هستند. بنابراین، جهت معرفی مفهوم یک نشست، لازم است تا قابلیت‌های مدیریت نشست پیاده‌سازی شوند. این قابلیت‌ها، ماژول‌های تایید اعتبار و کنترل دسترسی (تایید مجوزی) را پیوند می‌دهند که معمولاً در وب قابل دسترسی است.\nنوشته مفید و کاربردی پیرامون مدیریت نشست در مجله فرادرس با عنوان «شیوه استفاده از نشست ها (Session) در PHP — به زبان ساده» منتشر شده است که مطالعه آن برای آشنایی با مبانی مدیریت نشست در PHP پیشنهاد می‌شود.\nدر یک سیستم مدیریت پایگاه داده (DBMS)، کنترل همروندی (Concurrency Control) دسترسی همزمان به یک پایگاه‌داده را مدیریت می‌کند. کنترل همروندی از ویرایش یک رکورد توسط دو کاربر به طور همزمان جلوگیری می‌کند و همچنین تراکنش‌ها را برای پشتیبان‌گیری و بازیابی (Recovery) به صورت نوبتی مرتب‌سازی می‌کند.\nیک سیستم توزیع شده سیستمی است که اجزا آن در چند ماشین توزیع شده‌اند و این اجزا از طریق شبکه و با ارسال پیام با یکدیگر ارتباط برقرار می‌کنند. پروتکل پیام‌رسانی و نحوه برقراری ارتباط این اجزا، به وسیله یک API خاص تعریف می‌شود. این API برای حمایت و پشتیبانی از برقراری ارتباط میان اجزا سیستم ساخته شده است. در این سیستم پیام‌رسانی، اجزا سیستم فعالیت‌ها و کارهای خود را با استفاده از یک مدل ارتباطی (Communication Modle) هماهنگ می‌کنند. یک مدل رایج ارتباطی، مدل Master/Slave (ارباب/برده) است.\nدر این مدل یک Master (ارباب) وجود دارد که جریان را کنترل می‌کند و چندین Slave (برده) که براساس وظایف محول شده توسط Master عمل می‌کنند. این مدل ارتباطی در Apache Spark پیاده‌سازی شده است که به آن Driver and Executors (راننده و مجریان) گفته می‌شود. که راننده همان Master و مجریان همان Slaveها هستند. چندین راه برای طراحی معماری یک سیستم توزیع شده با مدل‌های ارتباطی مختلفی مثل کلاینت-سرور، سه لایه، n لایه یا نظیر به نظیر (Peer-to-Peer) یا طبقه‌بندی‌هایی نظیر اتصال سُست (Loose Coupling) یا اتصال فشرده (Tight Coupling) وجود دارد.\nخوشه‌بندی و محاسبات ابری یکی دیگر از سرفصل‌های درس مهندسی اینترنت به شمار می‌رود. در این بخش به معرفی دو مفهوم خوشه‌بندی و محاسبات ابری پرداخته و منابع آموزشی کاربردی پیرامون آن‌ها معرفی شده است.\nمحاسبات خوشه‌ای اشاره دارد به تعداد زیادی کامپیوتر که به یک شبکه متصل هستند و به صورت «یک موجودیت» عمل می‌کنند. محاسبات خوشه‌ای، راهکارهایی را برای حل مسائل پیچیده به وسیله فراهم‌سازی سرعت محاسباتی بیش‌تر ارائه می‌دهد. کامپیوترهای متصل همگی باهم درست مثل یک سیستم واحد (ماشین مجازی) عملیات انجام می‌دهند. این فناوری شبکه بر اساس اصل سیستم‌های توزیع شده عملیات خود را انجام می‌دهد. و در اینجا، شبکه محلی (LAN) واحد اتصال دهنده به حساب می‌آید. برخی از ویژگی‌های محاسبات خوشه‌ای به شرح زیر است:\nنوع تمام کامپیوترها یکسان است.\nکامپیوترهای یک خوشه از طریق اتصالات اختصاصی شبکه به هم متصل هستند.\nتمام کامپیوترها از یک انباره محلی (Home Directory) مشترک استفاده می‌کنند.\nبه ساده‌ترین بیان، محاسبات ابری یعنی به جای کامپیوتر شخصی، ذخیره‌سازی و دسترسی به داده‌ها و برنامه‌ها از طریق اینترنت انجام شود. در واقع محاسبات ابری خدمات سخت‌افزاری و نرم‌افزاری از جانب یک ارائه‌دهنده در اینترنت است. به بیان دقیق‌تر، محاسبات ابری به تقاضا برای تحویل منابع فناوری اطلاعات، خصوصاً قدرت محاسباتی و فضای ذخیره‌سازی، از طریق اینترنت و به صورت «پرداخت به میزان استفاده» (Pay Per Use) اطلاق می‌شود. جهت آموزش بیش‌تر پیرامون محاسبات ابری، مطالعه مطلب «آموزش رایانش ابری (Cloud Computing) — از صفر تا صد» پیشنهاد می‌شود.\nدر ادامه آموزش درس مهندسی اینترنت به شرح مباحث امنیتی در توسعه وب‌اپلیکیشن‌ها پرداخته شده است.\nامنیت وب‌اپلیکیشن‌ها جزء محوری هر کسب‌وکار مبتنی بر وب محسوب می‌شود. طبیعت جهانی اینترنت، متعلقات وب را در معرض حملات از جانب موقعیت‌های مختلف، مقیاس‌ها و سطوح پیچیدگی گوناگون قرار می‌دهد. امنیت وب‌اپلیکیشن به طور خاص با بحث امنیت پیرامون وب‌سایت‌ها، کاربردها و خدمات وب نظیر APIها سر و کار دارد.\nحملات بر ضد وب‌اپلیکیشن‌ها شامل مواردی همچون دستکاری هدفمند پایگاه‌داده یا ایجاد اختلال شبکه در مقیاس وسیع می‌شود. در ادامه، برخی از روش‌های رایج حمله شرح داده شده است.\nتزریق اسکریپت (Cross Site Scripting) آسیب‌پذیری است که در آن یک مهاجم اسکریپت‌های سمت کلاینت را با هدف دسترسی مستقیم به اطلاعات مهم و جعل هویت کاربر یا فریب او برای افشا اطلاعات حساس در یک صفحه وب تزریق می‌کند.\nاین شیوه از هک کردن که به آن SQi نیز گفته می‌شود، روشی است که در آن مهاجم نحوه اجرای کوئری‌های جستجو توسط پایگاه‌داده را برای بهره بردن از آسیب‌پذیری‌ها شبیه‌سازی می‌کند. مهاجمین از SQi برای دست‌یابی به اطلاعات محرمانه، ویرایش یا ایجاد مجوزهای کاربری جدید و یا دستکاری و تخریب داده‌های حساس استفاده می‌کنند.\nدر حملات منع سرویس (Denial of Service | DoS) یا حملات منع سرویس توزیع شده، از طریق انواع روش‌های حمله، مهاجمین می‌توانند یک سرور هدف یا زیرساخت‌های مرتبط با آن را تحت فشار و بار مضاعف قرار دهند. زمانی که یک سرور دیگر قادر به پردازش مؤثر درخواست‌های ورودی نباشد، دچار کندی شده و در نهایت امکان سرویس‌دهی به کاربران واقعی را نخواهد داشت.\nحملات دیگری نظیر «نقض داده» (Data Breech)، سرریز بافر (Buffer Overflow) و سایر موارد در خصوص امنیت وب‌اپلیکیشن‌ها وجود دارند که شناخت و نحوه مقابله با آن‌ها جهت جلوگیری از بروز حملات سایبری دارای اهمیت است. جهت مطالعه بیش‌تر پیرامون امنیت کاربردهای وب، مطالعه مقالات زیر پیشنهاد می‌شود:\n۱۰ اشتباه امنیتی که نباید در وب اپلیکیشن‌های خود مرتکب شوید | راهنمای کاربردی\n۱۰ نکته امنیتی برای توسعه دهندگان فرانت اند | راهنمای کاربردی\nطول مدت دوره آموزش امنیت شبکه ۹ ساعت و مدرس آن مهندس مهدی مهدیانی هستند. در این دوره آموزشی روش‌های مورد استفاده هکرها در بحث امنیت شبکه و اینترنت معرفی و شیوه حفظ امنیت در مقابل حملات در شبکه ارائه شده است. این دوره برای اشخاص تازه‌کار در حیطه شبکه‌های کامپیوتری و همچنین اشخاصی که قصد بهبود سطح امنیتی سازمان خود را دارند، مناسب است. برخی از سرفصل‌ها و رئوس مقالاتی که در این دوره آموزشی به آن‌ها اشاره شده است، شامل معرفی هک و انواع هکرها، آموزش مکانیزم اسکن شبکه‌ها، بررسی مکانیزم هک سیستم، انواع مخرب‌ها و تهدیدات آن‌ها، استراق سمع و معرفی نرم‌افزارها، حمله Denial of Service، امنیت در پایگاه‌داده‌ها و تزریق SQL و بسیاری از موارد دیگر است.\nبرای دیدن فیلم آموزش امنیت در شبکه های کامپیوتری و اینترنت + اینجا کلیک کنید.\nطول مدت این دوره آموزشی ۱۰ ساعت و ۲۳ دقیقه و مدرس آن مهندس عادل سرمست هستند. در دوره «آموزش تست نفوذ در وب و راهکارهای مقابله با آن» مفاهیم مقدماتی حوزه امنیت وب، مراحل تست نفوذ و روش‌های مقابله با آسیب‌های محیط وب ارائه شده است. از جمله برخی از سرفصل‌ها و مباحث مطرح شده در این دوره می‌توان به تعاریف اولیه (پروتکل وب، تعاریف امنیتی پایه و استانداردهای وب)، نصب برنامه‌های مورد نیاز، آشنایی با مراحل تست نفوذ، آشنایی با آسیب پذیری‌های رایج تحت وب، شناخت حملات رایج در وب، روش‌های مقابله با آسیب‌پذیری‌ها و سایر موارد اشاره کرد.\nبرای دیدن فیلم آموزش تست نفوذ در وب و راه های مقابله با آن + اینجا کلیک کنید.\nسازمان‌ها دارای سیستم‌های IT متعددی هستند که این سیستم‌ها به تبادل داده ساخت‌یافته هم به صورت داخلی و هم به صورت بین سازمانی نیاز دارند. تبادل داده در این سازمان‌ها به روش‌های مختلفی مدیریت می‌شود. استفاده از راهکارهای مختلف در راه‌اندازی پیوندهای جدید میان سیستم‌ها یا استفاده مجدد از سیستم‌های فعلی، به عدم سازگاری، تاخیر و هزینه مضاعف منجر می‌شود. سرویس‌های وب می‌توانند به یک استاندارد واحد برای کل فرآیند تبادل داده‌های ساخت‌یافته بدل شوند.\nبا محقق شدن سرویس‌های وب قابل اطمینان، ایمن و استاندارد (Reliable Web Systems)، فناوری واحدی برای ارتباط همزمان و ناهمزمان هم در داخل و هم میان سازمان‌ها قابل استفاده خواهد بود. اول از همه، این کار می‌تواند به کاهش هزینه‌ها کمک کند و علاوه بر این، فناوری خدمات وب به یک توانمندساز مهم برای معماری مبتنی بر خدمات بدل خواهد شد. به راحتی می‌توان خدمات مختلف را در داخل و میان سازمان‌ها منتشر و استفاده کرد که منجربه انعطاف‌پذیری گسترده‌ای خواهد شد.\nدر این بخش از آموزش درس مهندسی اینترنت کلیاتی در خصوص مفاهیم مهم پیرامون کارایی و عملکرد وب‌اپلیکیشن‌ها ارائه شده است.\nدر این بخش، برخی از معیارهای پایه در سنجش کارایی و عملکرد کاربردهای وب تعریف شده‌اند.\nزمان پاسخ‌دهی (Response Time): پراستفاده‌ترین معیار سنجش عملکرد به حساب می‌آید و اساساً به عملیات اندازه‌گیری مستقیم مدت زمان پردازش یک درخواست گفته می‌شود.\nتوان عملیاتی (Throughput): شمارش تعداد درخواست‌هایی است که اپلیکیشن می‌تواند در یک فاصله زمانی مشخص پردازش کند. در مورد وب‌اپلیکیشن‌ها، معمولاً شمارش تعداد دفعات نمایش یا درخواست صفحات در ثانیه به عنوان معیار سنجش توان عملیاتی استفاده می‌شود.\nدسترس‌پذیری سیستم (System Availability): معمولاً به صورت تفریق میزان زمان اجرای یک اپلیکیشن از مدت زمانی است که یک کاربر امکان دسترسی به اپلیکیشن را ندارد. دسترس‌پذیری یک معیار سنجش لازم الاجرا محسوب می‌شود، چرا که در زمان عدم دسترسی به سیستم، مقدار هر دو معیار زمان پاسخ‌دهی و توان عملیاتی صفر خواهد بود. اکثر شرکت‌ها از این معیار به عنوان راهی برای اندازه‌گیری مدت زمان اجرا (Uptime) برای توافق‌نامه سطح خدمات (Service Level Agreement | SLA) استفاده می‌کنند.\nواکنش‌پذیری (Responsiveness): مربوط می‌شود به سرعت پذیرش یک درخواست و نه پردازش آن؛ این مسئله در بسیاری از سیستم‌ها اهمیت دارد، زیرا ممکن است در صورت واکنش‌پذیری ضعیف در یک سیستم حتی با وجود زمان پاسخ‌دهی مناسب، کاربران دلسرد شوند.\nمعیار سنجش عملکرد (Performance) توان عملیاتی یا زمان پاسخ‌دهی است. ارائه‌دهنده یک سرویس وب می‌تواند از هر کدام از این دو معیار که اهمیت بیش‌تری دارند، استفاده کند. در وب‌اپلیکیشن‌ها معمولاً زمان پاسخ‌دهی محبوبیت بیش‌تری دارد. از دیدگاه یک کاربر، ممکن است واکنش‌پذیری اهمیت بیش‌تری نسبت به زمان پاسخ‌دهی داشته باشد. بنابراین، بهبود واکنش‌پذیری در برابر از دست دادن زمان پاسخ‌دهی یا توان عملیاتی، میزان عملکرد را افزایش خواهد داد.\nعملکرد اپلیکیشن همواره به واسطه محدودیت منابع تحت تأثیر قرار خواهد گرفت. مقیاس‌پذیری (Scalability) توانایی غلبه بر محدودیت‌های عملکردی با افزایش منابع تعریف می‌شود. فارق از میزان سخت‌افزاری که در دسترس است، در یک نقطه خاص در نهایت کاهش عملکرد اتفاق خواهد افتاد. مقصود از کاهش عملکرد، افزایش زمان پاسخ‌دهی یا محدودیت در توان عملکردی است. آیا افزودن سخت‌افزار بیش‌تر مشکل را برطرف خواهد کرد؟ اگر جواب مثبت باشد، می‌توان مقیاس را گسترش داد. در غیر اینصورت، یک مشکل مقیاس‌پذیری وجود خواهد داشت.\nبه بیان دیگر، مقیاس‌پذیری یا گسترش‌پذیری اندازه‌گیری این مسئله است که افزودن منابع چگونه عملکرد را تحت تأثیر قرار می‌دهد. یک سیستم مقیاس‌پذیر، سیستمی است که امکان افزودن منابع سخت‌افزاری و دست‌یابی به بهبود عملکرد متناسب را داشته باشد. مفاهیمی از قبیل نحوه تعریف عملکرد یک اپلیکیشن، آزمایش عملکرد و سایر موارد نیز پیرامون بحث کارایی و عملکرد وب‌اپلیکیشن‌ها یا کاربردهای وب در درس مهندسی اینترنت قابل طرح هستند.\nسرویس‌های وب (Web Service) شامل هر نوع نرم‌افزار، اپلیکیشن یا فناوری ابری است که پروتکل‌های وب استاندارد (HTTP یا HTTPS) را برای تعامل، برقراری ارتباط و تبادل پیام داده (معمولاً XML) در اینترنت فراهم می‌کند. به بیان دیگر، سرویس‌های وب سیستم‌های تبادل داده در قالب XML هستند که از اینترنت برای ارتباط اپلیکیشن به اپلیکیشن و تعامل استفاده می‌کنند. این پردازش‌ها شامل برنامه‌ها، پیام‌ها، اسناد و اشیا می‌شوند. اپلیکیشن‌ها ممکن است به زبان‌های مختلفی کدنویسی شده باشند اما یک ویژگی کلیدی سرویس‌های وب این است که با وجود متفاوت بودن فناوری ساخت کاربردهای وب، این اپلیکیشن‌ها همچنان می‌توانند از طریق یک وب سرویس به تبادل داده و ارتباط با یکدیگر بپردازند. به طور کلی، یک وب سرویس از قابلیت‌های عمده زیر تشکیل شده است:\nدر شبکه اینترنت و اینترانت در دسترس است.\nسیستم پیام‌رسانی استاندارد XML\nبه یک سیستم‌عامل یا زبان برنامه‌نویسی خاص وابسته نیست.\nاز طریق یک متد موقعیت‌یابی ساده قابل دسترسی است.\nیک سرویس وب با SOAP ،WSDL ،XML ،HTML و سایر استانداردهای متن‌باز از برقراری ارتباط میان اپلیکیشن‌های مختلف پشتیبانی می‌کند. XML داده‌ها را برچسب‌گذاری می‌کند، SOAP پیام‌ها را متنقل می‌کند و WSDL دسترس‌پذیری سرویس را توصیف می‌کند.\nکاربردهای تجاری دنیای امروز از بسترهای برنامه‌نویسی مختلفی برای توسعه اپلیکیشن‌های مبتنی بر وب استفاده می‌کنند. برخی از اپلیکیشن‌ها ممکن است با جاوا توسعه داده شده باشند، برخی با دات‌نت و برخی دیگر نیز ممکن است با Node.js ،Angular JS و موارد دیگر ساخته شده باشند. غالباً این اپلیکیشین‌های نا‌همگون ممکن است نیاز داشته باشند به نوعی با یکدیگر ارتباط برقرار کنند و چون هر کدام با زبان متفاوتی توسعه داده شده‌اند، اطمینان از برقراری ارتباط بدون نقص بسیار دشوار خواهد بود.\nوب سرویس‌ها در چنین شرایطی وارد عمل می‌شوند. سرویس‌های وب یک بستر مشترک فراهم می‌کنند که این بستر به چندین اپلیکیشن ساخته شده با زبان‌های برنامه‌نویسی متفاوت اجازه می‌دهد امکان برقراری ارتباط با یکدیگر را داشته باشند. سرویس‌های وب انواع مختلفی دارند که در ادامه به آن‌ها پرداخته شده است.\nبه طور عمده دو نوع سرویس وب وجود دارد:\nوب سرویس‌های SOAP\nوب سرویس‌های RESTful\nSOAP سرنامی برای Simple Object Access Protocol (پروتکل ساده دسترسی به شیٔ) و یک پروتکل دسترسی استاندارد برای وب سرویس است که قدمت دیرینه‌ای دارد. REST هم که سرنامی برای Representational State Transfer به معنی انتقال حالت بازنمودی است، استاندارد دیگری است که با هدف پاسخ به کمبودهای SOAP پدید آمد. REST به دنبال اصلاح مشکلات SOAP و فراهم کردن روش‌های ساده‌تر برای دسترسی به سرویس‌های وب ارائه شده است. پروتکل‌های SOAP و REST در توسعه APIها هم کاربرد دارند. توضیحاتی پیرامون APIها در بخش اتصال به پایگاه داده ارائه شده است. مفهوم API و وب سرویس بسیار به هم نزدیک هستند، اما این دو با هم تفاوت دارند. بنابراین، در ادامه به اختصار پیرامون تفاوت این دو توضیح داده شده است.\nAPI رابطی است که امکان اتکا به داده‌ها و قابلیت‌های یک اپلیکیشن دیگر را فراهم می‌کند، در حالی که وب سرویس یک منبع مبتنی بر شبکه است که یک وظیفه خاص را برآورده می‌کند. میان API و وب سرویس تداخلی به این شکل وجود دارد که تمام وب سرویس‌ها API هستند اما تمام APIها ممکن است وب سرویس نباشند. پیرامون APIهای مبتنی بر REST مطلب جامعی با عنوان «REST چیست ؟ | همه چیز درباره RESTful API — به زبان ساده» در مجله فرادرس موجود است که مطالعه آن برای آشنایی بیش‌تر با مفاهیم این بخش از درس مهندسی اینترنت پیشنهاد می‌شود. در این مطلب، پیرامون SOAP و تفاوت آن با REST نیز توضیحات کاربردی ارائه شده است. در ادامه، برخی از سایر دوره‌های کاربردی و مرتبط با آموزش درس مهندسی اینترنت معرفی شده‌اند.\nدر این بخش پایانی از مطلب درس مهندسی اینترنت با هدف تکمیل و درک بهتر مفاهیم آموزشی درس مهندسی اینترنت سایر دوره‌های آموزشی مرتبط معرفی شده است. همچنین، دوره‌های آموزشی محبوب‌ترین و به‌روزترین فناوری‌های توسعه و طراحی وب در این بخش با هدف آماده‌سازی دانشجویان برای ورود به بازار کار ارائه شده است.\nهمان‌طور که در بخش سرفصل‌ها و رئوس مقالات درس مهندسی اینترنت بیان شد، یکی دیگر از فناوری‌هایی که می‌توان در ساخت وب‌اپلیکیشن‌ها به کار گرفت، فناوری دات‌نت است. ASP.NET فریم‌ورک توسعه وب متن‌باز ساخته شده توسط شرکت مایکروسافت به شمار می‌رود. مجموعه دوره‌های آموزشی ASP.NET در زمان تدوین این نوشته شامل هفت دوره آموزشی پیرامون فریم‌ورک ASP است. از جمله برخی از دوره‌های پروژه محور این مجموعه می‌توان به آموزش ساخت سایت فروشگاه با ASP.NET ، آموزش پروژه محور ASP.NET Core – طراحی سایت رزرو هتل – بخش اول و آموزش ساخت سایت خبری با ASP.Net اشاره کرد.\nبرای مشاهده فیلم های آموزش برنامه نویسی ASP.NET + اینجا کلیک کنید.\nبرخی از سایر دوره‌های شاخص این مجموعه در ادامه به اختصار معرفی و فهرست شده‌اند:\nآموزش چارچوب توسعه تحت وب ASP.NET MVC: طول مدت این دوره ۲۰ ساعت و ۵۲ دقیقه است و مدرس آن مهندس نیما مسقدی هستند. در این دوره به طور کامل و گام‌به‌گام، اصول ابتدایی تا پیشرفته فریم‌ورک توسعه 5 ASP.NET MVC به گونه‌ای آموزش داده شده است که برای تمامی افراد در سطوح مختلف، کاربرد داشته باشد. برای مشاهده فیلم آموزش چارچوب توسعه تحت وب ASP.NET MVC + کلیک کنید.\nآموزش پروژه محور ASP.NET MVC – طراحی سایت فروشگاهی: طول مدت این دوره آموزشی ۱۰ ساعت و ۳۶ دقیقه است و مدرس آن مهندس عباس حافظی حقانی هستند. هدف این دوره، ارائه مسائل مربوط به طراحی سایت فروشگاه آنلاین با فریم‌ورک ASP.NET MVC است. برای مشاهده فیلم آموزش پروژه محور ASP.NET MVC – طراحی سایت فروشگاهی + کلیک کنید.\nآموزش آشنایی با معماری سه لایه درASP.NET با MVC و Core: طول مدت این دوره ۵ ساعت و ۳۹ دقیقه است و مدرس آن مهندس علیرضا بهارلوئی هستند. در این دوره با استفاده از ظرفیت لایه‌بندی، پیکر اصلی وب‌سایت با زبان ASP.NET پیاده‌سازی شده است. برای مشاهده فیلم آموزش آشنایی با معماری سه لایه درASP.NET با MVC و Core + کلیک کنید.\njQuery یک کتابخانه سبُک جاوا اسکریپت به شمار می‌رود. هدف این کتابخانه ساده‌سازی استفاده از جاوا اسکریپت در توسعه وب است. مجموعه آموزش‌های jQuery (جی کوئری) در مجموع دارای بیش از ۲۰۰۰ دقیقه محتوای آموزش ویدئویی است. در زمان تدوین این متن، مجموعه آموزش‌های jQuery شش دوره آموزشی را در خود جای داده است. از جمله آموزش‌های این مجموعه می‌توان به آموزش طراحی رابط کاربری وب‌سایت با فریم‌ورک jQuery UI، آموزش پلاگین‌های کاربردی jQuery و آموزش کاربردی AJAX در jQuery اشاره کرد.\nبرخی از سایر دوره‌های آموزشی شاخص در این مجموعه در ادامه فهرست شده است:\nفیلم آموزش کاربردی برنامه نویسی وب با جی‌کوئری: طول مدت این دوره ۶ ساعت و ۵۶ دقیقه است و مدرس آن مهندس محمد عبداللهی هستند. توضیحات جامع مسائل مرتبط با برنامه‌نویسی وب با jQuery در این فرادرس پوشش داده شده است. برای مشاهده فیلم آموزش کاربردی برنامه نویسی وب با jQuery + کلیک کنید.\nآموزش کاربردی HTML5 – CSS3 – jQuery در طراحی وب – بخش اول: طول مدت این دوره ۵ ساعت و ۳۲ دقیقه است و مدرس آن مهندس سید مجتبی حیات الغیب هستند. هدف از این دوره آموزشی، یادگیری نحوه استفاده طراحان وب به صورت کاربردی از سه فناوری وب HTML5 ،jQuery و CSS3 جهت طراحی صفحات وب تعاملی است. برای مشاهده آموزش کاربردی HTML5 – CSS3 – jQuery در طراحی وب – بخش اول + کلیک کنید.\nآموزش کاربردی HTML5 – CSS3 – jQuery در طراحی وب – بخش دوم: طول مدت این دوره ۴ ساعت و ۵۰ دقیقه است و مدرس آن مهندس سید مجتبی حیات الغیب هستند. نسبت به بخش اول، در این فرادرس مباحث تکمیلی به همراه مثال‌های بیش‌تر پیرامون توسعه وب با سه فناوری HTML5 ،jQuery و CSS3 ارائه شده است. برای مشاهده آموزش کاربردی HTML5 – CSS3 – jQuery در طراحی وب – بخش دوم + کلیک کنید.\nجنگو (Django)، یک فریمورک برای توسعه وب به زبان پایتون است. جنگو به صورت رایگان و متن‌باز (Open-source) ارائه می‌شود. این فریم‌ورک با هدف توسعه سریع، آسان و کارآمد، توسط توسعه‌دهندگان مجرب، ایجاد شده است. در دوره آموزش جنگو (Django) علاوه بر مباحث تئوری، مثال‌های بسیاری به صورت پروژه محور با هدف درک و یادگیری بهتر ارائه شده است. جنگو یکی از رویکردهای محبوب در صنعت توسعه وب به شمار می‌رود. بنابراین، یادگیری توسعه وب با جنگو می‌تواند به عنوان یک نقطه مثبت برای ورود به بازار کار محسوب شود. برخی از سرفصل‌های این دوره شامل نصب جنگو (Django)، معماری جنگو، پایگاه داده و مدل‌ها، URLها، قالب‌ها، نماها، پیاده‌سازی پروژه کتابخانه و سایر موارد است.\nبرای مشاهده فیلم آموزش جنگو (Django) – فریمورک تحت وب با پایتون (Python) + اینجا کلیک کنید.\nلاراول (Laravel) یکی از محبوب‌ترین فریم‌ورک‌های PHP به حساب می‌آید. Laravel یک فریم‌ورک مبتنی بر MVC است و از آن برای توسعه سیستم‌های تحت وب با PHP استفاده می‌شود. طول مدت دوره آموزش REST در Laravel دو ساعت و ۵۷ دقیقه است و مدرس آن مهندس مهران شمالی هستند. در این فرادرس ابتدا پروژه‌ای مورد بررسی قرار گرفته که با Laravel توسعه داده شده است. سپس، مفاهیم مربوط به ایجاد RESTful API مورد بررسی قرار گرفته و در نهایت مفاهیم REST روی سیستم مذکور پیاده‌سازی شده است. این دوره نیز برای توسعه کاربردهای وب به دانشجویان درس مهندسی اینترنت پیشنهاد می‌شود. از جمله برخی از سرفصل‌های دوره آموزش REST API در Laravel می‌توان به مقدمه‌ای بر REST API در Laravel، نحوه ایجاد وب سرویس و ایجاد اولین وب سرویس، آشنایی با Resource و نحوه ایجاد Paginate، نحوه اعتبارسنجی کاربر و گسترش وب سرویس و سایر موارد اشاره کرد.\nبرای مشاهده فیلم آموزش REST API در Laravel (لاراول) با بسته Passport + اینجا کلیک کنید.\nCodeIgniter یک فریم‌ورک PHP مبتنی بر معماری MVC است که برای توسعه سریع وب‌اپلیکیشن استفاده می‌شود. فریم‌ورک CodeIgniter دارای کتابخانه‌های آماده برای اتصال به پایگاه‌داده و اجرای عملیات مختلفی مانند ارسال فایل‌ها، مدیریت نشست‌ها و سایر موارد است. طول مدت دوره آموزش CodeIgniter هفت ساعت و مدرس آن مهندس مهدی عاشوری هستند. در این فرادرس نحوه توسعه سریع و اصولی وب‌سایت بر اساس کار گروهی و مدل MVC آموزش داده می‌شود. برخی از سرفصل‌های این دوره شامل آشنایی با فریمورک و مقدمات آن، آشنایی با مدل MVC، آموزش کار با دیتابیس، آشنایی با Query Builder، آموزش کار با Session و Cookie و بسیاری از موارد دیگر است.\nبرای مشاهده فیلم آموزش فریمورک PHP کدایگنایتر (CodeIgniter) + اینجا کلیک کنید.\nبرای مشاهده فیلم آموزش بوت استرپ (Bootstrap) برای طراحی صفحات وب + اینجا کلیک کنید.\nدر پایان مطلب درس مهندسی اینترنت به ارائه یک جمع‌بندی کلی از موارد بیان شده پرداخته شده است.\nدرس مهندسی اینترنت یکی از مهم‌ترین دروس رشته مهندسی کامپیوتر و فناوری اطلاعات به حساب می‌آید، چرا که موضوع اصلی این درس پیرامون توسعه وب و خصوصاً توسعه کاربردهای تجاری وب است. نقش پررنگ وب و کاربردهای وسیع آن در دنیای امروزی غیرقابل انکار است. بنابراین، با مطالعه دقیق و یادگیری کامل مفاهیم درس مهندسی اینترنت می‌توان فرصت‌های شغلی بهتری را برای دانشجویان پس از فارغ‌التحصیلی متصور شد.\nنکته مهم در درس مهندسی اینترنت این است که برای توسعه وب باید از به‌روزترین فناوری‌ها (شامل زبان‌های برنامه‌نویسی، کتابخانه‌ها و فریم‌ورک‌های توسعه وب) استفاده شود. زیرا، آخرین فناوری‌ها همواره دارای امکانات بیش‌تری هستند و کار با آن‌ها ساده‌تر است. همچنین، فناوری‌های جدیدتر توسعه وب در صنعت و بازار کار رایج‌تر هستند و تقاضا برای توسعه‌دهندگان مسلط بر این فناوری‌ها بیش‌تر است. در این مطلب، نکات مهم پیرامون درس مهندسی اینترنت بیان و به سوالات مهم درباره آن پاسخ داده شد. همچنین، سرفصل‌های مهم این درس به اختصار و با بیانی ساده معرفی و شرح داده شدند. منابع آموزشی مختلفی نیز در قالب دوره‌های ویدئویی و مقالات آموزشی برای هر یک از سرفصل‌ها و مفاهیم درس مهندسی اینترنت معرفی شدند.\nرشته مهندسی کامپیوتر — از تحصیل تا اشتغال + فیلم آموزش رایگان\nآشنایی با کنکور کارشناسی ارشد کامپیوتر و IT (بررسی مواد آزمون و منابع) – [ویدیوی آموزشی]\nCCNA چیست ؟ — آزمون، مدرک، گرایش‌ها، بازار کار و درآمد\nمنبع tutorialspointMedium/Bhakti RaneCareerFoundryMedium/javinpaulTechTermsDEV CommunityHerbertOgracaDigital WebOWASP Cheat Sheet SeriesDzone\nبابک خوش‌نویس دانش‌آموخته کارشناسی ارشد رشته علوم کامپیوتر گرایش علوم تصمیم و مهندسی دانش است. او به حوزه هوش مصنوعی علاقه دارد و در مجله فرادرس به عنوان تولید کننده محتوا در زمینه‌های علوم کامپیوتر، هوش مصنوعی و برنامه‌نویسی فعالیت می‌کند.\n0 تا 100 آموزش گوگل سرچ کنسولcloud computingEnterprise Application DevelopmentHTTPInternet EngineeringObject-Relational MappingORMSession چیستweb developmentWeb ProgrammingWeb ServerWeb serviceآموزش امنیت وبآموزش رایگان توسعه وبآموزش رایگان شبکهآموزش رایگان طراحی وبآموزش رایگان مهندسی اینترنتآموزش طراحی سایتآموزش مهندسی اینترنتاچ تی ام الالگوی معماری سه لایهامنیت کاربردهای وبامنیت وباهمیت مهندسی اینترنتایجاد وب اپلیکیشنایجاد وب اپلیکیشن اینترپرایزبرنامه نویسی وبپروتکل HTTPپیش نیازهای مهندسی اینترنتتفاوت طراحی وب و توسعه وبتوسعه کاربردهای تجاریتوسعه کاربردهای وبتوسعه وبتوسعه وب اپلیکیشن‌جزوه درس مهندسی اینترنتجزوه مهندسی اینترنتجزوه مهندسی اینترنت pdfدرس شبکه های کامپیوتریدروس رشته کامپیوتردوره آموزش مهندسی اینترنتساخت اپلیکیشن تجاریساخت کاربردهای تحت وبساخت کاربردهای وبساخت وب اپلیکیشنساخت وب اپلیکیشن سازمانیسرویس وبسیستم وب توزیع شدهسیستم وب توزیعیطراحی وبفناوری تحت وبفهرست مباحث مهندسی اینترنتفیلم آموزش توسعه وبفیلم آموزش طراحی وبفیلم های آموزش شبکهلایه OSIلایه های شبکهمباحث مهندسی اینترنتمبانی شبکهمبانی شبکه های کامپیوتریمحاسبات Cloudمحاسبات خوشه ای و ابریمدیریت Sessionمدیریت جلسهمعادل انگلیسی مهندسی اینترنتمعرفی فیلم آموزش PHPمعرفی فیلم آموزش امنیت شبکهمعرفی فیلم آموزش توسعه وب با پی اچ پیمعرفی فیلم آموزش توسعه وب با جاوامعرفی فیلم آموزش طراحی وب سایتمعرفی فیلم های آموزش توسعه وبمعرفی فیلم های آموزش طراحی سایتمعماری MVCمنابع انگلیسی مهندسی اینترنتمنابع مهندسی اینترنتمهندسی اینترنت چیستنگاشت شی رابطه ای