What is IIS

IIS or Internet Information Services is actually a multi-faceted and layered subject that has a lot of technical information around it. This guide is compiled with the aim of helping newbies to learn the concept of IIS. So we will explain how IIS works and how to install it.

What is IIS?

You have probably come across terms like IIS web server, IIS server, and IIS server online in your search for the right tools. To understand IIS you must first understand the basics of how it works.

IIS is a web server for Microsoft’s .NET platform and is also known as Windows Web Server. Although it can be run on Linux and Mac using a tool called Mono, it won’t be very stable or reliable because IIS is designed for Microsoft .NET and the Windows IIS implementation is more reliable.

IIS web server is suitable for websites that were designed with ASP programming languages; On the other hand, there are Nginx and Apache web servers which are under Linux and designed for PHP programming language.

What is a web server and what does it do?

A web server is a computer software that handles requests through HTTP, a network protocol created to distribute web content; or its secure variant HTTPS; Accepts. The main task of a web server is to display website content by storing, processing and delivering web pages to users. In addition to HTTP, web servers also support SMTP (Simple Mail Transfer Protocol) and FTP (File Transfer Protocol), which are used for email, file transfer, and storage.

What does IIS do?

As a web server, IIS hosts your programs and files, and when your domain is entered in a browser, the files are read and processed from the web server. Basically, you can think of it as an intermediary that is responsible for processing application messages from default TCP ports. For example, 443 is the default port for HTTPS traffic, while 80 is the default port for HTTP traffic.

Traffic directed to an IIS web server is sometimes referred to as a web request. By default, as described above, traffic is received through ports 443 and 80, and then this incoming traffic, or web request, can be processed by the IIS web server in several ways.

How does IIS process requests?

A typical web server can use two main processing models:

It can process requests based on a single-threaded model.

Create a new string for each separate request.

The thread-per-request system is a model used by IIS that basically accesses a thread pool and gets a new thread for each request.

Requests are generally processed based on a simple request-response. In this way, the customer sends a request and a response is sent to him. Usually, the Internet connection between the client and the web server is made by the HTTP protocol.

IIS uses its own processing engine and processing architecture with two layers or modes:

  1. Kernel Mode
  2. User Mode

What is Kernel Mode?

When kernel mode is in use, the code can execute any command and gain full access to the attached equipment. This mode is mainly used when a process is reliable and mostly invulnerable. Any failure in the kernel mode can cause a lot of damage to the system itself. kernel mode is where you find HTTP.SYS.

What is User Mode?

User mode is a little more limited than kernel mode. With this mode, the executed codes cannot access the hardware or reference memory, and as a result, a safer working environment is provided to you.

If you make a mistake, the consequences are not nearly as devastating as a kernel-mode error. Code executed in user mode instructs APIs to communicate with devices and memory references, which is much more secure than kernel mode.

Request processing operations in IIS

The purpose of Kernel Mode is to use HTTP.SYS to accept incoming client requests and refer them to the application pool. This process starts when the customer or end user enters the website URL. This request is basically a request to access the HTTP.SYS page.

When the application pool receives the request from HTTP.SYS, the ISAPI filter is loaded by the IIS worker process or w3wp.exe. If it’s an ASPX page, the worker process will open HttpRuntime.ProcessRequest and sometimes aspnet_isapi.dll as well.

HttpRuntime creates a collection of HttpApplication objects that are sent over HTTP and interact with HTTP modules continuously until the ASP.NET page makes a request from the HTTP handler. Once the request completes the HTTP route, the page load begins.

Available IIS versions

There are several versions of IIS available, but versions prior to IIS 6 are not suitable for commercial use, so we will only discuss versions that came after that.

IIS 6

We’ll start with IIS 6, or Windows Server 2003, which is the oldest version we’ll cover. This version added support for IPv6, but there were no further updates to the previous version. From the point of view of IIS, this is the minimum required to function in a fast enterprise environment.

IIS 7

IIS 7 is the next version of this web server. This version is compatible with Windows Vista and has increased security measures and support for the .NET Framework.

IIS 7.5

IIS 7.5 is available on Windows 7 with support for TLS 1.1 and 1.2.

IIS 8

IIS 8 or Windows Web Server 2012 includes SNI support. It also has a General Support offer that is available until 2023.

IIS 8.5

IIS 8.5 is available for Windows 8.1 and includes additional login capabilities as well as a dynamic site activation tool.

IIS 10

IIS 10 supports HTTP/2 and Windows PowerShell 5.0.

IIS web server features

