Netscape Server Application Programming Interface

Last updated

The Netscape Server Application Programming Interface (NSAPI) is an application programming interface for extending server software, typically web server software.

An application programming interface (API) is an interface or communication protocol between a client and a server intended to simplify the building of client-side software. It has been described as a “contract” between the client and the server, such that if the client makes a request in a specific format, it will always get a response in a specific format or initiate a defined action.

Software Non-tangible executable component of a computer

Computer software, or simply software, is a collection of data or computer instructions that tell the computer how to work. This is in contrast to physical hardware, from which the system is built and actually performs the work. In computer science and software engineering, computer software is all information processed by computer systems, programs and data. Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.

Web server server that serves website content to clients

A web server is server software, or hardware dedicated to running said software, that can satisfy World Wide Web client requests. A web server can, in general, contain one or more websites. A web server processes incoming network requests over HTTP and several other related protocols.

Contents

History

NSAPI was initially developed by Rob McCool at Netscape for use in Netscape Enterprise Server. A variant of NSAPI can also be used with Netscape Directory Server.

Netscape is a brand name associated with the development of the Netscape web browser. It is now owned by Verizon Media, a subsidiary of Verizon. The brand belonged to the Netscape Communications Corporation, an independent American computer services company, whose headquarters were in Mountain View, California, and later Dulles, Virginia. The browser was once dominant but lost to Internet Explorer and other competitors after the so-called first browser war, its market share falling from more than 90 percent in the mid-1990s to less than 1 percent in 2006.

Because there is no formal standard, applications that use NSAPI are not necessarily portable across server software. As of 2007, varying degrees of support for NSAPI are found in Sun Java System Web Server and Zeus Web Server.

Zeus Web Server was a proprietary web server for Unix and Unix-like platforms. It was developed by Zeus Technology, a software company located in Cambridge, England. The original authors and company founders are University of Cambridge graduates Damian Reeves and Adam Twiss.

NSAPI plug-ins

Applications that use NSAPI are referred to as NSAPI plug-ins. Each plug-in implements one or more Server Application Functions (SAFs).

Plug-in (computing) software component that adds a specific feature to an existing software application

In computing, a plug-in is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization.

To use a SAF, an administrator must first configure the server to load the plug-in that implements that SAF. This is typically controlled by a configuration file named magnus.conf. Once the plug-in is loaded, the administrator can configure when the server should invoke the SAF and what parameters it should be passed. This is typically controlled by a configuration file named obj.conf.

System administrator Person who maintains and operates a computer system and/or network

A system administrator, or sysadmin, is a person who is responsible for the upkeep, configuration, and reliable operation of computer systems; especially multi-user computers, such as servers. The system administrator seeks to ensure that the uptime, performance, resources, and security of the computers they manage meet the needs of the users, without exceeding a set budget when doing so.

Configuration file software file used to configure the initial settings for a computer program

In computing, configuration files are files used to configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.

NSAPI can be compared to an earlier protocol named Common Gateway Interface (CGI). Like CGI, NSAPI provides a means of interfacing application software with a web server. Unlike CGI programs, NSAPI plug-ins run inside the server process. Because CGI programs run outside of the server process, CGI programs are generally slower than NSAPI plug-ins. However, running outside of the server process can improve server reliability by isolating potentially buggy applications from the server software and from each other.

In computing, Common Gateway Interface (CGI) offers a standard protocol for web servers to execute programs that execute like console applications running on a server that generates web pages dynamically. Such programs are known as CGI scripts or simply as CGIs. The specifics of how the script is executed by the server are determined by the server. In the common case, a CGI script executes at the time a request is made and generates HTML.

Application software computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user

Application software is software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, an email client, a media player, a file viewer, an aeronautical flight simulator, a console game or a photo editor. The collective noun application software refers to all applications collectively. This contrasts with system software, which is mainly involved with running the computer.

Computer program Instructions to be executed by a computer

A computer program is a collection of instructions that performs a specific task when executed by a computer. Most computer devices require programs to function properly.

In contrast to CGI programs, NSAPI SAFs can be configured to run at different stages of request processing. For example, while processing a single HTTP request, different NSAPI SAFs can be used to authenticate and authorize the remote user, map the requested URI to a local file system path, generate the web page, and log the request.

