وب سرور IIS چیست و چگونه کار می کند؟ (راهنمای کامل)
۱ فروردین ۱۴۰۴
اگر به دنبال راهی مطمئن برای میزبانی وبسایتتان بر روی سرویسهای ویندوزی هستید، پس باید با وب سرور IIS آشنا شوید. وب سرور IIS سالها است که به عنوان یکی از ستونهای فنی در دنیای سرورها شناخته میشود، و این وب سرور توانسته است با سرعت و کارایی بالا درخواستهای کاربران را پردازش کرده و پاسخهایی سریع و دقیقی را به آنها ارائه دهد. از زمان اولین نسخه IIS در سال ۱۹۹۵ تا به امروز، مایکروسافت همواره در تلاش بوده تا این ابزار را به یک همیار بیعیب و نقص برای کسبوکارها و وبسایتها تبدیل کند. در این مقاله از لیارا، قصد داریم به مزایا و معایب این وب سرور قدرتمند بپردازیم و نگاهی دقیقتر به ویژگیها و کاربردهای آن داشته باشیم.
همین الان، بدون کمترین پیچیدگی، سرور مجازی خودتون رو در کمتر از ۳۰ ثانیه، راهاندازی کنید.
✅ عملکرد پایدار ✅ ترافیک نامحدود ✅ هزینه بهصرفه
خرید سرور مجازی ابری
IIS چیست؟ معرفی وب سرور
اگر به دنبال یک وب سرور قدرتمند و پایدار برای میزبانی وبسایت یا اپلیکیشن خود روی ویندوز هستید.
IIS (Internet Information Services) همان چیزی است که نیاز دارید! این وب سرور محبوب که توسط مایکروسافت توسعه داده شده، بهطور کامل با پلتفرم .NET سازگار است و بهترین گزینه برای اجرای سایتهای ASP.NET محسوب میشود.
IIS چگونه کار میکند؟
تصور کنید کاربری از طریق مرورگر به سایت شما وارد میشود. درخواست او به IIS ارسال شده و این وب سرور محتوای موردنظر را پردازش کرده و نمایش میدهد. این محتوا میتواند شامل صفحات وب، فایلهای متنی، تصاویر، ویدئوها باشد.
چرا باید از IIS استفاده کنیم؟
سازگاری کامل با ویندوز: مخصوص سرورهای ویندوزی طراحی شده است.
پشتیبانی از ASP.NET و PHP: امکان اجرای اپلیکیشنهای تحت وب با فریمورکهای محبوب.
امنیت و پایداری بالا: مخصوصاً برای پروژههایی که با داتنت توسعه داده شدهاند.
مدیریت ساده و قدرتمند: از طریق کنسول مدیریتی IIS به راحتی میتوان وبسایتها را کنترل کرد.
مقایسه IIS با سایر وب سرورها
اگر سایت شما با ASP.NET ساخته شده، IIS بهترین انتخاب برای میزبانی آن خواهد بود. اما اگر پروژه شما بر پایه PHP باشد، Apache یا Nginx که روی لینوکس اجرا میشوند، انتخاب بهتری هستند.
اگر به دنبال یک وب سرور سریع، ایمن و پایدار روی ویندوز هستید، IIS انتخابی ایدهآل است. این وب سرور مخصوص سیستمعامل ویندوز طراحی شده و بهترین گزینه برای سایتهای مبتنی بر داتنت محسوب میشود.
IIS از چه زبان های برنامه نویسی و فریم ورک ها استفاده میکند؟
اگر به دنبال یک وب سرور امن و مطمئن برای میزبانی وبسایتها و اپلیکیشنهای خود روی ویندوز سرور هستید، IIS (Internet Information Services) بهترین گزینه برای شماست! این وب سرور قدرتمند که توسط مایکروسافت توسعه داده شده، علاوه بر سازگاری با فریمورک .NET، از زبانها و فناوریهای مختلف دیگری نیز پشتیبانی میکند.
IIS به شما این امکان را میدهد که با استفاده از زبانها و فریمورکهای مختلف، از قابلیتهای آن بهرهبرداری کنید. در ادامه، برخی از زبانها و فناوریهای محبوبی که میتوان با IIS استفاده کرد را مشاهده میکنید:
زبانهای برنامهنویسی | فناوریها |
---|---|
JScript، PerlScript و VBScript | ASP |
C# و Visual Basic .NET (سازگار با .NET) | ASP.NET |
COM (C، Visual C++، Visual Basic و Java) | کامپوننتهای ASP |
++C یا Visual C | ISAPI |
Perl، C، Visual C++، Visual Basic | CGI |
- پشتیبانی از چندین زبان و فریمورک: از ASP.NET و C# تا Perl و C++، IIS قابلیت اجرای پروژههای مختلف با زبانهای متنوع را دارد.
- امنیت و پایداری بالا: IIS برای میزبانی برنامهها و فایلها بهصورت امن و سریع طراحی شده است.
- عملکرد عالی در ویندوز سرور: وبسایتها و اپلیکیشنهای شما بهراحتی و با سرعت بالا از طریق IIS در دسترس کاربران قرار میگیرند.
🔶برای ادامه مطالعه و یادگیری: موارد امنیتی بسیار مهم برای حفاظت از سرور مجازی

