ASP(.NET) applications --always-- run on the server and they represent server-side logic. An ASP.NET app will also communicate with the database server - via SQL or the new buzzword 'LINQ' - and retrieve and update information. So yes, your ASP.NET 'acts as a server which sends updated webpages'.
Session settings and data, however, would be stored in cookies on the client side; .NET has classes for session management.
You should be aware that you are now entering expensive ground. Microsoft's EULA does not allow use Windows XP or Vista as a 'real' web server (for unlimited users). To make this legal, you'd need a Windows Server 2003 Web Edition or higher. You should also check the legal side for the SQL Server - better ask Microsoft if you can legally use the MSDE 2000 or SQL Server 2005 Express Edition on a web server. Their license models are complex and it all depends on what you are actually doing with the database (and web) server. Depending on your needs, a good alternative for .NET applications is VistaDB. It's not free, but great for C# (or VB.NET) development and offers royalty free deployment.
To get it all for free AND legal, you could use GNU/Linux, FreeBSD or OpenSolaris, Apache, Mono (instead of .NET), mod_mono (which is the bridge between the Apache web server and the Mono runtime) and either MySQL with Connector/.NET or PostgreSQL with npgsql. If you use MySQL and don't want to buy a commercial license, you have to open source your application under the GPL. In my experience, the MySQL ADO.NET connector works better than npgsql for PostgreSQL, but the latter is licensed under the BSD license and thus also free for proprietary use. Of course, there's also an ADO.NET provider for SQLite.
Mono does a great job for ASP.NET applications; unlike the Winforms-GUI parts, it's very mature and battle-tested. In your case, I'd seriously think about using Mono instead of Microsoft's .NET stack. You can still develop under Windows: Download Mono for Windows and SharpDevelop and configure SharpDevelop to use Mono's compilers and runtime instead of .NET.
Session settings and data, however, would be stored in cookies on the client side; .NET has classes for session management.
You should be aware that you are now entering expensive ground. Microsoft's EULA does not allow use Windows XP or Vista as a 'real' web server (for unlimited users). To make this legal, you'd need a Windows Server 2003 Web Edition or higher. You should also check the legal side for the SQL Server - better ask Microsoft if you can legally use the MSDE 2000 or SQL Server 2005 Express Edition on a web server. Their license models are complex and it all depends on what you are actually doing with the database (and web) server. Depending on your needs, a good alternative for .NET applications is VistaDB. It's not free, but great for C# (or VB.NET) development and offers royalty free deployment.
To get it all for free AND legal, you could use GNU/Linux, FreeBSD or OpenSolaris, Apache, Mono (instead of .NET), mod_mono (which is the bridge between the Apache web server and the Mono runtime) and either MySQL with Connector/.NET or PostgreSQL with npgsql. If you use MySQL and don't want to buy a commercial license, you have to open source your application under the GPL. In my experience, the MySQL ADO.NET connector works better than npgsql for PostgreSQL, but the latter is licensed under the BSD license and thus also free for proprietary use. Of course, there's also an ADO.NET provider for SQLite.
Mono does a great job for ASP.NET applications; unlike the Winforms-GUI parts, it's very mature and battle-tested. In your case, I'd seriously think about using Mono instead of Microsoft's .NET stack. You can still develop under Windows: Download Mono for Windows and SharpDevelop and configure SharpDevelop to use Mono's compilers and runtime instead of .NET.