apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff White" <jlw...@earthlink.net>
Subject Re: Windows HTTP API
Date Sun, 20 Jun 2004 20:45:46 GMT

From: "Kornél Pál"

> Microsoft describes http.sys as the
> kernel mode cache of IIS 6, however it's
> kernel mode HTTP listener with cache for
> any application.


The HTTP application programming interface
(API) enables applications to communicate
over HTTP without using Microsoft Internet
Information Server (IIS).


Anyway, at first, there will just be "a few"
hundreds of million or so, of these default
on HTTP.SYS devices, active on the Internet.

Because it seems HTTP.SYS (a HTTP listener
and router and responder with cache, SSL, and
etc.) will be a part of all Windows systems. Yes
HTTP.SYS is being back ported to Windows XP
SP2 and this and other Windows XP SP2 changes
may be added to the higher up Windows systems.

> Using http.sys Apache HTTPD could be
> used with IIS 6 on Windows sharing the
> same port and IP address. I think this is
> a good thing if you want to host more web
> sites using different server software on the
> same server.

Yes since HTTP.SYS (default on) will allow
other processes to share the same port (if
using the HTTP.SYS APIs or the HTTP
config tool). Or perhaps, via the newer .NET
Framework HttpListener class (works with
HTTP.SYS), is a simple Web server (that
can self-host ) or work with others.

Grandpa and Grandma can turn their kiddies
HTTP pictures (site) off and on. Or business
users can turn off and on, their many simple
HTTP get and send actions (web services too).

And if the URI is not valid or there is nothing
registered (with HTTP.SYS) and the port is
open, then HTTP.SYS returns a HTTP error

> I think you should consider implementing
> HTTP API in Apache HTTPD as it has
> a lot of possibilities.
> More information about HTTP API
> is available in Platform SDK:
> Sincerely,
> Kornél

I added Apache APR because APR is
where ASF's HTTPD and APR users,
that access Windows ports (for one
thing), will use or not use these new
Windows system wide changes.

The Windows HTTP.SYS device
(Windows XP SP2 and higher) and the
new Windows Installer (Windows 2000
and up) and of course, the Windows
Firewall (Windows XP SP2 and higher).

And these above objects do not include
the many major changes to the system
shell HTTP reader, commonly called
Internet Explorer.

All these new Windows system objects
will be "default on" for the user (and most
users will / should keep them on). So all
other programs will need to be "aware of
and work with" these new Windows system
wide objects.

Release Notes for Microsoft Windows XP Service Pack 2
Release Candidate 2
Updated: June 14, 2004

Windows XP Service Pack 2 Release Candidate 2 Preview


To successfully allow applications to
use the same port on different IP
addresses, you must use a new utility,


Perhaps this really means:


The HTTP API allows multiple applications
to co-exist on a system, sharing the same TCP
port (for example, port 80 for HTTP or port 443
for HTTPS) and serving different parts of the
URL namespace.


HTTP.SYS can route by any:
URI or parts of the URI. So
continuing on:


Httpcfg.exe is located on
the Windows Server 2003 CD in the
Support\Tools directory as part of the
Support.cab file.


To configure HTTP.sys, you must use


In IIS 6.0, HTTP.sys is the TCP listener and
HTTP.sys does not use the Winsock API.
Sockets are not a configurable property.
HTTP.sys uses an IP inclusion list. By default,
this list is blank and IIS listens on all IP addresses.

You can specify the IP addresses IIS will listen
on by adding them to the IP inclusion list.


IIS 6.0: Setting Metabase Property
DisableSocketPooling Has No Effect

Also the people who bring you HTTP.SYS
and the WINHTTP.DLL now have a blog.


This is a collaborative Weblog from
the Web Transports Team in Windows
Networking. As a team we work on the
http stacks in Windows; http.sys the kernel
part of the IIS 6.0 Web Server (part of
Windows Server 2003) and its own
developer API, wininet.dll which is the
client side HTTP stack at the heart of
Internet Explorer, and winhttp.dll which
is the client side HTTP stack favored by
server applications relying on performance
and reliability.


The Web Transports team

So I guess the real question is has one
tried Apache and IIS with Windows Server
2003 or Windows XP SP2 via HTTP.SYS?


View raw message