All Topics  
Web server

 
Web Server

   Email Print
   Bookmark   Link






 

Web server



 
 
The term web server can mean one of two things:
  1. A computer program
    Computer program

    Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
     that is responsible for accepting HTTP
    Hypertext Transfer Protocol

    Hypertext Transfer Protocol is an application-level protocol for distributed, collaborative, hypermedia information systems. Its use for retrieving inter-linked resources led to the establishment of the World Wide Web....
     requests from clients (user agent
    User agent

    A user agent is the client application used with a particular network protocol; the phrase is most commonly used in reference to those which access the World Wide Web, but other systems such as Session Initiation Protocol use the term user agent to refer to the user's phone....
    s such as web browser
    Web browser

    A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
    s), and serving
    Server (computing)

    A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
     them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects (images, etc.).
  2. A computer
    Computer

    A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
     that runs a computer program as described above.


  • HTTP: every web server program operates by accepting HTTP requests from the client, and providing an HTTP response to the client.






    Discussion
    Ask a question about 'Web server'
    Start a new discussion about 'Web server'
    Answer questions from other users
    Full Discussion Forum



    Encyclopedia


    The term web server can mean one of two things:
    1. A computer program
      Computer program

      Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
       that is responsible for accepting HTTP
      Hypertext Transfer Protocol

      Hypertext Transfer Protocol is an application-level protocol for distributed, collaborative, hypermedia information systems. Its use for retrieving inter-linked resources led to the establishment of the World Wide Web....
       requests from clients (user agent
      User agent

      A user agent is the client application used with a particular network protocol; the phrase is most commonly used in reference to those which access the World Wide Web, but other systems such as Session Initiation Protocol use the term user agent to refer to the user's phone....
      s such as web browser
      Web browser

      A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
      s), and serving
      Server (computing)

      A server is a computer program that provides services to other computer programs , in the same or other computer. The physical computer that runs a server program is also often referred to as server....
       them HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects (images, etc.).
    2. A computer
      Computer

      A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
       that runs a computer program as described above.


    Common features


    Although web server programs differ in detail, they all share some basic common features.
    1. HTTP: every web server program operates by accepting HTTP requests from the client, and providing an HTTP response to the client. The HTTP response usually consists of an HTML
      HTML

      HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
       document, but can also be a raw file, an image, or some other type of document (defined by MIME
      MIME

      Multipurpose Internet Mail Extensions is an Internet standard that extends the format of electronic mail to support:* Text in character sets other than ASCII...
      -types). If some error is found in client request or while trying to serve it, a web server has to send an error response which may include some custom HTML or text messages to better explain the problem to end users.
    2. Logging
      Data logging

      Data logging is the practice of recording sequential data, often Chronology....
      : usually web servers have also the capability of logging
      Data logging

      Data logging is the practice of recording sequential data, often Chronology....
       some detailed information, about client requests and server responses, to log files
      Server log

      A server log is a Data logging file automatically created and maintained by a Server of activity performed by it.A typical example is a web server log which maintains a history of page requests....
      ; this allows the webmaster
      Webmaster

      The webmaster , also called the web architect, the web developer, the site author, the website administrator, or the webmeister, is the person responsible for designing, developing, marketing, or maintaining a website....
       to collect statistics by running log analyzers
      Web log analysis software

      Web log analysis software is a simple kind of Web analytics software that parses a Server log from a web server, and based on the values contained in the log file, derives indicators about who, when, and how a web server is visited....
       on these files.


    In practice many web servers implement the following features also:
    1. Authentication
      Authentication

      Authentication is the act of establishing or confirming something as authentic, that is, that claims made by or about the subject are true....
      , optional authorization
      Authorization

      Authorization is the function of specifying access rights to resources, which is related to information security and computer security in general and to access control in particular....
       request (request of user name and password
      Password

      A password is a secret word or string of Character that is used for authentication, to prove identity or gain access to a resource . The password must be kept Secrecy from those not allowed access....
      ) before allowing access to some or all kind of resources.
    2. Handling of static content
      Static web page

      A static web page is a web page that always comprises the same information in response to all download requests from all users. Contrast with Dynamic web page....
       (file content recorded in server's filesystem(s)) and dynamic content by supporting one or more related interfaces (SSI
      Server Side Includes

      Server Side Includes is a simple server-side scripting language used almost exclusively for the World Wide Web. As its name implies, its primary use is including the contents of one file into another one dynamically when the latter is served by a web server....
      , CGI
      Common Gateway Interface

      The Common Gateway Interface is a Standardization Protocol for interfacing external application software with an Server , commonly a web server....
      , SCGI, FastCGI
      FastCGI

      FastCGI is a Protocol for interfacing interactive programs with a web server. FastCGI is a variation on the earlier Common Gateway Interface ; FastCGI's main aim is to reduce the overhead associated with interfacing the web server and Common Gateway Interface programs, allowing a server to handle more web page requests at once....
      , JSP
      JavaServer Pages

      JavaServer Pages is a Java technology that allows software developers to create dynamic web page, with HTML, XML, or other document types, in response to a Web client request....
      , PHP
      PHP

      PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
      , ASP
      Active Server Pages

      Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server ....
      , ASP.NET
      ASP.NET

      ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services....
      , Server API
      Server Application Programming Interface

      In computer science, the Server Application Programming Interface is the generic term used to designate direct module interfaces to web server application software such as the Apache HTTP Server, Microsoft IIS, or iPlanet....
       such as NSAPI
      NSAPI

      NSAPI, or Network Service Access Point Identifier, is an identifier used in GPRS networks.It is used to identify a Packet Data Protocol context in the Mobile Station and in the Serving GPRS Support Node ....
      , ISAPI
      ISAPI

      The Internet Server Application Programming Interface is an N-tier Application programming interface of Internet Information Services , Microsoft's collection of Microsoft Windows-based web server services....
      , etc.).
    3. HTTPS
      Https

      Hypertext Transfer Protocol Secure is a combination of the Hypertext Transfer Protocol and a secure communication protocol.HTTP operates at the highest layer of the TCP/IP model, the Application layer; but the security protocol operates at lower sublayer, encrypting an HTTP message prior to transmission and decrypting a message upon arriva...
       support (by SSL or TLS
      Transport Layer Security

      Transport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide security and data integrity for communications over Internet Protocol Suite networks such as the Internet....
      ) to allow secure (encrypted) connections to the server on the standard port
      List of TCP and UDP port numbers

      In computer networking, the protocols of the Transport Layer of the Internet Protocol Suite, most notably the Transmission Control Protocol and the User Datagram Protocol , but also other protocols, use a numerical identifier for the data structures of the endpoints for host-to-host communications....
       443 instead of usual port 80.
    4. Content compression
      Data compression

      In computer science and information theory, data compression or source coding is the process of encoding information using fewer bits than an code representation would use through use of specific encoding schemes....
       (i.e. by gzip
      Gzip

      gzip is a software application used for file compression. gzip is short for GNU zip; the program is a free software replacement for the compress program used in early Unix systems, intended for use by the GNU Project....
       encoding) to reduce the size of the responses (to lower bandwidth usage, etc.).
    5. Virtual hosting
      Virtual hosting

      Virtual hosting is a method that Server s such as web servers use to host more than one domain name on the same computer, sometimes on the same IP address....
       to serve many web sites using one IP address
      IP address

      An Internet Protocol address is a numerical identification that is assigned to devices participating in a computer network utilizing the Internet Protocol for communication between its nodes....
      .
    6. Large file support
      Large file support

      Large file support, often abbreviated to LFS, is the term frequently applied to the ability to create files larger than 2 gibibyte on 32-bit operating systems....
       to be able to serve files whose size is greater than 2 GB on 32 bit OS
      Operating system

      An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
      .
    7. Bandwidth throttling
      Bandwidth throttling

      Bandwidth throttling is a method of ensuring a Bandwidth intensive device, such as a Server , will limit the quantity of data it transmits and/or accepts within a specified period of time....
       to limit the speed of responses in order to not saturate the network and to be able to serve more clients.


    Origin of returned content

    The origin of the content sent by server is called:
    • static if it comes from an existing file
      Computer file

      A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable computer storage....
       lying on a filesystem;
    • dynamic if it is dynamically generated by some other program or script or application programming interface
      Application programming interface

      An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
       (API) called by the web server.


    Serving static content is usually much faster (from 2 to 100 times) than serving dynamic content, especially if the latter involves data pulled from a database
    Database

    A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
    .

    Path translation

    Web servers are able to map the path component of a Uniform Resource Locator
    Uniform Resource Locator

    In Information technology, a Uniform Resource Locator is a type of Uniform Resource Identifier that specifies where an identified resource is available and the mechanism for retrieving it....
     (URL) into:
    • a local file system
      File system

      In computing, a file system is a method for store and organize computer files and the data they contain to make it easy to find and access them....
       resource (for static requests);
    • an internal or external program name (for dynamic requests).


    For a static request the URL path specified by the client is relative to the Web server's root directory.

    Consider the following URL as it would be requested by a client:

    http://www.example.com/path/file.html

    The client's web browser will translate it into a connection to www.example.com with the following HTTP 1.1 request: GET /path/file.html HTTP/1.1 Host: www.example.com

    The web server on www.example.com will append the given path to the path of its root directory. On Unix
    Unix

    Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
     machines, this is commonly /var/www. The result is the local file system resource:

    /var/www/path/file.html

    The web server will then read the file, if it exists, and send a response to the client's web browser. The response will describe the content of the file and contain the file itself.

    Load limits

    A web server (program) has defined load limits, because it can handle only a limited number of concurrent client connections (usually between 2 and 60,000, by default between 500 and 1,000) per IP address
    IP address

    An Internet Protocol address is a numerical identification that is assigned to devices participating in a computer network utilizing the Internet Protocol for communication between its nodes....
     (and TCP port) and it can serve only a certain maximum number of requests per second depending on:
    • its own settings;
    • the HTTP request type;
    • content origin (static or dynamic);


    Historical notes

    First Web Server
    In 1989 Tim Berners-Lee
    Tim Berners-Lee

    Sir Timothy John Berners-Lee, Order of Merit, Order of the British Empire, Royal Society, Royal Academy of Engineering, Royal Society of Arts is an English people computer scientist and MIT professor credited with inventing the World Wide Web....
     proposed to his employer CERN
    CERN

    The European Organization for Nuclear Research , known as CERN , , is the world's largest particle physics laboratory, situated in the northwest suburbs of Geneva on the France-Switzerland border, established in 1954 in science....
     (European Organization for Nuclear Research) a new project, which had the goal of easing the exchange of information between scientists by using a hypertext system. As a result of the implementation of this project, in 1990 Berners-Lee wrote two programs:
    • a browser
      Web browser

      A Web browser is a application software which enables a user to display and interact with text, images, videos, music, games and other information typically located on a Web page at a website on the World Wide Web or a local area network....
       called WorldWideWeb
      WorldWideWeb

      WorldWideWeb was the world's first web browser and WYSIWYG HTML editor. It was introduced on February 26, 1991, by UK scientist Sir Tim Berners-Lee, and ran on the NeXTSTEP platform....
      ;
    • the world's first web server, later known as CERN HTTPd
      CERN HTTPd

      CERN HTTPd was a web server daemon originally developed at CERN from 1990 onwards by Tim Berners-Lee and others. It was the first ever web server software....
      , which ran on NeXTSTEP
      NEXTSTEP

      Nextstep was the original Object-oriented operating system, computer multitasking operating system that NeXT developed to run on its range of proprietary computers, such as the NeXTcube....
      .


    Between 1991 and 1994 the simplicity and effectiveness of early technologies used to surf and exchange data through the World Wide Web helped to port them to many different operating systems and spread their use among lots of different social groups of people, first in scientific organizations, then in universities and finally in industry.

    In 1994 Tim Berners-Lee decided to constitute the World Wide Web Consortium
    World Wide Web Consortium

    The World Wide Web Consortium is the main international standards organization for the World Wide Web . It is arranged as a consortium where member organizations maintain full-time staff for the purpose of working together in the development of standards for the World Wide Web....
     to regulate the further development of the many technologies involved (HTTP, HTML, etc.) through a standardization process.

    The following years are recent history which has seen an exponential growth of the number of web sites and servers.

    Market structure

    Given below is a list of top Web server software vendors published in a Netcraft
    Netcraft

    Netcraft is an Internet services company based in Bath, Somerset, England.Netcraft provides web server and web hosting market-share analysis, including web server and operating system detection....
      in January 2009.
    Vendor Product Web Sites Hosted Percent
    Apache
    Apache Software Foundation

    The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and Delaware corporation, USA, in June 1999....
     
    Apache
    Apache HTTP Server

    The Apache HTTP Server, commonly referred to simply as Apache , is a web server notable for playing a key role in the initial growth of the World Wide Web....
     
    96,531,033 52.05%
    Microsoft
    Microsoft

    Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
     
    IIS
    Internet Information Services

    Internet Information Services - formerly called Internet Information Server - is a set of Internet-based services for servers created by Microsoft for use with Microsoft Windows....
     
    61,023,474 32.90%
    Google
    Google

    Google Inc. is an United States public company, earning revenue from AdWords related to its Google search, Gmail, Google Maps, Google Apps, Orkut, and YouTube services as well as selling advertising-free versions of the Google Search Appliance....
     
    GWS
    Google Web Server

    Google Web Server is the name for the web server software that Google uses for their web infrastructure.As of January 2009, it ranks #3 in the Netcraft Web Server Survey, with 5.94% of all domains and 11.31% of all active sites....
    9,864,303 5.32%
    nginx
    Nginx

    nginx is a lightweight web server/reverse proxy and e-mail proxy, licensed under a BSD licenses-like license....
     
    nginx
    Nginx

    nginx is a lightweight web server/reverse proxy and e-mail proxy, licensed under a BSD licenses-like license....
     
    3,462,551 1.87%
    lighttpd
    Lighttpd

    lighttpd is a web server designed to be secure, fast, standards-compliant, and flexible while being optimized for speed-critical environments. It was originally written by the German programmer Jan Kneschke as a proof-of-concept of the c10k problem ,...
     
    lighttpd
    Lighttpd

    lighttpd is a web server designed to be secure, fast, standards-compliant, and flexible while being optimized for speed-critical environments. It was originally written by the German programmer Jan Kneschke as a proof-of-concept of the c10k problem ,...
     
    2,989,416 1.61%
    Oversee Oversee 1,847,039 1.00%
    Others - 9,756,650 5.26%
    Total - 185,474,466 100.00%


    See :Category:Web server software for a longer list of HTTP server programs.

    See also

    • List of web server and hosting companies
    • Application server
      Application server

      An application server, in an Multitier architecture, is a server that hosts an Application programming interface to expose business logic and business processes for use by third-party Business software....
    • Comparison of web servers
      Comparison of web servers

      This article is a comparison of Web servers....
    • HTTP compression
      Http compression

      HTTP compression is a capability built into both web servers and web browsers, to make better use of available bandwidth. [] data is Data compression before it is sent from the server: compliant browsers will announce what methods are supported to the server before downloading the correct format; unsupported browsers will download uncompress...
    • Open source web application
      Open source web application

      An open source web application is software that can freely be downloaded and put on a web server....
    • SSI
      Server Side Includes

      Server Side Includes is a simple server-side scripting language used almost exclusively for the World Wide Web. As its name implies, its primary use is including the contents of one file into another one dynamically when the latter is served by a web server....
      , CGI
      Common Gateway Interface

      The Common Gateway Interface is a Standardization Protocol for interfacing external application software with an Server , commonly a web server....
      , SCGI, FastCGI
      FastCGI

      FastCGI is a Protocol for interfacing interactive programs with a web server. FastCGI is a variation on the earlier Common Gateway Interface ; FastCGI's main aim is to reduce the overhead associated with interfacing the web server and Common Gateway Interface programs, allowing a server to handle more web page requests at once....
      , PHP
      PHP

      PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
      , Java Servlet
      Java Servlet

      Servlets are Java programming language objects that dynamically process requests and construct responses. The Java Servlet API allows a software developer to add dynamic content to a Web server using the Java platform....
      , JavaServer Pages
      JavaServer Pages

      JavaServer Pages is a Java technology that allows software developers to create dynamic web page, with HTML, XML, or other document types, in response to a Web client request....
      , ASP
      Active Server Pages

      Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server ....
      , ASP .NET
      ASP.NET

      ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services....
      , Server API
      Server Application Programming Interface

      In computer science, the Server Application Programming Interface is the generic term used to designate direct module interfaces to web server application software such as the Apache HTTP Server, Microsoft IIS, or iPlanet....
    • Tiny web servers
      Tiny web servers

      Lightweight web servers are Web servers which have been designed to run with very small resource overhead because of hardware, environment, or simply for the challenge of it....
    • Virtual hosting
      Virtual hosting

      Virtual hosting is a method that Server s such as web servers use to host more than one domain name on the same computer, sometimes on the same IP address....
    • Web hosting service
      Web hosting service

      A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web....
    • Web service
      Web service

      A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network"....


    External links

    • RFC 2616, the Request for Comments
      Request for Comments

      In computer network engineering, a request for comments is a memorandum published by the Internet Engineering Task Force describing methods, behaviors, research, or innovations applicable to the working of the Internet and Internet-connected systems....
       document that defines the HTTP 1.1 protocol.
    • - Commodore 64
      Commodore 64

      The Commodore 64 is an 8-bit home computer released by Commodore International in August, 1982, at a price of United States dollar595. Preceded by the Commodore VIC-20 and Commodore MAX Machine, the C64 features 64 kilobytes of Random-access memory with sound and graphics performance that were superior to IBM-compatible computers of tha...
       running as a webserver using Contiki
      Contiki

      Contiki is a small, open source, highly porting, Computer multitasking computer operating system developed for use on a number of memory-constrained networked systems ranging from 8-bit computers to embedded systems on microcontrollers, including Wireless sensor network motes....


  •