وظیفه IIS چیست؟
وب سرور در حقیقت مغز متفکر پشت هر سایت است که درخواستها را دریافت کرده و پاسخ مناسب را به کاربران ارسال میکند. برای تجربه بهتر و سریعتر این فرآیند، وب سرور IIS میتواند گزینهای قدرتمند برای میزبانی وبسایتهای شما باشد.
وب سرور در واقع نرمافزاری است که وظیفه دارد دسترسی کاربران به محتوای وبسایتها را مدیریت کند. وقتی شما در مرورگر خود وارد آدرسی میشوید، در واقع درخواستی به وب سرور ارسال میکنید و این وب سرور است که درخواست شما را پردازش کرده و صفحههای وب را به شما نمایش میدهد.
وب سرور با استفاده از پروتکلهای HTTP یا HTTPS درخواستهای کاربران را از مرورگر دریافت کرده و پاسخ مناسب را ارسال میکند. این پاسخها میتواند شامل صفحات وب HTML، فایلهای CSS، جاوا اسکریپت، تصاویر، ویدئوها و دادههای مختلف باشد. در صورت بروز خطا، وب سرور پیغامهایی مانند خطای ۴۰۴ (صفحه پیدا نشد) را به کاربر نشان میدهد.
وب سرورها، به زبان ساده، کار نمایش وبسایتها را انجام میدهند. اما وظایف آنها محدود به این نیست. وب سرور علاوهبر پروتکلهای HTTP و HTTPS، از پروتکلهای دیگری مثل SMTP برای ارسال ایمیل و FTP برای انتقال و ذخیرهسازی فایلها نیز پشتیبانی میکند.
IIS چطور درخواستهای کاربران را پردازش میکند؟
وب سرورهای معمولی معمولا از دو مدل پردازش درخواست استفاده میکنند:
- مدل تک رشتهای (Single-Thread)
- ایجاد یک رشته جدید برای هر درخواست (Thread-Per-Request)
وب سرور IIS از مدل Thread-Per-Request استفاده میکند، به این معنی که برای هر درخواست جدید، یک رشته جدید ایجاد میشود. این فرآیند معمولاً از یک Thread Pool استفاده میکند که برای هر درخواست یک رشته مستقل تخصیص میدهد.
در این مدل، ارتباط درخواست و پاسخ بین کاربر و وب سرور بهصورت ساده و سریع انجام میشود. به عبارت دیگر، زمانی که کاربر یک درخواست از طریق مرورگر ارسال میکند، وب سرور بهسرعت پاسخ مربوطه را ارسال میکند. این فرآیند از طریق پروتکلهای HTTP یا HTTPS انجام میشود که به ترتیب معمولی و امنترین راههای انتقال دادهها بین سرویسدهنده و سرویسگیرنده هستند.
یکی از ویژگیهای برجسته IIS این است که برای پردازش درخواستها از یک معماری دو لایه بهره میبرد که شامل دو بخش اصلی به نامهای Kernel Mode و User Mode است. این معماری به IIS اجازه میدهد تا پردازش درخواستها را بهصورت بهینه و با عملکرد بالا انجام دهد.
Kernel Mode چیست و چه کاربردی دارد؟
زمانی که اجزای سیستمعامل در حالت کرنل (Kernel Mode) اجرا میشوند، تمام کدها در یک فضای آدرس مجازی مشترک قرار میگیرند. این بدان معناست که اگر یکی از درایوها در حالت کرنل به اشتباه دادهای را در آدرس نادرستی بنویسد، ممکن است دادههای سایر درایوها را تحت تأثیر قرار دهد و به خطر بیفتد. این مسأله میتواند منجر به مشکلات جدی مانند خرابی کامل سیستمعامل شود. به همین دلیل، اجرای درایوها در حالت کرنل باید با دقت و مراقبت فراوان انجام شود.
Kernel Mode معمولاً برای فرایندهایی استفاده میشود که نیاز به دسترسی سطح پایین و بسیار قابل اعتماد دارند. از آنجایی که خرابی در این حالت میتواند به سیستم آسیبهای جدی وارد کند، این حالت عمدتاً برای فرایندهایی که توانایی تحمل خرابی ندارند، مورد استفاده قرار میگیرد. برای مثال، در IIS، فایلهای مهم مانند HTTP.SYS در این حالت اجرا میشوند که به عنوان بخش اصلی در پردازش درخواستهای HTTP عمل میکنند.
این ویژگی به IIS اجازه میدهد تا با سرعت و دقت بالا درخواستها را پردازش کند، اما خطرات موجود در آن نیز باید مدنظر قرار گیرد. بهطور کلی، Kernel Mode فضایی است که به اجزای حیاتی سیستمعامل دسترسی مستقیم به منابع سختافزاری میدهد و این دسترسی میتواند در صورت بروز خطا به مشکلات جدی منجر شود.
📍مطالعه بیشتر: نحوه نصب وردپرس با LEMP روی سرور مجازی اوبونتو Ubuntu
User Mode چیست و چه کاربردی دارد؟
حالت User Mode در مقایسه با Kernel Mode محدودتر است و امنیت بالاتری را برای برنامهها فراهم میآورد. در این حالت، کدهای اجرایی نمیتوانند به طور مستقیم به سختافزار یا حافظههای مرجع سیستم دسترسی پیدا کنند. این ویژگی باعث میشود که محیطی ایمنتر برای اجرای برنامهها ایجاد شود، زیرا هر برنامه به طور مستقل در یک فضای آدرس مجازی خصوصی اجرا میشود.
در این حالت، وقتی یک برنامه اجرا میشود، ویندوز برای آن فرایندی جداگانه ایجاد میکند که فضای آدرس مجازی اختصاصی دارد و نمیتواند دادههای سایر درایوها را تغییر دهد. این به این معناست که در صورت بروز خطا در یکی از برنامهها، دیگر برنامهها تحت تاثیر قرار نمیگیرند و از مشکلات آن آسیب نمیبینند. به عبارت دیگر، اشتباهات در User Mode به اندازه خرابیها در Kernel Mode ویرانکننده نیستند.
کدهای اجرایی در حالت User Mode به APIها دستور میدهند تا با تجهیزات سختافزاری و حافظه ارتباط برقرار کنند. این روش ارتباطی امنتر از حالت کرنل است و به سیستمعامل این امکان را میدهد که برنامهها به صورت جداگانه و ایمن اجرا شوند. در نتیجه، این مدل پردازش باعث میشود که برنامهها از آسیبهای ناخواسته محافظت شده و در نهایت، سیستم عملکرد بهتری داشته باشد.

