SlideShare a Scribd company logo
“Understanding our IIS”
Contents
   Web Server
   Kernel & User mode
   IIS and it's main components
   Different Modes of Operations
   Request Processing
   Take Away
Web Server
•   The primary function of a web server is to
    deliver web pages on requests from clients using
    HTTP.
•   It can be referred as hardware(computer) or the
    software (computer application)
•   Hosts websites/web application to serve www.
•   Found embedded in devices like printers,
    routers, web-cams to serve local network
•   Able to map URL to a local file system resource
    (static requests) as well as internal or external
    program name (dynamic requests)
Kernel & User Mode
•   The executing code      •   The executing code
    has complete and            has no ability to
    unrestricted access         directly access
    to the underlying           hardware or
    hardware.                   reference memory.
•   Kernel mode is          •   Code running in user
    generally reserved          mode must delegate
    for the lowest-level,       to system APIs to
    most trusted                access hardware or
    functions of the            memory.
    operating system.
Kernel & User Mode
•   Crashes in kernel      •   Crashes in user mode
    mode are                   are always
    catastrophic; they         recoverable.
    will halt the entire
    PC.
                           •   Comparatively slow
•   Usually work faster,       as they have to ask
    because, as part of        the system the
    the system, it can         permission to use
    directly use all the       more memory or
    hardware resources         more CPU resources.
    it needs.
IIS & it's main components
•   Designed to provide secure, scalable solutions for
    creating and managing www sites and servers
•   We can publish information on intranets,
    extranets and the internet
•   Provides FTP, SMTP, Indexing and other services
•   Components:
     –   HTTP.sys
     –   Worker processes (W3wp.exe)
     –   ISAPI
     –   InetInfo.exe
     –   Application pools
HTTP.sys
•   Also known as “HTTP Protocol Stack” or “Http
    Listener Process”
•   Implemented as a kernel-mode device driver
•   core component to receive and serve HTTP
    requests and passing them off to the worker
    processes
•   When you create a Web site, IIS registers the site
    with HTTP.sys
•   Other than retrieving a stored response from its
    internal cache, HTTP.sys does not process the
    requests that it receives.
W3wp.exe
•   A worker process is user-mode code whose role is
    to process requests, such as processing requests
    to return a static page
•   The worker process is controlled by the WWW
    service
•   A worker process runs as an executable file
    named W3wp.exe
•   Worker processes also run application code, such
    as ASP.NET applications and XML Web services.
ISAPI
•   Internet Server Application Programming
    Interface, is an API developed to provide the
    application developers with a powerful way to
    extend the functionality of IIS
•   Extensions and Filters are the two types of
    applications that can be developed using ISAPI
•   ISAPI extensions are true applications that run on
    IIS and have access to all of the functionality
    provided by IIS
ISAPI Application
Mapping are implemented as DLLs that
• ISAPI extensions
    are loaded into a process that is controlled by IIS
•   Like ASP and HTML pages, IIS uses the virtual
    location of the DLL file in the file system to map
    the ISAPI extension
•   ASP.Net functionality is contained in an ISAPI
    extension called aspnet_isapi.dll
•   Any file that is requested from the IIS server that
    ends in “.aspx” is mapped to aspnet_isapi.dll
    which is assigned to process the file before
    displaying its output in the client’s window
InetInfo.exe
•   A user-mode component that hosts the IIS
    metabase and that also hosts the non-Web
    services like the FTP, SMTP etc
•   Used to manage ISAPI applications that run
    within the IIS process context
•   The services that run in Inetinfo.exe run as
    dynamic-link libraries (DLLs) under the Local
    System account
•   In IIS5.0 or IIS6.0 runs in IIS5.0 isolation mode
    >Inetinfo.exe hosts the worker process
DLLHost.exe (IIS 5.0)
•   Manage out-of-process ISAPI applications
•   Any pooled ISAPI applications running on the
    server run within the context of a single instance
    of DLLHost.exe
•   The dllhost.exe process goes by the name COM
    Surrogate, which is an general purpose
    executable to host dlls out of process
•   In case of any unhandled error which may crash
    the COM Surrogate process, leaves the
    originating process intact.
Application Pools (IIS
             6.0)
•   Group of Web Applications and Web Sites are
    called Application Pools
•   Every application within an application pool
    shares the same worker process
•   The worker process(w3wp.exe) that services one
    application pool is separated from the worker
    process that services another
•   Each separate worker process provides a process
    boundary so each application pool is separated
    by these process boundaries