IIS web server is very popular and widely used. This server offers a wide range of useful features and is considered an effective tool for many IT managers. Typically, IIS is used to host ASP.NET websites and applications, although it is also available for use as a server with FTP access and for hosting WCF services, and can be extended to host other platforms such as PHP.

What is IIS

 

Key features of IIS

  1. Application Pools

In fact, Application Pools form an important part of the IIS server system. An application pool can have no or many IIS worker processes running. These worker processes are responsible for executing application instances.

In IIS, some applications are created by default. Take for example v2.0 and v4.0, which are probably in classic or integrated mode. If a pool is integrated, ASP.NET is part of the IIS request pipeline, but if it is classic, there is a pipeline for IIS and a separate pipeline for ASP.NET.

In general, integrated mode is more commonly used, at least since IIS 8 was released.

  1. Authentication

The IIS server has authentication options, including Windows auth, Basic, and ASP.NET. If you use Windows Active Directory, Windows auth is very useful because it allows you to automatically sign in to web applications through your domain account.

  1. IIS security

IIS has security features, such as:

  • utilities for managing TLS certificates;
  • Connect so that SFTP and HTTPS can be enabled;
  • Ability to filter requests so you can effectively whitelist or blacklist traffic;
  • You can implement access rules and log requests and access a set of FTP security operations;
  1. Remote management

Remote management tools allow IIS to be easily managed through the CLI or through PowerShell. You can create the script yourself, which some IT managers value because it offers flexibility and ultimate control.

In general, IIS is a versatile and highly customizable web server. If you extend it, it can have many more uses than just hosting ASP.NET applications. By extending it, it is possible to create a stable, flexible and effective Windows IIS server.

IIS vs Apache

If you host a variety of websites, you’re probably using Apache or IIS. These two web servers are the most used compared to their competitors and there are many differences as to which one is the better option. But it’s important to understand the differences between IIS and Apache and have an unbiased view of their advantages.

Apache server

Apache is known as Apache HTTP Server. This server is open source and was created by the Apache Software Foundation. Therefore, like many open source applications, it is freely distributed and editable by users. Continuous user contributions and the possibility of editing by them means that the program is constantly being improved, which is one of the reasons for its popularity. As a result, its problems are easily solved and frequent updates are made.

A big advantage of Apache is that you can run it on any major operating system. Often used with Linux, it is combined with the PHP scripting language and the MySQL database to create what is commonly known as LAMP, a comprehensive web server solution.

Apache is a versatile tool. It supports common language interfaces including PHP, Tcl, Perl and Python and also has a range of authentication modules such as Mod_auth, Mod_access, Mod_auth_digest and Mod_digest. It also includes the following:

  • Support for SSL and Transport Layer Security (mod_ssl)
  • A proxy module (mod_proxy)
  • Custom log files (mod_log_config)
  • A URL rewrite (mod_rewrite)
  • Support for filtering (mod_include and mod_ext_filter)
  • Virtual hosting support
  • Web page compression, to minimize size over HTTP

Despite its impressive features, there are problems with Apache. The main problem of Apache is the quantitative value that prevails over the qualitative value; That is, there are a lot of features in Apache that are mostly unused. It is estimated that 9 out of 10 Apache users use only 10% of Apache applications regularly, and there are frequent complaints that Apache is not a fast application.

IIS server

IIS, also known as Microsoft IIS Server, is only available on the Windows operating system. However, it is free to use, which is a big plus. The only real drawback of IIS is that it is a Microsoft product, but that’s not necessarily a bad thing because with Microsoft backing, there is plenty of support and resources for IIS.

Since 2010, Microsoft IIS has seen major improvements that have led to a steady increase in its market share, growing from 21% in 2010 to 32% in 2014. This is an 11% growth in just four years and this is definitely a proof of the reliability of IIS. While Apache’s market share is declining and in the same period, Apache has faced a 17% decline in market share.

Between 2010 and 2014, Microsoft made significant improvements to IIS security. Like Apache, IIS uses external web extensions to run specific applications. These extensions include the following:

  • Application request routing
  • Media services
  • URL rewriting
  • FTP publishing

These features were implemented through plugins in IIS version 7.5.

Conclusion

In this article, we learned that although IIS Web Server offers less flexibility in terms of operating system, it has the significant advantages of Windows-based support and resources that make it the superior choice whether you like it or not. In any case, if you are looking for a reliable and comprehensive web server, we suggest that you choose IIS.

Another reason for the popularity of IIS is that it supports Microsoft products such as the .NET Framework and ASPX programming. For people whose sites depend on .NET or ASPX, IIS is probably a better choice.

Blog

    Leave a Reply

    Your email address will not be published. Required fields are marked *