Introduction
A web server is defined as a program that uses server or client model to respond to user. It is also used to accept a network connection, read a file, parses the request and sends contents. HTTP (Hypertext Transfer Protocol) and WWW (World Wide Web) are examples of protocols that host the web page files facilitated by users. Each computer that is connected to the internet and hosts a website must always have a well-defined web server program. The most significant web servers are IIS (Internet Information Server) and Apache (Vermeulen, 2004). However, Novell, AS/400 and Lotus Domino are examples of web servers that are used by users. Web servers often work with other applications and servers based on the operating systems installed. It is able to handle security characteristics, search engines like google, publishing, site building tools and server-side programming.
Each computer that has been connected to the internet must possess a unique address known as URL (Uniform Resource Locator) (Hall, 2009). Whenever a user enters the URL on a browser such as internet explorer or Mozilla Firefox, a request is sent to the IP (Internet Protocol) address belonging to another machine that is also running on the same web server (Vermeulen, 2004). The content of that particular page is translated into pictures, videos, links and texts that had been requested by another machine using its own IP (Internet protocol) address (He et al., 2003). Occasionally, web servers slows down by overwhelming requests count being recorded within a short time , therefore, the response time for the same requests would be longer than expected. Web servers can be scheduled to handle several data requests sent from different protocols such as SMTP and FTP (File transfer Protocol) used for mails and storage respectively (Vermeulen, 2004).
A web application is defined as a website that is containing several pages entirely or partly uncertain contents. Web servers play a great role in supporting web applications. There are three types of web applications; customer-supplier facing applications, employee facing applications and customer facing applications. These applications are directly or indirectly related to internet users across the globe with main focus on users and service providers.
Customer supplier facing are well known applications that is also referred to as business to business relationship. Extranet that allows for free net is applied at this level. Business to business sites always provides a more secure way of sharing information. Examples include; procured software in order to allow customers to send and receive RFQs over the web. Another example is the collaboration of software in order to allow companies share their projects management information and product development (Vermeulen, 2004).
Employee facing on the other hand uses intranet. It majorly concentrated on a company such as accounting applications and employee expense reporting. Enterprise Requirements Planning (ERP) systems are examples of company employee relationship. Integrated systems such as ERP and CRM works well with web services and XML platforms (He et al., 2003).
Customer facing are also referred to as business to customer relationship and it’s mainly centered on internet with e-commerce objective. Travel reservations such as http://www.ebay.com and http://www.amazon.com with the shopping carts strategically developed with payment methods well stipulated in order to make customer work easier. Webservers connects the client to the database and the internet without causing any confusion at any level (Hall, 2009).
Web applications are basically developed with 3-tier architecture where a server, database and client are related in order to exchange information across the network. The figure 1.0 below shows the 3-tier relationship that has been implored on web applications.
Figure1. 3-tier application
Web servers’ supports web applications by sending and receiving requests though web pages. These web pages provide customers with requested data and transit the response by acting as a delivery manager (Fielding et al., 2013). For a static page, the web server servers read request that immediately sends a response to the browser once the page is found as shown on the figure 1.1 and figure 1.2 below.
Figure1.1 Web server working criterion Figure1.2 Web server and application server
HTTP as a stateless protocol
Hyper Text Transfer Protocol (HTTP) is also referred to as a stateless protocol since each of the commands is often executed separately without relating the immediate commands or those that are executed afterwards. It’s commonly used in transferring files through the web as per the request paradigm. HTTP handles information in a distinct manner with each of the request being handled based on the information brought along with it without invoking the previous or later information. It also remembers the requests later without bringing any confusion. Therefore, each communication is considered unrelated or discrete to the ones preceding and the ones they follow. The methods associated with HTTP request include: GET, POST, PUT, DELETE, OPTIONS, HEAD and TRACE (Fielding et al., 2013).
HTTP defines how the messages are transmitted and formatted over the web. Immediately a URL is entered in the browser, HTTP command is sent to the web server in order to direct it to transmit or fetch the bidden web page. It is however difficult to develop and implement web sites reacting interchangeably as a user input. New technologies such as JavaScript, cookies, java and ActiveX are used in addressing this short coming being experienced with HTTP (Dacosta et al., 2012). There are more limitations of HTTP as a stateless architecture; high failure rate, constrained memory and large scale networks. With close recipient, SPEED command can be successfully executed without many difficulties but with large distances, it is likely to get some problems associated with it.
ASP.net as a stateless Web technology
ASP.net applications meant for Windows Azure is considered to be a stateless application. It works at Platform-as-a-Service for operating services and applications. Considering the benefits of Windows Azure, elasticity is one of them (Hall, 2009). With increased load such as new instances requires more power. With such developments, Windows Azure immediately increases instance count. VM instance helps in activating the elasticity, scalability and for quick recovery in the cloud. However, ASP.net applications often have migration concerns such as; IIS configuration differences, handling configurations, session state, authentication & Identity in the cloud, Mapping ASP application to Windows Azure, handling storage and application dependencies.
IIS configuration differences are hosted by IIS 7.0 in order to have a range of web server features when run on Windows Azure webRole. WCF services and virtual applications are supported by IIS configuration differences over a non HTTP transport. ASP.net generated scripts to configure IIS using configuration editor (He et al., 2003). The same scripts can be generated through start-up tasks. Handling Configuration happens when Webconfig file is used to store time configuration time and is also used to restart IIS application. However, the changes are not synchronized over the instances and the new instances cannot spun up for recovery or elasticity (Vermeulen, 2004). Session State uses Windows Azure Table Storage and Windows Azure Cache Provider to store high scale data or information and to store session state respectively. Authentication & Identity in the cloud applies whenever one is migrating profile data and membership to SQL Azure. Mapping ASP application to Windows Azure applies when the Windows Azure tools meant for Visual studio host services with workerRole and webRole project types. In handling storage and application dependencies, ASP.net uses VM instance as a local storage with Azure SDK as a reference respectively.
Conclusion and Future Projection
Web applications cannot be successful without web servers therefore it’s an hybrid approach for both the old and new applications must be developed. A fully formed HTML5 handles browser history for single page applications as well as data storage (Vermeulen, 2004). Since HTML templates are often written using java scripts, java runtime enables most developers to design a rich application. JavaScript browsers are efficient even with large scale calculations being performed on the servers. With the main focus on real-time applications such as skype, smart applications and more developed PCs; many codes should be developed for clients just like servers in order to be able to access the data bases directly without taking much time. This would increase the access speeds with minimum time spend on the server for other functions.
References
Dacosta, I., Chakrade, S., Ahamad, M., Traynor, P. 2012. One-Time Cookies: Preventing Session Hijacking Attacks with Stateless Authentication Tokens. Available at: < https://smartech.gatech.edu/bitstream/handle/1853/42609/GT-CS-12-02.pdf >
Fielding, R., Mogul, J.C., Frystyk, H., Masinter, L., Leach, P., Lee, T.B. 2013. Hypertext Transfer Protocol -- HTTP/1. Available at: < http://tools.ietf.org/pdf/rfc2616.pdf >
Hall, M. 2009. Using and Deploying Web Applications. Available at: < http://courses.coreservlets.com/Course-Materials/pdf/msajsp/01-Web-Apps.pdf >
He, T., Stankovic, J.A., Lu, C., Abdelzaher, T. 2003. SPEED: A Stateless Protocol for Real-Time Communication in Sensor Networks. Available at: < http://www.cse.wustl.edu/~lu/papers/icdcs03_speed.pdf >
Vermeulen, B. 2004. Web Application Technologies. Available at: < http://www.corp21.com/download/WebApplications.pdf >