IIS Different Modes of
           Operations
•   IIS 5.0 isolation mode
(InetInfo.exe or DLLHost.exe takes the ownership for
     request processing)

•   IIS 6.0 worker process isolation mode
(worker process W3wp.exe takes the ownership for
    request processing)
IIS 5.0 Isolation Mode
file:///C:/Documents and Settings/Admin/My Documents/My Pictures/iis5_isolation_mode.jpg
Request Processing
•   A request arrives. If the requested application is running in-
    process, then Inetinfo.exe takes the request. If not, then
    DLLHost.exe takes the request.
•   Inetinfo.exe or DLLHost.exe determines if the request is valid.
    If the request is not valid, it sends a code for an invalid request
    back to the client.
•   If the request is valid, Inetinfo.exe or DLLHost.exe checks to
    see if the response is located in the IIS cache.
•   If the response is in the cache, it is returned immediately.
•   If the response is not cached, Inetinfo.exe or DLLHost.exe
    processes the request, by evaluating the URL to determine if
    the request is for static (HTML), or dynamic content (ASP)
•   The response is sent back to the client and the request is
    logged, if IIS is configured to do so.
IIS 6.0 Isolation Mode
file:///C:/Documents and Settings/Admin/My Documents/My Pictures/iis6_isolation_Mode.jpg
Request Processing
•   A request arrives at HTTP.sys.
•   HTTP.sys determines if the request is valid. If the request is not
    valid, it sends a code for an invalid request back to the client.
•   If the request is valid, HTTP.sys checks to see if the request is
    for static content (HTML) because static content can be served
    immediately.
•   If the request is for dynamic content, HTTP.sys checks to see if
    the response is located in its “kernel-mode cache”.
•   If the response is in the cache, HTTP.sys returns the response
    immediately.
•   If the response is not cached, HTTP.sys determines the correct
    “request queue”, and places the request in that queue.
Request
Processing(contd.)
•   If the queue has no worker processes assigned to it, HTTP.sys
    signals the WWW service to start one.
•   The worker process pulls the request from the queue and
    processes the request, evaluating the URL to determine the
    type of request (ASP, ISAPI, or CGI).
•   The worker process sends the response back to HTTP.sys.
•   HTTP.sys sends the response back to the client and logs the
    request, if configured to do so.
Take Away

More Related Content

PPT
Understanding iis part1
PPT
Understanding iis part2
DOCX
IIS interview questions and answers
PPT
IIS 7: The Administrator’s Guide
PPTX
IIS Always-On Services
PPT
IIS-Settings
PPTX
ASP.NET Request Processing Internals
PPT
INTRODUCTION TO IIS
Understanding iis part1
Understanding iis part2
IIS interview questions and answers
IIS 7: The Administrator’s Guide
IIS Always-On Services
IIS-Settings
ASP.NET Request Processing Internals
INTRODUCTION TO IIS

What's hot (18)

PPT
Understanding IIS
PDF
Build sites on iis
PPTX
IIS7 For Non IIS PFEs
PPT
introasp_net-7364068.ppt
PDF
CNIT 129S: 10: Attacking Back-End Components
PPT
introaspnet-3030384.ppt
PDF
WebLogic on ODA - Oracle Open World 2013
PDF
IIS 7.0 Architecture And Integration With Asp.Net
PPTX
Apex world 2018 continuously delivering APEX
PDF
Laravel and CodeIgniter: pros & cons
PPTX
High Volume Payments using Mule
PPTX
Operational Security 3.7
PPT
Iis it-slideshares.blogspot.com
PDF
Restful风格ž„web服务架构
PPTX
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
PDF
IBM InterConnect 2015 - IIB in the Cloud
Understanding IIS
Build sites on iis
IIS7 For Non IIS PFEs
introasp_net-7364068.ppt
CNIT 129S: 10: Attacking Back-End Components
introaspnet-3030384.ppt
WebLogic on ODA - Oracle Open World 2013
IIS 7.0 Architecture And Integration With Asp.Net
Apex world 2018 continuously delivering APEX
Laravel and CodeIgniter: pros & cons
High Volume Payments using Mule
Operational Security 3.7
Iis it-slideshares.blogspot.com
Restful风格ž„web服务架构
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
IBM InterConnect 2015 - IIB in the Cloud
Ad

Similar to Understandingiis 120715123909-phpapp01 (20)

