This is more than just basic user interaction. Web Applications can be thought of as content management systems on steroids, with the added benefit of providing a higher level of general functionality. In implementing a web application we go above and beyond the simple information sharing website model. We are essentially providing an application without the need to download any software - the interface of our application uses web documents written in standard formats such as HTML, and is rendered through a standard web browser. Typical web applications can range from e-commerce retail stores and auction sites, to webmail, social networking and instant messaging (and all the way in between).
Writing a web app from scratch is always a very big job. The standard model is split into three tiers for managability. From the user's perspective the first layer is presentation, and this refers to the HTML and associated styling codes which are put in place to render the user interface within the web browser. The second layer is application, which refers to the use of some dynamic web technology such as AJAX and/or PHP to do the processing. The third layer is storage and typically consists of a database in some format such as SQL. The web browser sends requests to the middle tier which reacts by making queries to the database, processing the information, and sending back an appropriate response to the web browser.
There are a selection of technologies in existence which can be used in an array of combinations to build a web app. I specialise in using AJAX methods with Javascript at the presentation and application layer, XML and PHP at the application layer, and MySQL at the storage layer. AJAX allows scripts to be run and requests to be made without the need for reloading the page - saving bandwidth and load time. Ajax is most suited to situations that require fine-grained interactivity and/or asynchronous data exchange, making it great for developing highly functional user interfaces.