Advantages and Disadvantages of Proxy Servers

Advantages of a proxy server
Proxy servers are intermediate servers that provide clients access to the information stored on other servers like the Internet. In case any client seeks information from a different server, it will connect to a proxy server which, in turn, collects data from the main server and sends it to the requesting server. Let us take a look at the benefits of having such an arrangement.

Advantages

Hidden IP Address

Whenever any computer connects to a website, its IP (Internet Protocol) address is read by the website. If the client server wants to keep its identity under wraps, it can use a proxy server. This way, as there is no direct connection between the computer and the destination server, the IP is hidden. Thus, the client gets all the information it needs, anonymously.

Reduction of Load

As there is an intermediary server to fetch and display data, there is an immense reduction of load on the remote server. As the proxy server (a.k.a. caching server) has all the information that is requested by the client in its database, it doesn’t have to connect to the remote server every time.

Control Over Services

With these servers, you can decide which services can be accessed by the user. You can choose the websites that can be connected from the main website and which cannot. If you create a proxy for an educational website, the user will be able to connect to this website via the proxy server. Similarly, if you don’t add a proxy for a particular website, the user will never land on that page.

Security

While you are surfing the Internet, there is a huge possibility that you may land on any one of the malware infected websites. When you visit such a website, the malware replicates itself onto your system. Likewise, certain websites are gateways for hackers, and visiting them would put all your personal data at stake, due to the risk of hacking. In case of proxy servers, as your system doesn’t directly talk to the websites, the administrator at the proxy end will be in a position to detect such threats, and not allow them to reach your system.

Speedy Internet Access

As mentioned earlier, the cache servers have most of your search results stored in its database. Thus, the next time you are looking for such information, the server returns the cached version of the website, instead of reconnecting to it. Thus, you experience faster Internet speeds in comparison to the non-proxy server setups.

Disadvantages

Though these servers provide some of the best features that make for an alluring user experience, they have certain shortcomings too.

Additional Investment

While large companies can afford to buy and use proxy servers, for a smaller firm it can be difficult to do so. Apart from installation, additional funds are required for maintenance and monitoring of the network.

Configuration

These servers are to be configured as per one’s needs. So, there is some coding that needs to be done so as to make the proxy server suit one’s requirements. Even if a single port is left open, it gives hackers a window to snoop onto your precious data.

Cache Data

Though caching of the data leads to faster Internet access, it is also true that the information displayed to the users is not the latest.

Proxy server settings are customized, and thus, its debugging can be a tedious task in case of any bugs. Having said that, the main reason behind using these servers is the secured access that it gives to its users.

Web Container Vs. Web Server

Though it started out as a pure information resource, freely accessible to people all over the globe, the world wide web has evolved to offer much more today. As opposed to the passive information repository it was before, now Internet offers many services ranging from online banking, social networking, email, e-shopping, video sharing, online auctions to multiplayer gaming and much more, which are all made possible due to the advances in web technologies.

All these services are enabled by web servers, which host the pages and handle all the client queries. Associated technologies like web containers are used to extend server functionality and provide additional services through usage of Java servlets. In this Buzzle article, I present a web container vs web server comparison which clarifies the differences between these two commonly used web technologies.

What is a Web Server?
The whole TCP/IP (Transmission Control Protocol / Internet Protocol) based Internet architecture is based on a ‘Client-Server’ model. Every time you type in a web site address in your browser, a query is sent to the web server, hosting the pages. All the web site resources (pages, images) and services are hosted on it, which are then served to the client web browsers, according to request. Through HTTP (Hypertext Transfer Protocol), a server communicates with client computers to facilitate the sharing of data and resources.

Of the different types of computer servers, these types have the most complicated software architecture and are usually run on high-end machines with great processing power, with 24×7 battery backup. Ergo, when one refers to a web server, it refers to the server software, as well as computer hardware. Microsoft’s Internet Information Services (IIS), Apache HTTP Server and nginx are some of the most commonly used web servers on the Internet.

What is a Web Container?
A web container (more commonly known as a servlet container) is an application implemented on web servers to makes the implementation of ‘Java Servlets’ and ‘Java Server Pages’ possible. A container creates a completely independent environment for running servlets and Java server pages for the purpose of offering dynamic content to website visitors. It is primarily designed to run Java coding on a web server. All web containers are JEE (Java Platform Enterprise Edition) compliant. The servlets are executed in the run time environment provided by the container through the use of JSP engine and servlet engines. One of the most popular web containers is Apache Tomcat. It is an open source software program developed by the Apache Software Foundation.

Difference Between Web Container and Web Server
A web container is purely devoted to running of servlets while a web server is involved in delivering web page data and resources, according to client requests. A web server runs several applications including a web container software. Therefore a web server is a super set, of which a web container is only a part. However, some modern web containers can function without the support of a web server and act as standalone servers, for providing dynamic content. With the help of web containers, a web server can offer applications running on the Java platform. The fact that modern web containers can be implemented independently, may have led to the confusion between the two technologies.

