One might consider the fact that nowadays it's only worth writing "busy code" in assembly, and most or all of a GUI app isn't busy code, but that would be being sensible. A web server might have a few pieces of busy code in it IF it's designed to connect to hundreds or thousands of users at once. It would be good to write those in assembly. :)
Of course, there's always the fun factor :-)
And does this webserver serve many simultaneous connections? I doubt it. You'd learn more about proper webserver programming techniques by studying the source code to nginx [1] or mongrel2 [2].
As an example, it's more useful in showing how to build GUIs in assembly, and that's not very productive. You do get small executables, tho.
INVOKE SetFilePointer,hFile,FOffset,0,FILE_BEGIN
INVOKE ReadFile,hFile,pMem,FSize,offset NotUsed,0
INVOKE send,wParam,pMem,FSize,0
INVOKE GlobalUnlock,hMem
INVOKE GlobalFree,hMem
INVOKE closesocket,wParam
INVOKE CloseHandle,hFile ;Done with file and socket too.
The guy wrote it in 2001, when he was in high school, and he's done a lot more cool and interesting stuff since then, and it looks like he's graduated to Linux: http://lingcog.iit.edu/~scubed/projects.xmlToo bad he stopped adding new projects to the page in 2007. His "portfolio" page has a few more things since then.
duck