Monday, April 2, 2007

Technical Report

Apache HTTP server is a web server, Apache able to apply on various platforms such as Unix-like systems, Microsoft windows. Novell Netware, Mac OS X and any others. The first release of Apache(version 1.x) using NCSA httpd 1.3 as a base. Due to apache was the only free web server available at the moment, Apache Web server has gain popularity in a short period of time, and turn to rival other Unix-base web server in terms of functionality and performance.

Version 2 of the Apache server was a substantial re-write of much of the Apache 1.x code, with a strong focus on further modularization and the development of a portability layer, the Apache Portable Runtime. The Apache 2.x core has several major enhancements over Apache 1.x. These include UNIX threading, better support for non-Unix platforms (such as Microsoft Windows), a new Apache API, and IPv6 support. The first alpha release of Apache 2 was in March 2000 with the first general availability release on the 6th of April 2002. Version 2.2 introduced a new auth API that allows for more flexibility. It also features improved cache modules and proxy modules.(Apache HTTP server, Wikipedia)

The key that makes Apache over other rivals is LAMP (software bundle), referring to a solution stacks of software program that includes free software programs to run dynamic Web sites. L stands of Linux, one of the major free operating system. A stands for Apache. M stands for mySQL, DBMS. P stands for PHP, Perl or Python, the server side programming language. (LAMP, Wikipedia)

By expanding apache capability, many compiled modules are ready to extend apache. For an instance, server-side programming PHP is the one of the most popular programming language that specially paired with apache to create dynamic content web pages. Authentication schemes has SSL and TSL, and also proxy modules, that resovles URL.

References:
1. New features on Apache version 2.0
http://httpd.apache.org/docs/2.0/new_features_2_0.html

2. Apache HTTP server, Wikipedia
http://en.wikipedia.org/wiki/Apache_HTTP_Server

3. Apache HTTP server project
http://httpd.apache.org/

4. LAMP(software bundle), Wikipedia
http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29

Sunday, April 1, 2007

Non-Technical Report

Often referred to as simply Apache, a public-domain open source Web server developed by a loosely-knit group of programmers. The first version of Apache, was developed in 1995 and been the most popular HTTP server.

Apache HTTP server is free/open-source web server software, that playing an important roll in the growth of the World Wide Web. Core development of the Apache Web server is performed by a group of about 20 volunteer programmers, called the Apache Group. However, because the source code is freely available, anyone can adapt the server for specific needs, and there is a large public library of Apache add-ons. In many aspects, development of Apache is similar to development of the Linux operating system.

Unlikely to other open-source/free software that under GPL license, Apache released under Apache license because there are some specific requirements conflict between Apache and GPL license.

The original version of Apache was written for UNIXbase system, but the latest version which has much improvement on supporting non-UNIX base system, for example, Microsoft Windows, OS/2, MacosX and other operating system. Moreover, Apache support various of feature, by combining other modules able to enhance the core functionality. For an instance server-side programming language (PHP) enable apache to create dynamic content web page from server-side to client, authentication schemes (SSL) enable apache for better security on data transfer. This is to avoid important information being tempered during data transfer, not only on prevention, but it also provide authentication process to ensure the information being sent to the trusted site by verifying the digital signature.

References:
1. New features on Apache version 2.0
http://httpd.apache.org/docs/2.0/new_features_2_0.html

2. Apache HTTP server, Wikipedia
http://en.wikipedia.org/wiki/Apache_HTTP_Server

3. Apache HTTP server project
http://httpd.apache.org/


Wednesday, March 28, 2007

Apache vs IIS

