IIS 101- The basic
IIS : Internet Information Service
Internet information service aka IIS is a webserver provided by Microsoft that runs on windows system. As any web server it serves the HTML pages or files through request from client. It supports all the common protocol like HTTP1, HTTP2, FTP, SMTP etc.
It has simple versioning systems starting from 1 to 10 😁.
- IIS server 1.0 supports Windows NT 3.51.
- IIS server 2.0 supports Windows NT 4.0.
- IIS server 3.0 supports Service pack 2 of Windows NT 4.0.
- IIS server 4.0 supports Option pack for Windows NT 4.0.
- IIS server 5.0 supports Windows 2000.
- IIS server 5.1 supports Windows XP Professional.
- IIS server 6.0 supports Windows Server 2003 & Windows XP Professional.
- IIS server 7.0 supports Windows Vista & Windows Server 2008.
- IIS server 7.5 supports Windows 7 & Windows Server 2008 R2.
- IIS server 8.0 supports Windows Server 2012 & Windows 8.
- IIS server 8.5 supports Windows Server 2012 R2 & Windows 8.1.
- IIS server 10 supports Windows Server 2016 & Windows 10.
If you are reading this and have no idea about what the hell is web server and what hell is this gibberish, nothing to worry you can head start from here
The most common question about any web server is how it process the http request and response. So in IIS there is a separate life cycle for request and response.
Request/Response Processing Flows in IIS :
- Client requested intercepted by HTTP.sys (Http Listener).
- HTTP.sys makes contact with WAS (Windows Activation Service).
- WAS requests configuration information XML file (ApplicationHost.config).
- Configuration information sent to WWW Service.
- WWW service use configuration information to configure HTTP.sys.
- Configured HTTP.sys contacted WAS for worker processes to start.
- WAS starts worker process and pass it the application pool to continue the request processing.
- All the responses are sent back to HTTP.sys when they are done processing.
- HTTP.sys returned the responses to the client.
Some buzz word like: HTTP.sys, WAS, WWW, Application Pool. What are those even means?
Let me explain with some short introduction of all this.
HTTP.sys aka The Mighty Protocol Listener: HTTP.sys (Hyper text transfer protocol stack) is a kernel mode driver that is part of the networking subsystem of windows operating system as it is responsible for passing all the http request from the network to IIS and then returned the responses back to where it originated.
WAS aka The Configuration Utility: WAS (Windows process activation service) manages all of the application pool configuration and worker process so that it can be reuse for HTTP and non HTTP sites. WAS and WWW service is a core part of the IIS as it is depend on each other through out the process but there is catch to it. You can bypass WAS without WWW if you don't need HTTP functionality.
WWW aka The Protocol Configuration Utility: Before IIS version 7.0 WWW did a lot of things including the WAS part also. But After IIS 7 the duty has been divided into multiple services. So WWW (World wide Web publishing) service has only thing to do, it just updates the HTTP listener (HTTP.sys). It is primarily responsible for configuring and updating HTTP.sys when any configuration changes detected as well as notifying the WAS if any request enters the request queue.
Application Pool aka The ancient container for Web sites: As it says in the title, the sole purpose is to isolate one or more application into their own processes.
Related links will be given below for further study purpose:
- stackify.com/iis-web-server itprotoday.com/security/microsoft-says-russ..
Have a nice mode 😁