To conclude, a web container is an application run by a web server to provide added site functionality for a hosted website and is primarily an environment in which servlets are implemented. On the other hand, a web server is the ‘mother-ship’ of all technologies deployed by a web site which directly handles all the client requests for data and resources hosted by it. For more information on servlets and web containers, it’s suggested that you refer to Sun’s tutorial on the same topic.

SMTP Server

SMTP is an Internet standard for sending emails across Internet Protocol (IP) networks. It was in Request for Comments i.e. RFC 821 that SMTP was first defined and it was last updated by RFC 5321, which includes the extended SMTP (ESMTP) additions. It is a specified protocol which is used for outgoing mail transport and uses TCP port 25. To explain this in simpler words, a SMTP server, works like a router, as it receives outgoing mail messages from users and routes them to the intended recipients. It makes use of either the Simple Mail Transfer Protocol or Unix sendmail program. Often the mail messages have to pass through a number of servers to reach their destinations.

Settings

You can have SMTP service installed on your local machine by following the below mentioned steps.

  • Go to the ‘Start’ menu and go to ‘Control Panel’.
  • Then double click the ‘Add or Remove Programs’ option.
  • In the left pane, click the ‘Add/Remove Windows Components’ option.
  • In the ‘Components’ list, you will see ‘Application Server’. Click it, and then select ‘Details’.
  • In the sub-components of ‘Application Server’ list, select ‘Internet Information Services (IIS)’, and go to ‘Details’.
  • In the sub-components of Internet Information Services (IIS) list, check the ‘SMTP Service’ checkbox and then click OK.
  • Now click ‘Next’. Here you may be prompted for the Windows Server 2003 family CD or the network install path.
  • Provide the required details and then click ‘Finish’.

After you have installed this service, a default configuration is created. The message store is located in LocalDrive:\Inetpub\mailroot. While setting up this service for the first time, you may want to configure global settings for a virtual server as well as settings for individual components. Some of these commands include:

  • HELO / EHLO: This is a command which is used to identify the sender (client).
  • MAIL FROM: This is where the email (also e-mail) address of the sender is specified.
  • RCPT TO: Here the email address of the recipient is specified.
  • DATA: It is the actual data (body text, attachments etc).
  • RSET (RESET): This command specifies that the current mail transaction will not be carried forward and will be aborted.
  • VRFY (VERIFY): This command asks the receiver to confirm whether the argument identifies a user or a mailbox.
  • HELP: With this command the useful information is sent to the client.
  • QUIT: This command indicates that the server quits the session

How to Find Server Address

In case you are collecting email from your ISP, you can find this address from the existing settings by following steps.

  • Start ‘Outlook Express’, go to ‘Tools’ and select ‘Email Accounts’ and navigate to the next page.
  • In the new window that appears, select ‘View or change existing email accounts’ and click ‘Next’.
  • Now, select the name of your ISP account, and then click ‘Change’.
  • Under the heading ‘Server Information’, you will come across an entry for ‘Outgoing mail server (SMTP)’. Write down the entry in this box, which will usually appear in a format similar to: ‘mail.myisp.com.’. This is the address which you are looking for and you will need while configuring your domain name based email.

Free SMTP Server

These can be used to send email directly. Most of these programs do support email programs like Outlook Express and Eudora, but it is often seen that they work the best with Outlook Express. You will have to follow the instructions to set and test it, before you are able to communicate with people all around the world. You will have to make the relevant changes in the IIS as mentioned.

These servers are best when you are traveling or accessing the Internet from public places, or you have to send a bulk of emails. It will take care of security and privacy of the data that is being transmitted through your emails.

Web Servers Vs Application Servers

Before going to the comparison, let us understand what is a computer server in the first place. A server is a computing device which is responsible for providing various services to its clients. The nature of these services can be anything, like file transferring, resource sharing, etc. Client and server systems provide functions such as centralized access to information, data storage and other resources. So this is what a server does generally.

When you are trying to explore a web server, you have to consider what hyper text transfer protocol (HTTP) is and then proceed further. HTTP is an application level protocol used for presenting hypermedia information system. Basically, this protocol is used when there are many different types of media involved. Well, web servers are those real or virtual machines that are responsible for delivering content. Clients are those machines or web browsers that request for any such content (HTML pages). Primarily, clients request for the content, but in some cases they have to deliver it as well (while submitting information for creating email accounts, etc.).

An example: Consider that you wish to create an email account. First you type the web address of the email service provider in your browser. The terminal from which you are accessing the website is the client in this case. Once you enter the address, you will see that the URL is changed and now it is starting with “http://…”. This action is the indication that hypertext transfer protocol is being used. In a matter of seconds, you see that webpage of the email service provider are loaded onto your browser. This action indicates that the web server has provided content to the browser. And when you provide information to the website (for opening an account), you are basically sending information to the web server.