After Netscape introduced NSAPI, Microsoft developed ISAPI and the Apache Software Foundation developed Apache API (or ASAPI: Apache Server API). All three APIs have a number of similarities. For example: NSAPI, ISAPI and Apache API allow applications to run inside the server process. Further, all three allow applications to participate in the different stages of request processing. For example, Apache API hooks closely resemble those used in NSAPI. [1]

See also

Related Research Articles

Server-side scripting is a technique used in web development which involves employing scripts on a web server which produce a response customized for each user's (client's) request to the website. The alternative is for the web server itself to deliver a static web page. Scripts can be written in any of a number of server-side scripting languages that are available. Server-side scripting is distinguished from client-side scripting where embedded scripts, such as JavaScript, are run client-side in a web browser, but both techniques are often used together.

Website set of related web pages served from a single web domain

A website or web site is a collection of related network web resources, such as web pages, multimedia content, which are typically identified with a common domain name, and published on at least one web server. Notable examples are wikipedia.org, google.com, and amazon.com.

mod_perl is an optional module for the Apache HTTP server. It embeds a Perl interpreter into the Apache server. In addition to allowing Apache modules to be written in the Perl programming language, it allows the Apache web server to be dynamically configured by Perl programs. However, its most common use is so that dynamic content produced by Perl scripts can be served in response to incoming requests, without the significant overhead of re-launching the Perl interpreter for each request.

Web application application that uses a web browser as a client

In computing, a web application or web app is a client–server computer program which the client runs in a web browser. Common web applications include webmail, online retail sales, and online auction.

The Internet Server Application Programming Interface (ISAPI) is an N-tier API of Internet Information Services (IIS), Microsoft's collection of Windows-based web server services. The most prominent application of IIS and ISAPI is Microsoft's web server.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

Netscape Plugin Application Programming Interface (NPAPI) is an application programming interface (API) that allows browser extensions to be developed. It was first developed for Netscape browsers, starting in 1995 with Netscape Navigator 2.0, but was subsequently adopted by other browsers. With the advent of HTML5 many software vendors have removed support for this API for security reasons.

Dynamic web page

A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, including the setting up of more client-side processing.

Push notifications are small messages that can reach audiences anywhere and anytime. While pop-ups appear only when audiences are on the site they belong to, push messages are independent of sites. They are associated with web browsers and apps.

In computing, Server Application Programming Interface (SAPI) is the direct module interface to web servers such as the Apache HTTP Server, Microsoft IIS, and Oracle iPlanet Web Server. Microsoft uses the term Internet Server Application Programming Interface (ISAPI), and the defunct Netscape web server used the term Netscape Server Application Programming Interface (NSAPI) for the same purpose. In other words, SAPI is an application programming interface (API) provided by the web server to help other developers in extending the web server capabilities.

The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, as an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to parse. Unlike CGI, it permits a long-running service process to continue serving requests, thus avoiding delays in responding to requests due to setup overhead.

A Web API is an application programming interface for either a web server or a web browser. It is a web development concept, usually limited to a web application's client-side, and thus usually does not include web server or browser implementation details such as SAPIs or APIs unless publicly accessible by a remote web application.

Python Paste, often simply called paste, is a set of utilities for web development in Python. Paste has been described as "a framework for web frameworks".

Kepler is a free software project written in Lua that provides a portable, extensible website development platform. Current stable release is Kepler 1.1.1, for Lua 5.1. Kepler works on Windows and most variants of Unix.

Tntnet is Web server software, coded in C++, which enables other C++ programs to bundle requests modules. This enables developing Web applications in C++. The GET and POST requests are interpreted by the tntnet server and sent to the web application program, which will send a reply back over the network. Tntnet is free software released under the GNU Lesser General Public License (LGPL).

Java view technologies and frameworks are web-based software libraries that provide the user interface, or "view-layer", of Java web applications. Such application frameworks are used for defining web pages and handling the HTTP requests (clicks) generated by those web pages. As a sub-category of web frameworks, view-layer frameworks often overlap to varying degrees with web frameworks that provide other functionality for Java web applications.

Rack (web server interface) API specification for web applications in programming language Ruby

Rack is a modular interface between web servers and web applications developed in the Ruby programming language. With Rack, application programming interfaces (API) for web frameworks and middleware are wrapped into a single method call handling HTTP requests and responses.

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.

References

  1. "Apache API notes".