A web server is a computer software and underlying hardware that accepts requests via HTTP or its secure variant HTTPS. It can refer to hardware, software, or both working together. On the hardware side, a web server is a computer that stores web server software and a websites component files, such as HTML documents, images, CSS stylesheets, and JavaScript files. It connects to the Internet and supports physical data interchange with other devices connected to the web. On the software side, a web server includes several parts that control how web users access hosted files. At a minimum, this is an HTTP server, which is software that understands URLs and HTTP, the protocol your browser uses to view webpages. An HTTP server can be accessed through the domain names of the websites it stores, and it delivers the content of these hosted websites to the end-users.
A web server program plays the role of a server in a client-server model by implementing one or more versions of HTTP protocol, often including the HTTPS secure variant and other features and extensions that are considered useful for its planned usage. The complexity and the efficiency of a web server program may vary a lot depending on common features implemented, common tasks performed, performances, and scalability.
Web servers can host a single website or multiple websites using the same software and hardware resources, which is known as virtual hosting. They can also limit the speed of response to different clients so as to prevent a single client from dominating resources that are better used to satisfy requests from a large number.
Some examples of web servers include Apache, Microsofts Internet Information Services (IIS), Nginx, Sun Java System Web Server, and Novells NetWare server.