Security of Web Servers

  • Remove Unnecessary Services: It is the first thing that any administrator must do. Remove any unnecessary services so that any person with malicious intent does not take advantage of those services.
  • Remote Access: An administrator of the server must always try to login from a local terminal, so that any unauthorized access from outside can be restricted. Remote access as a policy should be completely denied (but this may not be a very practical solution).
  • Important Data on Separate Disk: It is a common experience that the data on the drive (same as that of OS) can be exploited by a hacker once he gains access to the root directory. Hence, this data should be placed in a separate disk drive.
  • Use Scanners: Scans for detecting viruses, malware and spamware must be performed regularly.

Advantages of Web Servers

  • Virtual Hosting: Used for hosting more than one domain name on the same computer.
  • Large File Support:They can even support files size in GBs.
  • Bandwidth Throttling: Using this method, they are able to serve many clients.

Application servers are basically those servers which support the dynamic content requests by different applications. They can be looked upon as a software framework, which do the job of efficient execution of procedures. Application servers are dedicated or designed for handling specific applications such as database management systems like Oracle or MySQL. If the complexity involved in such an application is very large, then all the resources maybe dedicated to it. But this is a rare case, an application server is designed to handle many applications.

An example: Many times, the information that a client requests for needs a lot of computations. These computations maybe beyond the capabilities of the client itself. So they have to be done on the server, and then the results are sent to client. An ATM is a real-life example for this. An ATM does not credit or deposit any money in any bank account. This task is within the domain of the centralized servers of a particular bank. An ATM basically sends the request for withdrawal or deposit of the amount, these actions are then performed by the application server of the bank.

Security of Application Servers

  • Permissions and Privileges: If needless privileges are assigned to the application software, then a hacker can exploit these services. This way, other tasks of the server could also be hampered.
  • Monitor and Audit the Server: This is a very important task, as a lot of malicious attempts on the server are discovered by means of audit by itself. Besides, continuous monitoring of the network can help thwart an ongoing security breach.
  • User Accounts: Disabling all the default accounts that were created while installing the operating system is of paramount importance. A hacker taking advantage of such negligence is simply unacceptable.
  • Unused Modules and Application Extensions: Again, all the needless things which might take up resources should be removed. This includes unused application modules and extensions.

Advantages of Application Servers

  • Centralized Configuration: Some changes (like changing a setting for everyone) takes place centrally.
  • Security: They are able to provide better security to the data, as most of the computation takes place at server side.
  • Performance: In a heavy usage environment, the client server model provides better security.

This article was an attempt to explain the differences between application servers and web servers. We can simply conclude that web servers are meant for handling webpages, whereas application servers are meant to handle web-based as well as desktop applications.

How to Build a Web Server

You may want to build your own server for a small business or if you wish to start your own website. To build a web server, you need a computer and the required software. Also, building one will save money to a great extent. It contains pages of your website in Hypertext Markup Language (HTML). The one you build should be connected to the Internet all the time, so that everybody on the Internet can access your website.

Requirements

The configuration of the computer used for building a web server must match the basic requirements. A random access memory (RAM) of 4GB or more is required. The RAM requirements increase as the number of clients of your website increases. For this, you must always track website visitors. A high speed Internet connection is also one of the basic requirements to keep it connected to the Internet. Along with this, you need to have a permanent IP address. Sometimes, many website owners face the problem of dynamic IP address. If the dynamic IP problem is not solved, the IP address of the website will keep on changing and the Internet user will not be able to connect to your web server. You must buy a permanent IP address from the Internet service provider, which is somewhat costly. The software required to develop and maintain the client-server interaction is called web server software. There are many software applications available, of which, some are specific to a particular operating system.

Instructions

Step I
The first step is to install the software. This software is responsible for finding the requested web page. After installing the software, configure it accordingly so that the search for web pages within the server is easy. When an Internet user types a URL, the software directs the user to the requested page on the Internet.

Step II
The domain name is assigned to the server. This is a convenient way so that it is easier to remember the IP address of the web server. You need to buy the name from a domain name provider and the domain name servers keep a track of the corresponding IP address of the websites. When the Internet user types your name in the web browser, the domain name server makes it easier to find the IP address of the requested website. To build a server, you need to configure the domain name server and the router. The router will transfer the request of the Internet user to the server.

Step III
The web server must be protected with an antivirus software to ensure protection against viruses and worms. If you do not protect it from the virus attacks, you may lose all the data of your website, which at times may be confidential.

The main advantage of owning a web server is to cut down on the charges required for hosting your website. Owning a website can also earn you extra money if you host various other websites. The only thing you need to do is to upgrade your computer to the configuration suitable for the extra load of other websites. For online gamers, building a web server is an interesting option.