In my experience, functional testing of websites isn't much different from functional testing of desktop applications.
The places I've found that can be different are:
- Getting a clean test environment can be more complicated (it can also be next to impossible for extremely large corporate web applications)
- There will be additional security concerns because web applications require online connectivity
- Data paths can be more complicated: where a desktop application might use a database, in corporate applications that database will be inside the firewall. For a web application the hosting is likely to be in a DMZ area between the corporate entry point and the firewall, and communication with the database has to go through the firewall. There can also be multiple different services the web application uses for its data, where a desktop application tends to be more of a standalone thing.
- You will probably need to know how to set up and use test SSL certificates. Many countries have laws about where SSL must be used - at minimum this will include logging in and any payment detail entry.
- Familiarity with multiple browsers and mobile OS emulators is also helpful. Unlike a desktop application, a web application is not in complete control of its appearance.
- Familiarity with your web application's data model is essential. Unlike a desktop application, a web application is functionally stateless. Each page is independent of each other page and only knows about the data it's given, its rendering instructions, and the data it sends. This can make a web application behave quite differently than a desktop application.
On the plus side, it can often be easier to automate a web application, both because there are more good quality open source and free tools for web applications than there are for desktop applications, and because HTML is pretty much standardized these days and even if you can't get an automation handle through an ID, you can get it through the Document Object Model or XPath identifiers.