As mention earlier, Apache 2.0 has supported run on others platform. IIS will be one of the rival that now threatening by Apache 2.0. In terms of stability, expandability, robustness, indeed Apache 2.0 is better than IIS in any way. Apache's model uses parent and child process, generally the parent process does not thing, to let child process to handles request. If 1 of the child process malfunction, another child process will be brought up as an act of recovering. Unlikely to IIS 6.0, when some things go wrong with the process, the whole system halt. Because IIS does not support multi-threading. IIS been working a lot with the kernel, but the more code put in the kernel, the higher chance of operating system will fail. Apache has better expandability over IIS, the whole community built up apache, if there any thing which they have not discovered. The fix can be easily download from them.

Why the whole word web servers over 60 percents are using Apache, because compare the setting up fees, Apache is complete free. But when you need to run a server platform you are buying an high end version of Microsoft Windows, because IIS is built-in Microft Windows as part of a features.

Reference:
1. Apache VS IIS
http://searchwinit.techtarget.com/originalContent/0,289142,sid1_gci833798,00.html

Monday, March 26, 2007

Native Windows NT Unicode Support

According to Apache 2.0 new features, now on windows NT system uses utf-8 code for all filename encodings. So for other Unicode file system able to translate and view it on different language windows NT-based file system. But this feature doest not apply on non-NT based system like, windows 95, 98 , ME.

References:
1. Apache 2.0 Core enhancements
http://httpd.apache.org/docs/2.0/new_features_2_0.html

Sunday, March 25, 2007

mod_include - Server-Side Includes (SSI) Implementation

One of the module enhancements featuring by Apache 2.0. This mod_include implements an extended version of the Server-Side Includes (SSI) quasi-standard. Embedded programming constructs in a HTML document are evaluated effect immediately and expanded by the server before the document is sent to the client. The name of the module relates to a major goal of SSI

References:
1. Apache Module mod_include
http://httpd.apache.org/docs/2.0/mod/mod_include.html

Saturday, March 24, 2007

HTTPD Accelerators

Web server performance can be improved in many ways. Despites of upgrading the hardware running on server, performance gain can be done by applying HTTPD accelerators. Users can either run a specialized web server to handle simple static requests and pass all other requests to Apache or have a small HTTP server built into the kernel itself.

phhttpd serves all requests from a single process and uses the "sendfile" system call to put most of the work back into the kernel, besides interpreting the HTTP protocol. phhttpd cannot run on its own, as it requires a backing full server that knows how to talk with phhttpd, such as Apache. The two servers establish a line of communication while running. phhttpd listens to all the incoming connections, and if it can't parse the request for whatever reason, it hands the connection over its line to Apache to process. phhttpd keeps an aggressive cache of content that doesn't change at each request. It uses this content to reduce the amount of processing that must be done per request. It also features a nonblocking event model that allows a single thread to serve many connections. The number of threads may be scaled to match the size of the hosting machine.

To cut out the operating system overhead, a small HTTP server can be placed into the kernel itself to respond to requests for static files. It runs from within the Linux kernel as a module, handles only static web pages and passes all requests for nonstatic information to a regular user space web server such as Apache. Static web pages are not complex to serve, but they are important because virtually all images are static, as are a large portion of the HTML pages. A regular web server has little added value for static pages; it is simply a "copy file to network" operation, and the Linux kernel is good at this.


References:
1. PHHTTPD
http://docsrv.caldera.com:8457/en/Howto/phhttpd/index.html

Friday, March 23, 2007

LAMP (software bundle)

LAMP, this acronym refers to a solution stack of free software programs, to run a dynamic web servers.

Quote from wikipedia,
  • Linux, (referring to the operating system);
  • Apache, the Web server;
  • MySQL, the database management system (or database server);
  • PHP (Sometimes Perl or Python), the programming language.
These the most famous free/open-source software programs, that allow users to create their own webservers without paying a cent for licensing. Apache running on Linux be the perfect match ever, since Apache has better compatibility running on Unix-like operating system. PHP one of the most famous open-source programming language widely use by web developers, and pairing with MySQL featuring multithreaded, multi-user, SQL Database Management System. By combining these, it makes Apache web server has a power strenght competeting with the rivals.

References:
1. LAMP
http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29