در IIS درخواستها چگونه پردازش میشوند؟
پردازش درخواستها در IIS با استفاده از Kernel Mode و User Mode بهصورت هماهنگ انجام میشود. زمانی که یک کاربر URL یک وبسایت را در مرورگر وارد میکند، در واقع درخواستی به HTTP.SYS ارسال میشود. HTTP.SYS مسئول دریافت این درخواستها است و آنها را به سمت مرحله بعدی هدایت میکند. در واقع، درخواستها از این مرحله به User Mode و به Web Admin Services (WAS) ارسال میشوند.
در سطح User Mode، WAS این درخواستها را از HTTP.SYS دریافت کرده و آنها را به Application Pool مربوطه ارسال میکند. اینجا است که پردازشهای داخلی آغاز میشود. وقتی Application Pool درخواست را دریافت میکند، یک فیلتر ISAPI از طریق فرایند IIS Worker یا همان w3wp.exe بارگذاری میشود. اگر درخواست مربوط به صفحهای از نوع ASPX باشد، فرایند HttpRuntime.ProcessRequest شروع به کار میکند و گاهی اوقات aspnet_isapi.dll نیز برای پردازش درخواست بارگذاری میشود.
در این مرحله، HttpRuntime مجموعهای از اشیاء HttpApplication را ایجاد میکند که از طریق HTTP به درخواستهای کاربر پاسخ میدهند. این اشیاء بهطور مداوم با ماژولهای HTTP در تعامل هستند تا زمانیکه صفحه ASP.NET درخواست خود را از HTTP Handler دریافت کند. در نهایت، هنگامیکه درخواست مسیر خود را تکمیل کرد، بارگذاری صفحه آغاز میشود و محتویات آن به کاربر ارسال میگردد.
این فرایند پیچیده اما بسیار کارآمد، به IIS این امکان را میدهد که درخواستها را با سرعت بالا پردازش کرده و پاسخهای دقیق و سریع به کاربران ارائه دهد.
انواع مدل های IIS
مایکروسافت در طول سالها نسخههای مختلفی از وب سرور IIS را ارائه کرده است که هرکدام ویژگیها و بهبودهای خاص خود را داشتهاند. از اولین نسخهها که در سیستمعاملهای قدیمیتر مانند ویندوز NT شروع به کار کرد تا نسخههای پیشرفتهتر که امکانات جدیدی مانند پشتیبانی از IPv6، TLS 1.2، و HTTP/2 را به ارمغان آوردند. در اینجا نگاهی به نسخههای اصلی IIS و ویژگیهای برجسته هرکدام داریم:
- IIS 1.0 تا IIS 4.0: این نسخهها در ابتدا برای ویندوز NT و ویندوز NT سرور طراحی شدند و با وجود محدودیتهای مختلف، پایهگذار شروع وب سرورهای مایکروسافت بودند.
- IIS 5.0: در ویندوز ۲۰۰۰ معرفی شد و به عنوان اولین نسخه که از قابلیتهای داتنت پشتیبانی میکرد، تحول بزرگی در ارائه خدمات وب ایجاد کرد.
- IIS 6.0: با ویندوز سرور ۲۰۰۳ عرضه شد و پشتیبانی از IPv6 را اضافه کرد، به علاوه بهبودهایی در امنیت و عملکرد آن ایجاد شد.
- IIS 7.0: همراه با ویندوز ویستا، این نسخه بهطور چشمگیری امنیت و پشتیبانی از فریمورک داتنت را افزایش داد.
- IIS 7.5: برای ویندوز ۷ عرضه شد و از TLS 1.1 و TLS 1.2 پشتیبانی میکند.
- IIS 8.0: نسخهای بود که با ویندوز ۸ و ویندوز سرور ۲۰۱۲ معرفی شد. این نسخه پشتیبانی از SNI را به همراه داشت که امکان میزبانی چندین وبسایت روی یک سرور با استفاده از یک آدرس IP را فراهم کرد.
- IIS 8.5: برای ویندوز ۸.۱ و ویندوز سرور ۲۰۱۲ آر۲ ارائه شد و ویژگیهای جدیدی مانند ابزار فعالسازی وبسایت داینامیک و قابلیتهای لاگین اضافی را به همراه داشت.
- IIS 10.0: در ویندوز ۱۰ و ویندوز سرور ۲۰۱۶ معرفی شد و از ویژگیهای پیشرفتهتری مانند HTTP/2 و Windows PowerShell 5.0 پشتیبانی میکند.
🔷بیشتر بخوانید: چگونه یک سرور ماینکرفت (Minecraft) را بسازیم؟
مهمترین ویژگیهای وب سرور IIS چیست؟
وب سرور IIS به دلیل ویژگیهای متنوع و توانمندیهای ویژهای که دارد، یکی از محبوبترین و کاربردیترین انتخابها برای میزبانی وبسایتها و برنامههای کاربردی است. این وب سرور نه تنها برای میزبانی ASP.NET، بلکه برای مدیریت برنامههای پیچیدهتری مانند WCF و PHP نیز بهکار میرود. در ادامه، به برخی از ویژگیهای برجسته آن اشاره میکنیم که آن را از دیگر وب سرورها متمایز میکند:
Application Pools
در IIS، Application Pools نقش بسیار مهمی ایفا میکنند. این مجموعهها به وب سرور این امکان را میدهند که برای هر برنامه، فرایندهای کارگر جداگانهای راهاندازی کند. این طراحی باعث میشود که عملکرد و امنیت برنامهها بهطور مستقل از یکدیگر مدیریت شوند. از آنجایی که در نسخههای جدیدتر از حالت یکپارچه استفاده میشود، ASP.NET بهطور مستقیم بخشی از خط لوله درخواست IIS خواهد بود.
احراز هویت پیشرفته
IIS انواع مختلفی از گزینههای احراز هویت را ارائه میدهد، از جمله Windows Authentication، Basic Authentication و ASP.NET Authentication. این ویژگی بهویژه در محیطهایی که از Windows Active Directory استفاده میکنند، بسیار مفید است، زیرا میتوان بهطور خودکار از حسابهای کاربری دامنه برای ورود به برنامههای وب استفاده کرد.
امنیت قوی IIS
با داشتن ابزارهای امنیتی متنوع، امکان مدیریت و محافظت از سرور را فراهم میآورد. این ویژگیها شامل مدیریت گواهیهای TLS، پشتیبانی از HTTPS و SFTP، و فیلتر کردن درخواستها برای مسدودسازی ترافیک ناخواسته میشود. علاوه بر این، میتوان قوانین دسترسی را برای درخواستهای مختلف تنظیم کرده و همچنین گزارشهای امنیتی دقیق از درخواستها و عملیات FTP دریافت کرد.
مدیریت به صورت ریموت
IIS این امکان را برای مدیران فراهم میآورد که از راه دور و از طریق ابزارهایی مانند PowerShell یا CLI، سرور را بهصورت مؤثر مدیریت کنند. این قابلیت، که انعطافپذیری و کنترل بیشتری بر فرآیندهای مدیریتی میدهد، برای بسیاری از مدیران فناوری اطلاعات ارزشمند است.
در نهایت، IIS بهعنوان یک وب سرور بسیار قدرتمند و انعطافپذیر شناخته میشود. با توانایی گسترش و پشتیبانی از پلتفرمهای مختلف، میتواند به راحتی برای میزبانی وبسایتها و برنامههای کاربردی پیچیده استفاده شود و محیطی پایدار و امن را برای خدمات وب فراهم کند.
🔶مطالعه بیشتر: نحوه نصب و ایمن سازی phpMyAdmin در سرور مجازی اوبونتو Ubuntu
مزایا و معایب وب سرور IIS چیست؟
در ادامه با مزایا و معایب وب سرور ISS آشنا خواهید شد.
مزایا وب سرور IIS
وب سرور IIS با وجود قدمت و محبوبیت بالای خود، همچنان یکی از گزینههای اصلی برای میزبانی وبسایتها و اپلیکیشنها است. این وب سرور به دلیل ویژگیهایی مانند امنیت بالا، مدیریت آسان از طریق CLI یا PowerShell، و قابلیتهای احراز هویت پیشرفته (مانند Windows Auth و Basic Auth) محبوب است.
یکی از ویژگیهای کلیدی IIS، Application Pools است که امکان جداسازی و مدیریت برنامههای وب را با امنیت بالا فراهم میکند. همچنین، مقیاسپذیری و قابلیت اطمینان بالا به IIS این امکان را میدهد که برای وبسایتهای پربازدید بهطور مؤثر استفاده شود. IIS همچنین با تعادل بار و مسیریابی درخواستها (ARR)، ترافیک ورودی را بهطور هوشمند بین چندین سرور IIS توزیع میکند تا عملکرد بهینهای فراهم کند.
معایب وب سرور IIS
با وجود مزایای بسیاری که IIS دارد، نقاط ضعفی نیز وجود دارد که باید به آنها توجه کرد. یکی از بزرگترین چالشها، سرعت پایین و مصرف بیشتر منابع سرور است. در مقایسه با وب سرورهای سریع و سبک مانند آپاچی یا Nginx، IIS ممکن است کندتر باشد. همچنین، نقاط ضعف امنیتی در IIS وجود دارد که ممکن است آن را در معرض تهدیدات قرار دهد، هرچند مایکروسافت راهکارهایی برای رفع آنها ارائه داده است. به علاوه، برخلاف وب سرورهای رایگان و متنباز مانند آپاچی، IIS برای استفاده از قابلیتهای پیشرفته نیاز به پرداخت هزینه دارد. با این حال، برای وبسایتهای مبتنیبر ASP و .NET، IIS همچنان انتخابی ایدهآل است.