PDF
Web Server Hardening
PPTX
10 tips to make your ASP.NET Apps Faster
PPT
Windows internals
PPTX
Add a web server
PPTX
Application Virtualization overview - BayCUG
PDF
CNIT 121: 10 Enterprise Services
PDF
CNIT 152: 10 Enterprise Services
PDF
AAI-2016 WebSphere Application Server Installation and Maintenance in the Ent...
PPTX
Debugging the Web with Fiddler
PDF
SharePoint Saturday San Antonio: SharePoint 2010 Performance
PPTX
IIS request process
PPTX
06.m3 cms set-upwebserver
PPTX
SharePoint 2013 - What's New
PPT
Network Implementation and Support Lesson 13 Web Resouces
PPTX
IIS_Presentation.pptxlllllllllllllllllllllllllllllllllllllllllllllll
PDF
Web server
PDF
SharePoint Saturday The Conference 2011 - SP2010 Performance
PDF
How to Harden the Security of Your .NET Website
 
PPTX
Application hardening, Secure Socket Layer(SSL) & Secure Electronic Transacti...
PPTX
Application hardening
Web Server Hardening
10 tips to make your ASP.NET Apps Faster
Windows internals
Add a web server
Application Virtualization overview - BayCUG
CNIT 121: 10 Enterprise Services
CNIT 152: 10 Enterprise Services
AAI-2016 WebSphere Application Server Installation and Maintenance in the Ent...
Debugging the Web with Fiddler
SharePoint Saturday San Antonio: SharePoint 2010 Performance
IIS request process
06.m3 cms set-upwebserver
SharePoint 2013 - What's New
Network Implementation and Support Lesson 13 Web Resouces
IIS_Presentation.pptxlllllllllllllllllllllllllllllllllllllllllllllll
Web server
SharePoint Saturday The Conference 2011 - SP2010 Performance
How to Harden the Security of Your .NET Website
 
Application hardening, Secure Socket Layer(SSL) & Secure Electronic Transacti...
Application hardening
Ad

Recently uploaded (20)

PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
1. Introduction to Computer Programming.pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
August Patch Tuesday
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
A Presentation on Artificial Intelligence
PPTX
Tartificialntelligence_presentation.pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Mushroom cultivation and it's methods.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Hindi spoken digit analysis for native and non-native speakers
Zenith AI: Advanced Artificial Intelligence
A comparative study of natural language inference in Swahili using monolingua...
1. Introduction to Computer Programming.pptx
OMC Textile Division Presentation 2021.pptx
WOOl fibre morphology and structure.pdf for textiles
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Group 1 Presentation -Planning and Decision Making .pptx
Unlocking AI with Model Context Protocol (MCP)
August Patch Tuesday
Univ-Connecticut-ChatGPT-Presentaion.pdf
A Presentation on Artificial Intelligence
Tartificialntelligence_presentation.pptx
1 - Historical Antecedents, Social Consideration.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Mushroom cultivation and it's methods.pdf

