Web server

A web server is a computer software and underlying hardware that accepts requests via HTTP or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiates communication by making a request for a web page or other resource using HTTP, and the server responds with the content of that resource or an error message. A web server can also accept and store resources sent from the user agent if configured to do so.
The hardware used to run a web server that can vary according to the volume of requests that it needs to handle. Web servers at the low end of the range are embedded. For example, a router that runs a small web server as its configuration interface. A high-traffic Internet website might handle requests with hundreds of servers that run on racks of high-speed computers.
A resource sent from a web server can be a statically pre-existing file available to the web server, or it can be generated at the time of the request, which is a dynamic content, by another program that communicates with the server software. The former usually can be served faster and can be more easily cached for repeated requests, while the latter supports a broader range of applications.
==Functionality==
When a client requests HTTP to get the data, a web server will receive the request and send data to a client, otherwise it will send an error message if the request is invalid or has errors.
Any computers can be physically or wirelessly, through the Internet, connected to a web server, and web servers can also be connected to another web server.
==Features==
These are basic features that most web servers usually have.
*Static content serving: to be able to serve static content (web files) to clients via HTTP protocol.
*HTTP: support for one or more versions of HTTP protocol in order to send versions of HTTP responses compatible with versions of client HTTP requests, e.g. HTTP/1.0, HTTP/1.1 (eventually also with encrypted connections HTTPS), plus, if available, HTTP/2, HTTP/3.
*Logging: usually web servers have also the capability of logging some information, about client requests and server responses, to log files for security and statistical purposes.
A few other more advanced and popular features (only a very short selection) are the following ones.
*Dynamic content serving: to be able to serve dynamic content to clients via HTTP protocol.
*Virtual hosting: to be able to serve many websites using only one IP address.
*Authorization: to be able to allow, to forbid or to authorize access to portions of website paths.
*Content cache: to be able to cache static and/or dynamic content in order to speed up server responses;
*Large file support: to be able to serve files whose size is greater than 2 GB on 32 bit OS.
*Bandwidth throttling: to limit the speed of content responses in order to not saturate the network and to be able to serve more clients;
*Rewrite engine: to map parts of clean URLs (found in client requests) to their real names.
*Custom error pages: support for customized HTTP error messages.
==References==
==See Also==
*Web server in Wikipedia.
Category:Web servers