Sun July 25 2021
Learn  |  Reference  |  Code Base  |  Solutions  |  Freelancing  |  Tips & Tricks  |  Downloads  |  Reviews  |  Affiliate  |  Make a Donation  |  Home
Web Server
A web server is a computer program that delivers (serves) content, such as this web page, using the Hypertext Transfer Protocol. The term web server can also refer to the computer or virtual machine running the program.

The primary function of a web server is to deliver web pages (HTML documents) and associated content (e.g. images, style sheets, JavaScripts) to clients. A client, commonly a web browser or web crawler, makes a request for a specific resource using HTTP and, if all goes well, the server responds with the content of that resource. The resource is typically a real file on the server's secondary memory, but this is not necessarily the case and depends on how the web server is implemented.

While the primary function is to serve content, a full implementation of HTTP also includes a way of receiving content from clients. This feature is used for submitting web forms, including uploading of files.

Many generic web servers also support server-side scripting (e.g. Apache HTTP Server and PHP). This means that a script can be executed by the server when a client requests it. Usually, this functionality is used to create HTML documents on-the-fly as opposed to return fixed documents. This is referred to as dynamic and static content respectively.

Highly niched web servers can be found in devices such as printers and routers in order to ease administration using a familiar user interface in the form of a web page.

Common features of Web Servers
  1. Virtual hosting to serve many web sites using one IP address.
  2. Large file support to be able to serve files whose size is greater than 2 GB on 32 bit OS.
  3. Bandwidth throttling to limit the speed of responses in order to not saturate the network and to be able to serve more clients.
Virtual Hosting
Virtual hosting is a method that servers such as web servers use to host more than one domain name on the same computer, sometimes on the same IP address.

Virtual web hosting is one of the most popular hosting options available at the moment-probably because it is one of the most cost effective options on the market. Also known as shared web hosting, virtual hosting allows a website owner to have a site hosted on a web server that is shared with other websites. In simple terms, the virtual hosting company's server will allocate out hosting services and bandwidth to more than one website. Virtual web hosting is a cheaper hosting option because you won't have to pay for a dedicated server to host just your website.

Virtual web hosting is a good solution for small- to medium-sized (and even some larger) websites that aren't constantly being visited or that have reasonable bandwidth needs.
There are two basic methods of accomplishing virtual hosting:
  1. name-based virtual hosting and
  2. IP address or ip-based
Name-based virtual hosts use multiple host names for the same webserver IP address.

In IP-based virtual hosting each site (either a DNS hostname or a group of DNS hostnames that act the same) points to a unique IP address. The web server is configured with multiple physical network interfaces, virtual network interfaces on the same physical interface or multiple IP addresses on one interface.

The default port number for HTTP is 80. However, most webservers can be configured to operate on almost any port number, provided the port number is not in use by any other program on the server.

Large file support
Large file support, often abbreviated to LFS, is the term frequently applied to the ability to create files larger than 2 GiB on 32-bit operating systems.

Bandwidth
Bandwidth throttling is a method of ensuring a bandwidth intensive device, such as a server, will limit ("throttle") the quantity of data it transmits and/or accepts within a specified period of time. For website servers and web applications, bandwidth throttling helps limit network congestion and server crashes, whereas for ISP's, bandwidth throttling can be used to limit users' speeds across certain applications (such as BitTorrent), or limit upload speeds.

A server, such as a web server, is a host computer connected to a network, such as the Internet, which provides data in response to requests by client computers. Understandably, there are periods where client requests may peak (certain hours of the day, for example). Such peaks may cause congestion of data (bottlenecks) across the connection or cause the server to crash, resulting in downtime. In order to prevent such issues, a server administrator may implement bandwidth throttling to control the number of requests a server responds to within a specified period of time.

When a server using bandwidth throttling has reached the allowed bandwidth set by the administrator, it will block further read attempts, usually moving them into a queue to be processed once the bandwidth use reaches an acceptable level. Bandwidth throttling will usually continue to allow write requests (such as a user submitting a form) and transmission requests, unless the bandwidth continues to fail to return to an acceptable level.

Likewise, some software, such as peer-to-peer (P2P) network programs, have similar bandwidth throttling features, which allow a user to set desired maximum upload and download rates, so as not to consume the entire available bandwidth of his or her Internet connection.