SQL Server HTTP publishing is made possible through an ISAPI application named SQLISAPI, which ships with SQL Server. Creating an IIS virtual root based on this application makes a specified SQL Server database available through an HTTP URL address, such as http://mywebserver/mydatabase. The SQLISAPI application itself uses the SQL Server 2000 OLE-DB provider (SQLOLEDB) to access the database and returns XML or HTML to the HTTP client. You can see this architecture in Figure 4-1.
Figure 4.1 - SQL Server 2000 HTTP data access architecture
Client applications can request data in one of the following four ways:
Because the first two of these options allow the client application to send any query to the server, they’re unlikely to be used in most production environments for security reasons, particularly on the Internet. Most Internet-based applications use server-side templates or schemas to publish data in a more controlled fashion. I’ll talk about using XML templates to publish data in Chapter 5 and using schemas to publish data in Chapter 6.