Understandingiis 120715123909-phpapp01

  • 2. Contents  Web Server  Kernel & User mode  IIS and it's main components  Different Modes of Operations  Request Processing  Take Away
  • 3. Web Server • The primary function of a web server is to deliver web pages on requests from clients using HTTP. • It can be referred as hardware(computer) or the software (computer application) • Hosts websites/web application to serve www. • Found embedded in devices like printers, routers, web-cams to serve local network • Able to map URL to a local file system resource (static requests) as well as internal or external program name (dynamic requests)
  • 4. Kernel & User Mode • The executing code • The executing code has complete and has no ability to unrestricted access directly access to the underlying hardware or hardware. reference memory. • Kernel mode is • Code running in user generally reserved mode must delegate for the lowest-level, to system APIs to most trusted access hardware or functions of the memory. operating system.
  • 5. Kernel & User Mode • Crashes in kernel • Crashes in user mode mode are are always catastrophic; they recoverable. will halt the entire PC. • Comparatively slow • Usually work faster, as they have to ask because, as part of the system the the system, it can permission to use directly use all the more memory or hardware resources more CPU resources. it needs.
  • 6. IIS & it's main components • Designed to provide secure, scalable solutions for creating and managing www sites and servers • We can publish information on intranets, extranets and the internet • Provides FTP, SMTP, Indexing and other services • Components: – HTTP.sys – Worker processes (W3wp.exe) – ISAPI – InetInfo.exe – Application pools
  • 7. HTTP.sys • Also known as “HTTP Protocol Stack” or “Http Listener Process” • Implemented as a kernel-mode device driver • core component to receive and serve HTTP requests and passing them off to the worker processes • When you create a Web site, IIS registers the site with HTTP.sys • Other than retrieving a stored response from its internal cache, HTTP.sys does not process the requests that it receives.
  • 8. W3wp.exe • A worker process is user-mode code whose role is to process requests, such as processing requests to return a static page • The worker process is controlled by the WWW service • A worker process runs as an executable file named W3wp.exe • Worker processes also run application code, such as ASP.NET applications and XML Web services.
  • 9. ISAPI • Internet Server Application Programming Interface, is an API developed to provide the application developers with a powerful way to extend the functionality of IIS • Extensions and Filters are the two types of applications that can be developed using ISAPI • ISAPI extensions are true applications that run on IIS and have access to all of the functionality provided by IIS
  • 10. ISAPI Application Mapping are implemented as DLLs that • ISAPI extensions are loaded into a process that is controlled by IIS • Like ASP and HTML pages, IIS uses the virtual location of the DLL file in the file system to map the ISAPI extension • ASP.Net functionality is contained in an ISAPI extension called aspnet_isapi.dll • Any file that is requested from the IIS server that ends in “.aspx” is mapped to aspnet_isapi.dll which is assigned to process the file before displaying its output in the client’s window
  • 11. InetInfo.exe • A user-mode component that hosts the IIS metabase and that also hosts the non-Web services like the FTP, SMTP etc • Used to manage ISAPI applications that run within the IIS process context • The services that run in Inetinfo.exe run as dynamic-link libraries (DLLs) under the Local System account • In IIS5.0 or IIS6.0 runs in IIS5.0 isolation mode >Inetinfo.exe hosts the worker process
  • 12. DLLHost.exe (IIS 5.0) • Manage out-of-process ISAPI applications • Any pooled ISAPI applications running on the server run within the context of a single instance of DLLHost.exe • The dllhost.exe process goes by the name COM Surrogate, which is an general purpose executable to host dlls out of process • In case of any unhandled error which may crash the COM Surrogate process, leaves the originating process intact.
  • 13. Application Pools (IIS 6.0) • Group of Web Applications and Web Sites are called Application Pools • Every application within an application pool shares the same worker process • The worker process(w3wp.exe) that services one application pool is separated from the worker process that services another • Each separate worker process provides a process boundary so each application pool is separated by these process boundaries
  • 14. IIS Different Modes of Operations • IIS 5.0 isolation mode (InetInfo.exe or DLLHost.exe takes the ownership for request processing) • IIS 6.0 worker process isolation mode (worker process W3wp.exe takes the ownership for request processing)
  • 15. IIS 5.0 Isolation Mode file:///C:/Documents and Settings/Admin/My Documents/My Pictures/iis5_isolation_mode.jpg
  • 16. Request Processing • A request arrives. If the requested application is running in- process, then Inetinfo.exe takes the request. If not, then DLLHost.exe takes the request. • Inetinfo.exe or DLLHost.exe determines if the request is valid. If the request is not valid, it sends a code for an invalid request back to the client. • If the request is valid, Inetinfo.exe or DLLHost.exe checks to see if the response is located in the IIS cache. • If the response is in the cache, it is returned immediately. • If the response is not cached, Inetinfo.exe or DLLHost.exe processes the request, by evaluating the URL to determine if the request is for static (HTML), or dynamic content (ASP) • The response is sent back to the client and the request is logged, if IIS is configured to do so.
  • 17. IIS 6.0 Isolation Mode file:///C:/Documents and Settings/Admin/My Documents/My Pictures/iis6_isolation_Mode.jpg
  • 18. Request Processing • A request arrives at HTTP.sys. • HTTP.sys determines if the request is valid. If the request is not valid, it sends a code for an invalid request back to the client. • If the request is valid, HTTP.sys checks to see if the request is for static content (HTML) because static content can be served immediately. • If the request is for dynamic content, HTTP.sys checks to see if the response is located in its “kernel-mode cache”. • If the response is in the cache, HTTP.sys returns the response immediately. • If the response is not cached, HTTP.sys determines the correct “request queue”, and places the request in that queue.
  • 19. Request Processing(contd.) • If the queue has no worker processes assigned to it, HTTP.sys signals the WWW service to start one. • The worker process pulls the request from the queue and processes the request, evaluating the URL to determine the type of request (ASP, ISAPI, or CGI). • The worker process sends the response back to HTTP.sys. • HTTP.sys sends the response back to the client and logs the request, if configured to do so.