سوالات متداول:
در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جوابهای کوتاه اما مفیدی دادهایم که با استفاده از آن میتوانید به سوال خود پاسخ صحیحی را بدهید.
IIS چیست و چگونه کار میکند؟
IIS (Internet Information Services) یک وب سرور مایکروسافت است که برای میزبانی وبسایتها و برنامههای وب طراحی شده و از فناوریهای مختلف مانند ASP.NET، PHP و غیره پشتیبانی میکند.
چه نسخههایی از IIS برای سیستمعاملهای مختلف مایکروسافت وجود دارد؟
IIS در نسخههای مختلفی ارائه شده است که شامل نسخههای ۶.۰ تا ۱۰.۰ میشود. این نسخهها با سیستمعاملهای مختلف مانند ویندوز سرور ۲۰۰۳ تا ۲۰۱۹ سازگاری دارند.
چگونه IIS میتواند امنیت وبسایت را تامین کند؟
IIS ویژگیهای امنیتی مانند احراز هویت Windows Auth، پشتیبانی از پروتکل HTTPS، ابزارهای فیلتر درخواست و مدیریت گواهیهای TLS را برای افزایش امنیت ارائه میدهد.
آیا IIS از سیستمعاملهای غیر ویندوزی پشتیبانی میکند؟
IIS بهطور اصلی برای سیستمعاملهای ویندوز طراحی شده است و بهترین عملکرد را در این سیستمها دارد. استفاده از IIS در سیستمهای غیر ویندوزی ممکن است پایدار و ایمن نباشد.
مزایای استفاده از IIS در مقایسه با وب سرورهای دیگر چیست؟
IIS ویژگیهای منحصربهفردی مانند مقیاسپذیری بالا، قابلیت مدیریت از راه دور، و امنیت قوی دارد. همچنین برای وبسایتهای مبتنی بر ASP.NET گزینه بسیار مناسبی است.
📌برای ادامه مطالعه و یادگیری: رک سرور چیست؟ (راهنمای جامع + نکات مهم)
جمع بندی
وب سرور IIS یکی از قدرتمند و امن ترین ابزارهای ماکروسافت است که برای میزبانی وبسایتها و برنامهها کاربرد دارد. با پشتیبانی از ASP.NET , PHP امکانات زیادی را برای مدیریت و بهینه سازی عملکرد وبسایت ها ارائه میدهد. از ویژگیهای برجسته IIS میتوان به امنیت بالا، مدیریت آسان و ریموت، پشتیبانی از مقیاس پذیری و قابلیت تنظیم Application Pool برای تفکیک برنامههای کاربردی اشاره کرد. با این حال، همانطور که هر سیستمی مزایا و معایب خاص خود را دارد، IIS هم برخی محدودیتهایی را مانند سرعت نسبتا پایین در مقایسه با وب سرورهای دیگر را دارد. اما همچنان برای بسیاری از سایتهایی که مبتنی بر ASP.NET هستند گزینه مناسبی است.