Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
Server

Server

: This article is about computer servers. For food service use, see waiter. In computing, a server is:
- A computer software application that carries out some task (i.e. provides a service) on behalf of yet another piece of software called a client. In the case of the Web: An example of a server is the Apache web server, and an example of a client is the Internet Explorer web browser or the Mozilla web browser. Other server (and client) software exists for other services such as e-mail, printing, remote login, and even displaying graphical output. This is usually divided into file serving, allowing users to store and access files on a common computer; and application serving, where the software runs a computer program to carry out some task for the users. This is the original meaning of the term. Web, mail, and database servers are what most people access when using the Internet.
- Over the years, the term has been misinterpreted (but in common usage now) to also mean the physical computer on which the server software runs. Software ultimately requires computer hardware to run, and originally server software would be run on a large powerful computer such as a mainframe computer or minicomputer. These have largely been replaced by computers built using a more robust version of the microprocessor technology than is used in personal computers, and the term "server" was adopted to describe microprocessor-based machines designed for this purpose. In a general sense, "server" machines have high-capacity (and sometimes redundant) power supplies, a motherboard built for durability in 24x7 operations, large quantities of ECC RAM, and fast I/O subsystems employing technologies such as SCSI, RAID, and PCI-X or PCI Express. It is important to note, however, that computers referred to as "servers" do not necessarily run any server software, nor is it required that server software only be run on these types of computers.

Usage

Sometimes this dual usage can lead to confusion, for example in the case of a web server. This term could refer to the machine which stores and operates the websites, and it is used in this sense by companies offering commercial hosting facilities. Alternatively, web server could refer to the software, such as the Apache HTTP server, which runs on such a machine and manages the delivery of web page components in response to requests from web browser client.

Server hardware

A server computer shares its resources, such as peripherals (i.e printer: print server) and file storage (i.e. disk: file server), with the users' computers, called clients, on a network. Thus, it is possible for a computer to be a client and a server simultaneously, by connecting to itself in the same way a separate computer would. Many new devices now come with server capabilities. The X-Internet, Web Services, and Microsoft's .NET initiative all work to make even the smallest system a server. Many large enterprises employ numerous servers to support their needs. A collection of servers in one location is often referred to as a server farm. It is possible to configure the machines to distribute tasks so that no single machine is overwhelmed by the demands placed upon it (called load balancing), and this is often done for hosts that expect tremendous amounts of activity. The terminology can be even more confusing in this case because the client (or user) will connect to a remote host to access the server application, and that server application may need to access other server software and/or another server machine. Servers are normally specialist machines developed over a couple of years to provide the reliability expected by the business users. Servers are not normally available through high street resellers and therefore can only be purchased from branded resellers. Pricing for servers start as low as $700 for small, non redundant servers, while it is possible to specify a single server that costs over $100,000, applications that require this level of computing power are usually run on many smaller servers that are in a load balancing configuration. Due to the continual demand for ever more powerful servers in ever decreasing spaces, companies such as Hewlett Packard, IBM and Dell have developed higher density configurations, the most notable of which is known as the blade server. Blade servers incorporate a number of server computers – sometimes as many as fourteen – each housed inside a high-density module known as a "blade", within the space typically occupied by a single computer.
- [http://www.sun.com/servers/index.jsp SUN Servers]
- [http://www.ibm.com/servers/ IBM Servers]
- [http://welcome.hp.com/country/uk/en/prodserv/servers.html HP Servers]
- [http://www1.us.dell.com/content/topics/segtopic.aspx/products40/categories/en/servers_beta?c=us&cs=555&l=en&s=biz Dell Servers]

Server operating systems

The rise of the microprocessor-based server was facilitated by the development of several versions of the Unix operating system to run on the Intel microprocessor architecture, including Solaris, Linux and FreeBSD. The Microsoft Windows series of operating systems also now includes server versions that support multitasking and other features beneficial for server software, beginning with Windows NT. The current Windows Server version is Windows Server 2003. There are many servers running Linux versions such as Red Hat Linux, SUSE SLES, and Debian, which have generally proven to be more stable than Windows machines. There are an increasing number of servers running Mac OS X as organizations begin to realize the potential and stability that arises from having the hardware and software properly fitted and vetted. Most technical servers continue to be Sun, SGI, or HP workstations as they are proven and generally stable servers.

X Window server

The X Window System can cause some confusion in the understanding of servers and clients. One might expect that the "server" in X would refer to the computer on which individual programs are running and the client to be the computer the human user is physically in front of. In reality, an X server provides access (i.e. service) to computer input and output devices, such as monitors, keyboards, and mice. Thus the X client runs on the computer doing all the internal software computation, while the X server runs on the computer that actually displays the graphical output on its monitor, interacting with a human user. The X Window System (which speaks the X protocol) is able to operate over a network, because it is designed to be client/server based. The only requirement for a client to connect to a server is a network connection. However, in most situations, the server and clients run on the same physical machine. In this case, either UNIX local sockets or a loopback interface act as transparent media for network connections between client and server.

Historical note

Mainframes and minicomputers were originally accessed using dumb terminals, which were unable to carry out any significant processing. This largely ended with the widespread use of personal computers, a.k.a. PCs, by users.

See also


- Mail server
- Instant messaging server
- Web server
- FTP server
- image server
- Central ad server
- server log
- streaming media server
- sound server
- peer-to-peer
- client-server model
- History of computing hardware (1960s-present)
- CORBA
- Dedicated server

External links


- [http://www.myserver.us/ Directory of Hosting/Server Providers]
- [http://www.cs.rice.ty.edu/CS/Systems/ScalaServer/ System support for scalable network servers]
- [http://www.kegel.com/c10k.html The C10K problem]
- [http://groups.google.de/groups?group=comp.programming.threads&threadm=580fae16.0312210310.1410bf2b%40posting.google.com Discussion "Writing a scalable server"]
- [http://faqs.lomonline.de/what-is-a-server What is a server] als:Server ko:서버 ja:サーバ simple:Server th:เซิร์ฟเวอร์

Waiter

A waiter is a person who "waits" on tables, often at a restaurant. A female waiter is often called a waitress, though the gender-neutral term "server" and collective noun "waitstaff" are gaining ground. Waiters' duties include preparing tables for a meal, taking customers' orders and serving drinks and food in a restaurant. Depending on the type of restaurant, this may involve other uncommon duties, such as singing a birthday song to customers who are celebrating a birthday. A theme restaurant may even require waiters to dance. "Silver Service" waiters are specially trained to serve at banquets or high-end restaurants. They follow specific rules of service and it is a skilled job. They generally wear black and white with a long, white apron (extending from the waist to ankle). The head waiter is in charge of the staff of waiters, and is also responsible for assigning seating. This person can also be referred to as the maître d'hôtel. Some restaurants employ busboys to assist the waiters. In the United States and some other Western countries, it is traditional to tip a waiter after a meal. In the U.S., waiters often are paid a minimum wage lower than the legally required minimum wage for most other occupations, as their income is supplemented by tips they receive. For example, servers in Georgia are generally paid around $2.13 an hour. In contrast to this practice, waiters in many East Asian countries refuse tips, where they are sometimes considered an insult. Many cultures in the region believe that leaving a tip implies that the waiter is not being paid enough by his or her employer. Tipping is not traditional in Australia or New Zealand and is not factored into wages of waitstaff. However, tips are appreciated especially if the customer or party has been unusually difficult or has left a mess. Many parents of small children leave a small tip. Tips in Australia, because they are not a significant part of the income of the service staff are usually token amounts rather than a percentage of the bill. 'Waiting tables' is one of the most common occupations in the U.S. (along with nursing, and teaching). The Bureau of Labor Statistics estimates that, as of May 2004, there are over 2.2 million ([http://www.bls.gov/oes/current/oes353031.htm]) persons employed as waiters and waitresses in the U.S.

Waiters in fiction and film


- William Somerset Maugham: Of Human Bondage
- James M. Cain: Mildred Pierce
- Terrence McNally: Frankie and Johnny in the Clair de Lune (filmed as Frankie and Johnny)
- Garçon! (Claude Sautet; France, 1983)
- Team Mew Mew from Tokyo Mew Mew
- Amélie Poulain (Audrey Tautou) in Le Fabuleux Destin d'Amélie Poulain
- Tyler Durden from Fight Club
- Reservoir Dogs features a lengthy dialog on the principles of tipping. Pulp Fiction has a brief cameo by Steve Buscemi as a cynical Buddy Holly-lookalike waiter
- Monty from Waiting...
- It Could Happen to You
- Cocktail with Tom Cruise as a barman
- Rachel Green (Jennifer Aniston) as a coffeehouse waitress in the first three seasons of Friends
- Joanna from Office Space : Category:Food services occupations simple:Waiter

Computer software

Computer software (or simply software) is that part of a computer system that consists of symbolicly encoded information as opposed to the physical computer equipment (hardware) which is used to store and process this information. The term is roughly synonymous with computer program but is more generic in scope. The term "software" was first used in this sense by John W. Tukey in 1957. In computer science and software engineering, computer software is all information processed by computer systems, programs and data. The concept of software was first proposed by Alan Turing in an essay.

Relationship to hardware

Computer software is so called in contrast to computer hardware, which is the physical substrate which is required to store and execute (or run) the software. In computers, software is loaded in RAM and executed on the central processing unit. At the lowest level, software consists of a machine language specific to an individual processor. Machine language consists of groups of binary values signifying processor instructions and data. Software is generally written in high-level languages that are easy and efficient for humans to use. High-level languages are compiled into machine language.

Relationship to data

Software has historically been considered an intermediary between electronic hardware and data, which the hardware processes according to instructions defined by the software. As computational science becomes increasingly complex, the distinction between software and data becomes less precise. Data has generally been considered as either the output or input of software. However, data is not the only possible output or input. For example, configuration information can also be considered input, although not necessarily considered data. The output of a particular piece of software may be the input for another piece of software. Therefore, software may be considered an interface between hardware, data, or software.

System, application and programming software

Practical computer systems divide software into three major classes: system software, application software and programming software, although the distinction is somewhat arbitrary, and often blurred. :System software helps run the computer hardware and computer system. It includes operating systems, device drivers, diagnostic tools, servers, windowing systems, utilities and more. :Application software allows a user to accomplish one or more specific tasks. Typical applications include office suites, business software, educational software, databases and computer games. Most application software has a graphical user interface (GUI). :Programming software usually provides some useful tools to help programmer to write computer programs and software using different programming language in a more convenient way. The tools include text editor, compiler, interpreter, linker, debugger, and so on. Integrated development environment (IDE) merges those tools in a software bundle, and programmer may not need to type a lot of commands for compiling, interpreter, debugging, tracing, and etc., because IDE mostly has a GUI.

Software program and library

Software program is usually the directly executable part of a software. Software libraries are software components that are used by stand-alone programs, but which cannot be executed on their own.

Users see three layers of software

Software libraries Users often see things differently than programmers. People who use modern general purpose computers (as opposed to embedded systems) usually see three layers of software performing a variety of tasks: platform, application, and user software. ; Platform software : Platform includes the basic input-output system (often described as firmware rather than software), device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment). Platform software often comes bundled with the computer, and users may not realize that it exists or that they have a choice to use different platform software. ; Application software : Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are almost always independent programs from the operating system, though they are often tailored for specific platforms. Most users think of compilers, databases, and other "system software" as applications. ; User-written software : User software tailors systems to meet the users specific needs. User software include spreadsheet templates, word processor macros, scientific simulations, graphics and animation scripts. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. See also: Software architecture.

Software creation

Look back to Computer software

Software operation

Computer software has to be "loaded" into the computer's storage (also known as memory and RAM). Once the software is loaded, the computer is able to operate the software. Computers operate by executing the computer program. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation -- moving data, carrying out a computation, or altering the flow of instructions. Kinds of software by operation: computer program as executable, source code or script, configuration.

Software quality and reliability

Software reliability considers the errors, faults, and failures related to the creation and operation of software. See Software quality, Software testing, and Software reliability.

Software patents

The issue of software patents is very controversial, since while patents protect the ideas of "inventors", they are widely believed to hinder software development. See Hacker ethic

See also


- Shared meanings: System software, Application software, Computer programs,
- Computing
- Computer programming
  - Programming languages
  - Text editors
  - Compilers
  - Algorithms
  - Software development process
  - Software development tools
  - Software maintenance
  - Software optimization
  - Application Programming Interface (API)
  - Software brittleness
- Software engineering
- Software licenses
  - Open source software
  - Software piracy
- Software as a Service
- Shovelware
- Freeware
- Postcardware
- Shareware
- Origins of computer terms
- Uninstaller
- Free software ko:컴퓨터 소프트웨어 ja:ソフトウェア simple:Software th:ซอฟต์แวร์



Apache HTTP Server

Apache HTTP Server is a free software/open source HTTP web server for Unix-like systems (BSD, Linux, and UNIX systems), Microsoft Windows, Novell Netware and other platforms. Apache features highly configurable error messages, DBMS-based authentication databases, and content negotiation. It is also supported by several graphical user interfaces (GUIs) which permit easier, more intuitive configuration of the server. The Apache HTTP Server is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.

History

Initially, Apache was the only viable open source alternative to the Netscape web server (currently known as Sun Java System Web Server). It has since evolved to rival other Unix-based HTTP servers in terms of functionality and performance. Since April 1996 Apache has been the most popular HTTP server on the Internet: in May 1999 it was running on 57% of all web servers; by November 2005 the usage had increased to 69% ([http://news.netcraft.com/archives/2005/11/07/november_2005_web_server_survey.html Netcraft Web Server Survey, November 2005]). The author claims the name was initially chosen as a catchy name in order to be original, but the most widespread interpretation (which almost immediately surfaced) is that the name comes from the fact that when it was developed in early 1995, it consisted of changes in the code to the most popular HTTP server of the time, NCSA HTTPd 1.3 and was therefore "a patchy" server. However, in the FAQ on the server's official site, it is stated: "The name 'Apache' was chosen from respect for the Native American Indian tribe of Apache (Indé), well-known for their superior skills in warfare strategy and their inexhaustible endurance". Regardless, version 2 of the Apache server was written from scratch and contains no code from NCSA. From the [http://httpd.apache.org/ABOUT_APACHE.html official Apache site]: :In February of 1995, the most popular server software on the Web was the public domain HTTP daemon developed by Rob McCool at the National Center for Supercomputing Applications, University of Illinois, Urbana-Champaign. However, development of that httpd had stalled after Rob left NCSA in mid-1994, and many webmasters had developed their own extensions and bug fixes that were in need of a common distribution. A small group of these webmasters, contacted via private e-mail, gathered together for the purpose of coordinating their changes (in the form of "patches"). Brian Behlendorf and Cliff Skolnick put together a mailing list, shared information space, and logins for the core developers on a machine in the California Bay Area, with bandwidth donated by HotWired.

Usage

Apache is the web server component of the popular web server application stack called LAMP (Linux, Apache, MySQL, PHP/Perl/Python). Apache is redistributed as part of various proprietary packages, e.g., the Oracle database or the IBM WebSphere application server. Mac OS X integrates Apache as its built-in web server. It is also supported in some way by Borland in the Kylix and Delphi development tools. Apache is included with Novell Netware 6.5, where it is the default web server.

Features

Apache supports a variety of features, many implemented as compiled modules. These can range from server-side programming language support to authentication schemes. Some common language interfaces support Perl, Python, Tcl, and PHP. Popular authentication modules include mod_access, mod_auth, and mod_digest. A sample of other features include SSL and TLS support (mod_ssl), a proxy module, a useful URL rewriter (also known as a rewrite engine, implemented under mod_rewrite), custom log files (mod_log_config), and filtering support (mod_include and mod_ext_filter). Apache logs can be analysed through a web browser using free scripts such as AWStats or Visitors.

Version 2.x

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 Windows), a new Apache API, and IPv6 support.

Competitors

According to statistics from the firm Netcraft, Apache is the most widely deployed web server in the world as of 2005 [http://news.netcraft.com/archives/web_server_survey.html]. Microsoft's Internet Information Services (IIS) is the main competitor to Apache, trailed by Sun Microsystem's Sun Java Web Server (formerly Sun ONE) and a host of other applications such as Zeus.

See also


- Stronghold, commercial version distributed by Red Hat
- List of Web servers
- ApacheBench

External links


- [http://httpd.apache.org/ Apache official website]
- [http://httpd.apache.org/docs/2.0/new_features_2_0.html New Features in Apache 2.0]
- [http://httpd.apache.org/docs/2.2/new_features_2_2.html New Features in Apache 2.2]
- [http://svn.apache.org/viewcvs.cgi/httpd/httpd/trunk/ SVN trunk of Apache 2.x]
- [http://apache.on-the-net.com/ Apache GUIs]
- [http://uptime.netcraft.com/up/ Netcraft Uptime Survey], a service tracking uptime of web servers
- [http://www.onlamp.com/apache/ Apache DevCenter]
- [http://www.apacheweek.com/ Apache Week]
- [http://www.apachenews.org/ Apache News Online]
- [http://dmoz.org/Computers/Software/Internet/Servers/WWW/Apache/ Links at Open Directory Project]
- [http://aap.sourceforge.net/ Accelerating Apache Project]
- [http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html URL Rewriting with mod_rewrite] - using one of Apache's modules to redirect requests.
- [http://www.doriat.com/mod_rewrite6.html How to mod_rewrite site powered by php script] article from [http://www.doriat.com Mod_Rewrite Tutorials]
- How To: [http://www.sematopia.com/?p=28 Install Apache, PHP, PEAR, MySQL & phpMyAdmin for Windows XP]
- [http://www.linux.com/article.pl?sid=04/05/24/1450203 Chrooting Apache] by Mike Peters Category:Web server software Category:Apache Software Foundation projects ja:Apache

Internet Explorer

Internet Explorer, abbreviated IE or MSIE, is a proprietary web browser made by Microsoft and currently available as part of Microsoft Windows. Internet Explorer is the most widely used web browser today, although since 2004 it has lost some usage share to other browsers. As of October 2005, IE's usage share is about 86% (see the market adoption section). Internet Explorer is an integrated component of all current versions of Microsoft Windows. Microsoft has shipped Internet Explorer as the default browser in all versions of Microsoft Windows since Windows 95 OSR1. The last major upgrade to Internet Explorer, however, was only offered for Windows XP Service Pack 2. The beta version of Internet Explorer 7 for Windows XP SP2 has been available since July 27, 2005. Internet Explorer had also been available as a separate, free-of-charge product for many older versions of Windows, and several other operating systems. For some time, Microsoft produced Internet Explorer for Mac and versions for use through the X Window System on Solaris and HP-UX. All of these versions have ceased active development, although Internet Explorer for Mac is still available for download. Internet Explorer is now known as Microsoft Internet Explorer, but the name will be slightly changed to Windows Internet Explorer in Windows Vista.

History

Windows Vista Internet Explorer is derived from Spyglass Mosaic, an early commercial web browser. In 1995, Spyglass Mosaic was licensed by Microsoft in an arrangement under which Spyglass would receive a quarterly fee plus a percentage of Microsoft's revenues for the software. Although bearing a name similar to NCSA Mosaic, which was the first widely used browser, Spyglass Mosaic was relatively unknown in its day and did not use any of the NCSA Mosaic source code . Internet Explorer 3 was the first major browser with CSS support, and it could handle the PICS system for content metadata. The improvements were significant, compared to its main competitor at the time, Netscape Navigator. The browser was not widely used until version 4, which was released in October 1997 and was integrated with the Windows 98 operating system. This integration, however, was subject to numerous criticisms (see United States v. Microsoft). Version 5, released in September 1998, was another significant release which supported bi-directional text, ruby characters, XML and XSL. Version 6 was released on August 27, 2001, a few weeks before Windows XP. This version included DHTML enhancements, content restricted inline frames, and better support of CSS level 1, DOM level 1 and SMIL 2.0. The MSXML engine was also updated to version 3.0. Other new features included a new version of the IEAK, Media bar, MSN Messenger integration, fault collection, automatic image resizing, P3P, and a new look-and-feel which is in line with the style of Windows XP. P3P On February 15, 2005, Microsoft Chairman Bill Gates announced a new browser version at the RSA Conference 2005 in San Francisco . The new beta version has been released on July 27, 2005. Internet Explorer 7 will be available to Windows XP SP2 and later only, including Windows XP Professional x64 Edition and Windows Server 2003 SP1 . The new version of Internet Explorer is intended to defend users from phishing as well as deceptive or malicious software, and will include important bug fixes and some enhancements to better support the web standards. The decision to update the browser occurred in the wake of a decline in the use of Internet Explorer for the first time (see the market adoption section). An updated beta 2 featuring improvements in HTML 4.01 and CSS 2 was expected to be released in the fourth quarter of 2005.

Features

Internet Explorer has been designed to view the broadest range of web pages and to provide certain features within the operating system, including Windows Update. During the heydays of the historic browser wars, Internet Explorer superseded Netscape by supporting many of the progressive features of the time.

Component architecture

The Component Object Model (COM) technology is used extensively in Internet Explorer. It allows third parties to add functionalities via Browser Helper Objects (BHO); and allows websites to offer rich content via ActiveX. As these objects have the same privileges as the browser itself (in certain situations), this raised concern over security. This issue was addressed in Internet Explorer 6.0 Service Pack 2, which provides an Add-on Manager for controlling ActiveX controls and Browser Helper Objects.

Usability and accessibility

Add-on Since it is tightly integrated with the operating system, Internet Explorer makes use of the accessibility framework provided in Windows. Internet Explorer is also a user interface for FTP, with operations similar to that of Windows Explorer. The ability to block pop-up windows (unrequested windows created with JavaScript) was introduced with Internet Explorer 6.0, Service Pack 2. Tabbed browsing, while not natively supported, can be added to Internet Explorer 6 by installing Microsoft's MSN Search Toolbar. According to [http://blogs.msdn.com/ie/archive/2005/05/16/417732.aspx a post in IEBlog], the browser will support tabbed browsing in version 7.0, and the Beta 1 version of IE 7 includes tabbed browsing. Web Feeds support is built in version 7.0; users can read Web Feeds(RSS/Atom) without an RSS reader and it discovers web feeds automatically.

Security framework

Internet Explorer uses a zone-based security framework, which means that sites are grouped based upon certain conditions. It allows the restriction of broad areas of functionality, and also allows specific functions to be restricted. Patches and updates to the browser are released periodically and made available through Windows Update website. Although security patches continue to be released for a range of platforms, most recent feature additions and security improvements are released for Windows XP only. A report in April 2005 showed that only [http://www.winplanet.com/article/2825-.htm 24% of corporate PCs] had upgraded to XP SP2.

Standards support

Internet Explorer almost fully supports HTML 4.01, CSS Level 1, XML 1.0 and DOM Level 1, with minor implementation gaps. It partially supports CSS Level 2 and DOM Level 2, with some implementation gaps and conformance issues. It supports XHTML 1.0 to the extent that HTML 4.01 compatibility guidelines are followed. Internet Explorer uses DOCTYPE sniffing to choose between "quirks mode" (renders similarly to older versions of MSIE) and standards mode (renders closer to W3C's specifications) for HTML and CSS rendering. It fully supports XSLT 1.0 or the December 1998 Working Draft of XSL, depending on the version of MSXML (a dynamic link library) available. It also provides its own dialect of ECMAScript called JScript. Internet Explorer supports a variety of graphics file formats, including GIF, JPEG and PNG. The long-waited support for PNG alpha channel was introduced in 7.0 Beta 1.

Proprietary extensions

Internet Explorer has introduced an array of proprietary extensions to many of the standards, including HTML, CSS and the DOM. This has resulted in a number of web pages that can only be viewed properly using Internet Explorer. Many view this as an example of what is called "embrace, extend and extinguish" (EEE), a way to drive competitors out of business by forcing them to use proprietary technology that a company controls, resulting in vendor lock-in. Netscape Navigator up to version 4.7 was also responsible for massive proprietary extension of the core web standards, but was not criticized for it as much.

Criticisms

Internet Explorer is subject to a relatively high volume of criticism. Much of this criticism is related to concerns about security: A notable portion of the widespread promulgation of spam, spyware, adware, and computer viruses across the Internet is known to be facilitated by exploitable bugs and flaws in the security architecture of Internet Explorer. Furthermore, a notable number of users and security experts have pointed out that Microsoft has not been sufficiently committed to fixing the browser's exploitable bugs in a timely manner, and has been ineffective in pushing those changes out to users. Several companies maintain databases of security vulnerabilities known to exist in Internet Explorer and for which no fixes have been published by Microsoft — as of June 2005, there are between 20 and 27 such vulnerabilities reported in Internet Explorer 6 for Windows XP SP2, and 146 in Internet Explorer 6 for Windows 2000 SP4. Other criticisms, mostly coming from technically proficient users and developers of websites and browser-based software applications, concern Internet Explorer's support of open standards. Internet Explorer supports, to some degree, a number of standardized technologies, but has implementation gaps and conformance failures – some minor, some not – that have led to criticism from an increasing number of developers. The increase is attributable, in large part, to the fact that competing browsers that offer relatively thorough, standards-compliant implementations are becoming more widely used. Internet Explorer's ubiquity, in spite of its perceived inferiority in this area, frustrates developers who want to write standards-compliant, cross-browser code. See also: Common criticisms of Microsoft.

Market adoption

Usage share

:Statistics reference: Usage share of web browsers Usage share of web browsers The adoption rate of Internet Explorer seems to be closely related to that of Microsoft Windows, as it is the default web browser that comes with Windows. Since the integration of Internet Explorer 3.0 with Windows 95 OSR 2 in late 1996, the adoption was greatly accelerated: from below 20% in 1996 to about 40% in 1998 and over 80% in 2000. It was often credited for bringing the World Wide Web to newbies. This effect, however, has recently been dubbed the "Microsoft monoculture", by analogy to the problems associated with lack of biodiversity in an ecosystem. By 2002, Internet Explorer had almost completely superseded its main rival Netscape and dominated the market. After having fought and won the browser wars of the late 1990s, Internet Explorer began to see its usage share shrink. Having attained a peak of about 96% in 2002, it has since been in a steady decline. Statistics indicate the current most significant competition comes from Gecko-based browsers, in particular Mozilla Firefox. Nevertheless, Internet Explorer remains the dominant web browser, with an usage share of around 85% (based on statistics reference).

Industry adoption

ActiveX is used by many public websites and web applications, including eBay. Similarly, BHOs are also used by many search engine companies and third parties for creating add-on that access their services, for example, search engine toolbar. Because of the use of COM, it is possible to include web browsing function in application. Hence, there are a number of Internet Explorer shells, and a number of application like RealPlayer (a media player) also used the Internet Explorer's web browsing module for viewing the World Wide Web within the applications.

"Standalone" Internet Explorer

While it is not officially possible to keep multiple versions of Internet Explorer on the same machine, some hackers (Joe Maddalone, Ryan Parman, et al.) successfully separated several versions of Internet Explorer making them standalone applications. These were referred as "standalone" IEs and included versions 3.0 to 5.5 SP2.
- [http://labs.insert-title.com/labs/article795.aspx Multiple IEs In Windows Web Design] — The web developer Joe Maddalone who found the solution.
- [http://www.skyzyx.com/downloads/ Skyzyx.com - Standalone Internet Explorer] — The web developer Ryan Parman who made the customized browsers files available.
- [http://www.quirksmode.org/browsers/multipleie.html Multiple Explorers] — Downloads of all the versions Microsoft has discontinued standalone installers for Internet Explorer to the general public. However, a blogger/web developer/programmer named Liew Cheon Fong has posted a procedure for downloading the complete install package.
- [http://www.liewcf.com/blog/archives/2005/04/download-full-internet-explorer-6-sp1-standalone-installer/ Standalone Install Procedure for IE6 SP1]

Removal

The idea of removing Internet Explorer from a Windows system was first proposed during the antitrust case. Critics felt that user should have the right to uninstall Internet Explorer freely just like any other application software. One of Microsoft's arguments during the trial was that removing Internet Explorer from Windows may result in system instability. At least one commentator supports this argument, and notes that removing Internet Explorer will also disable Windows Update, leaving the user without vital security updates to the operating system. However, an Australian computer scientist Shane Brooks later demonstrated that Windows 98 could in fact run with IE files removed . Brooks went on to develop software designed to customize Windows by removing "undesired components", which is now known as 98lite/XPLite. Microsoft has claimed that the software did not remove all components of Internet Explorer, leaving many DLL files behind.

Footnotes

# [http://biztech.ericsink.com/Browser_Wars.html Memoirs From the Browser Wars], May 12, 2005. # [http://www.zone-h.org/en/news/read/id=2789/ Microsoft to abandon standalone IE], May 12, 2005. # [http://www.microsoft.com/presspass/press/2005/feb05/02-15RSA05KeynotePR.asp Gates Highlights Progress on Security, Outlines Next Steps for Continued Innovation], May 12, 2005. # [http://blogs.msdn.com/ie/archive/2005/02/28/382054.aspx IE7 Platforms and Outlook Express], May 12, 2005. # [http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm U.S. v. Microsoft: Court's Findings of Fact], May 12, 2005.

References


-
-

See also


- History of the Internet
- Internet Explorer shell
- List of web browsers
- Comparison of web browsers

External links


- [http://www.microsoft.com/windows/ie/ Internet Explorer Home]
- [http://blogs.msdn.com/ie IEBlog] – The weblog of the Internet Explorer team
- [http://channel9.msdn.com/wiki/default.aspx/Channel9.InternetExplorer Channel9 Wiki: InternetExplorer] – The wiki for Internet Explorer
- [http://www.microsoft.com/windows/ie/community/ Internet Explorer Community] – The official Microsoft Internet Explorer Community
- [http://support.microsoft.com/default.aspx?id=293907 How to Uninstall Internet Explorer 6] – A Microsoft support article for pre-XP versions of Windows
- [http://secunia.com/product/11/ Secunia Vulnerability Report for Microsoft Internet Explorer 6.x] Category:Internet Explorer Category:Windows web browsers Category:Microsoft Internet applications ko:인터넷 익스플로러 ms:Internet Explorer ja:Internet Explorer simple:Internet Explorer th:อินเทอร์เน็ตเอ็กซ์พลอเรอร์

Web browser

A web browser is a software application, technically a type of HTTP client, that enables a user to display and interact with HTML documents hosted by web servers or held in a file system. Popular browsers available for personal computers include Microsoft Internet Explorer, Mozilla Firefox, Opera, Netscape, Apple Safari and Konqueror. A browser is the most commonly used kind of user agent. The largest networked collection of linked documents is known as the World Wide Web.

Protocols and standards

Web browsers communicate with web servers primarily using HTTP (hyper-text transfer protocol) to fetch webpages. HTTP allows web browsers to submit information to web servers as well as fetch web pages from them. As of writing, the most commonly used HTTP is HTTP/1.1, which is fully defined in RFC 2616. HTTP/1.1 has its own required standards which Internet Explorer does not fully support, but most other current-generation web browsers do. Pages are located by means of a URL (uniform resource locator), which is treated as an address, beginning with http: for HTTP access. Many browsers also support a variety of other URL types and their corresponding protocols, such as ftp: for FTP (file transfer protocol), gopher: for Gopher, and https: for HTTPS (an SSL encrypted version of HTTP). The file format for a web page is usually HTML (hyper-text markup language) and is identified in the HTTP protocol using a MIME content type. Most browsers natively support a variety of formats in addition to HTML, such as the JPEG, PNG and GIF image formats, and can be extended to support more through the use of plugins. The combination of HTTP content type and URL protocol specification allows web page designers to embed images, animations, video, sound, and streaming media into a web page, or to make them accessible through the web page. Early web browsers supported only a very simple version of HTML. The rapid development of proprietary web browsers led to the development of non-standard dialects of HTML, leading to problems with Web interoperability. Modern web browsers support standards-based HTML and XHTML, which should display in the same way across all browsers. Internet Explorer does not fully support HTML 4.01 and XHTML 1.x yet. Currently many sites are designed using WYSIWYG HTML generation programs such as Macromedia Dreamweaver or Microsoft Frontpage. These often generate non-standard HTML by default, hindering the work of the W3C in developing standards, specifically with XHTML and CSS (cascading style sheets, used for page layout). Some of the more popular browsers include additional components to support Usenet news, IRC (Internet relay chat), and e-mail. Protocols supported may include NNTP (network news transfer protocol), SMTP (simple mail transfer protocol), IMAP (Internet message access protocol), and POP (post office protocol). These browsers are often referred to as Internet suites or application suites rather than merely web browsers.

Brief history

Tim Berners-Lee, who pioneered the use of hypertext for sharing information, created the first web browser, named WorldWideWeb, in 1990 and introduced it to colleagues at CERN in March 1991. Since then the development of web browsers has been inseparably intertwined with the development of the web itself. The web browser was thought of as a useful application to handle CERN's huge telephone book. In terms of user interaction it follows the protocols gopher/telnet, enabling every user to easily browse sites others have written. However, it was the later integration of graphics into the web browser that made it the "killer application" of the internet. The explosion in popularity of the web was triggered by NCSA Mosaic which was a graphical browser running originally on Unix but soon ported to the Apple Macintosh and Microsoft Windows platforms. Version 1.0 was released in September 1993. Marc Andreessen, who was the leader of the Mosaic team at NCSA, quit to form a company that would later be known as Netscape Communications Corporation. Netscape released its flagship Navigator product in October 1994, and it took off the next year. Microsoft, which had thus far missed the wave, now entered the fray with its Internet Explorer product, hastily purchased from Spyglass Inc. This began the browser wars, the fight for the web browser market between the software giant Microsoft and Netscape, the startup company largely responsible for popularizing the World Wide Web. The wars put the web in the hands of millions of ordinary PC users, but showed how commercialization of the web could stymie standards efforts. Both Microsoft and Netscape liberally incorporated proprietary extensions to HTML in their products, and tried to gain an edge by product differentiation. Starting with the acceptance of the Microsoft proposed Cascading Style Sheets over Netscape's JavaScript Style Sheets (JSSS) by W3C, the Netscape browser started being generally considered inferior to Microsoft's browser version after version, from feature considerations to application robustness to standard compliance. The wars effectively ended in 1998 when it became clear that Netscape's declining market share trend was irreversible. This trend may have been due in part to Microsoft's integrating its browser with its operating system and bundling deals with OEMs; Microsoft faced antitrust litigation on these charges. Netscape responded by open sourcing its product, creating Mozilla. This did nothing to slow Netscape's declining market share. The company was purchased by America Online in late 1998. At first, the Mozilla project struggled to attract developers, but by 2002 it had evolved into a relatively stable and powerful internet suite. Mozilla 1.0 was released to mark this milestone. Also in 2002, a spin off project that would eventually become the popular Mozilla Firefox was released. In 2004, Firefox 1.0 was released. As of 2005, Mozilla and its derivatives account for approximately 10% of web traffic. Opera, a speedy browser popular in handheld devices and in some countries was released in 1996 and remains a niche player in the PC web browser market. The Lynx browser remains popular for Unix shell users and with vision impaired users due to its entirely text-based nature. There are also several text-mode browsers with advanced features, such as Links and its forks such as ELinks. While the Macintosh scene too has traditionally been dominated by Internet Explorer and Netscape, the future appears to belong to Apple's Safari which is based on Apple's WebCore layout engine, derived from the KHTML layout engine of the open source Konqueror browser. Safari is the default browser on Mac OS X. In 2003, Microsoft announced that Internet Explorer would no longer be made available as a separate product but would be part of the evolution of its Windows platform, and that no more releases for the Macintosh would be made. However, more recently in early 2005, Microsoft changed its plans and announced that version 7 of Internet Explorer would be released for its Windows XP and Windows 2003 Server operating systems in addition to the upcoming "Windows Vista" operating system.

Features

Different browsers can be distinguished from each other by the features they support. Modern browsers and web pages tend to utilize many features and techniques that did not exist in the early days of the web. As noted earlier, with the browser wars there was a rapid and chaotic expansion of browser and World Wide Web feature sets. The following is a list of some of the most notable features:

Standards support


- HTTP and HTTPS
- HTML, XML and XHTML
- Graphics file formats including GIF, PNG, JPEG and SVG
- Cascading Style Sheets
- JavaScript (Dynamic HTML)
- Cookie
- Digital certificates
- Favicons
- RSS, Atom

Fundamental features


- Bookmark manager
- Caching of web contents
- Support of media types via plugins such as Macromedia Flash and QuickTime

Usability and accessibility features


- Autocompletion of URLs and form data
- Tabbed browsing
- Spatial navigation
- Caret navigation
- Screen reader or full speech support

Annoyances removers


- Pop-up ad blocker
- Ad filtering
- Phishing

See also


- History of the Internet
- Accessibility
- Browser exploit
- Microbrowser
- Web application
- List of web browsers
- Comparison of web browsers
- Usage share of web browsers
- Refreshing/reloading a page

External links


- [http://www.blooberry.com/indexdot/history/browsers.htm Browser timeline (1993-2001)]
- [http://browsers.evolt.org evolt.org - Browser Archive]
- [http://www.dejavu.org Deja Vu: (re-)creating web history]
- [http://livinginternet.com/w/wi_browse.htm Web Browser History]
- [http://danvine.com/icapture iCapture - Safari "emulator"]
- [http://www.anybrowser.org/campaign/ Viewable with Any Browser: Campaign]
- [http://darrel.knutson.com/mac/www/browsers.html Macintosh Web Browsers]
- [http://www.aadmm.de MultiOS Browser Test]
- [http://www.w3schools.com/browsers/browsers_stats.asp W3Schools Browser Statistics]
- [http://www.windowsecurity.com/articles/Web-Browser-Vulnerabilities.html Web Browser Vulnerabilities: Is Safe Surfing Possible?] Category:Internet
-
zh-min-nan:Bāng-ia̍h liû-lám-khì ko:웹 브라우저 ms:Pelayar web ja:Webブラウザ simple:Web browser th:โปรแกรมค้นดูเว็บ

File server

In telecommunication, the term file server has the following meanings:
- A high-capacity disk storage device or a computer that hosts files so that they may be accessed or retrieved by other computers on the same network.
- A computer program, that allows different programs, running on other computers, to access the files of that computer. A server can be used for a wide range of purposes. Some of them are:
- An FTP (File Transfer Protocol) server for transferring files.
- An HTTP (Hyper-Text Transfer Protocol) server to transfer web pages and files.
- An IMAP (Internet Message Access Protocol) server for receiving email.
- A POP3 (Post Office Protocol version 3) server for receiving email.
- An SMTP (Simple Mail Transfer Protocol) server for sending email.
- A Telnet server which allows remote control of programs run on the server. Any given server may be any number of these types of servers simultaneously. In particular, many servers serve Telnet (or the more secure alternative SSH) in addition to their primary role, so that system administrators can handle problems quickly without physical access to the server. Source: from Federal Standard 1037C Category:Network-related software ja:ファイルサーバ

Computer program

A computer program or software program (usually abbreviated to "a program") is a step-by-step list of instructions written for a particular computer architecture in a particular computer programming language. A layman equivalent example would be writing a step-by-step list of instructions in English instructing a human how to make a Peanut butter and jelly sandwich (the human being the specific architecture). More often than not, computer programs are compiled or assembled into non-human readable format. Executable uncompiled programs are referred to as scripts.

Terminology

The term "program" specifically refers to the blocks of instruction code that are loaded into memory for execution by an interpreter. (See Program Execution below.) In comparison, the term "software" refers to the computer program and any resources related to it. This would include static data, components (plugins), configuration files, and so on. These resources are usually bundled together into a software package to be distributed. Software programs (collections of programs and related resources) are most frequently referred to as applications by end-users, as most users are focused on the abilities of application software (application programs) rather than system software. (Users see things differently than programmers.) Note: The British English spelling programme is, for the most part, no longer used to refer to computer programs, as most internationally-used computing terms use the words (and spelling conventions) adopted in the U.S..

Program Execution

A modern day computer program is loaded into memory (usually by the operating system), interpreted and then executed ("run") instruction by instruction until "program termination", either with success or through computer error. Some primitive types of computers ran instructions encoded in various ways, an example would be punch cards. Before a computer can execute any sort of program (including the operating system which is also a program) the computer hardware must be initialized. This is done by a piece of software stored on programmable memory chips installed by the manufacturer called the BIOS. The BIOS will attempt to initialize the boot sequence making the computer ready for miscellaneous program execution.

Programs vs Data

A program has been defined. Data can be defined as information that is to be processed by some program. When the entire scope of a computer system is taken into account, there are regions where the distinction between the two is not so evident. CPUs sometimes have a set of smaller instructions that control the computer's hardware, data can contain a program that is executed (see Scripting programming language), programs can be written to create another program; all of which making the comparison largely one of perspective. Some deny that the distinction between program and data is useful altogther. Writing a program to generate a computer program is called metaprogramming. One application of this is have a program generate code according to a certain given data set. A single program might not easily be able to account for all the different aspects of the given data. Analysing the data to create a program that can handle all the aspects might prove easier. Lisp is an example of a language that provides strong support for this aspect of programming. The weights stored in a neural network are a form of data. It is precisely these weights that, combined with the topology of the network, define the network's behavior. It is unclear what the values of these weights actually represent or whether these weights can be programmed. This and other questions pertaining to artificial intelligence further test the comparison between program and data.

Programming

Creating a computer program is the iterative process of implementing new source code (or simply just "code") and testing, analyzing and refining the newly implemented code for syntax and semantic errors. One who practices this skill is referred to as a computer programmer. Since the evolution of computers is so rapid, the tasks of a computer programmer have become more diverse giving rise to different classes of computer programmers, each with a more specialized task. Two examples are a software developer and a systems architect. The lengthy process of computer programming is now referred to as "software development" or software engineering. The latter becoming more popular due to the increasing maturity of the discipline. (see Debate over who is a software engineer) Hence, a contemporary computer programmer can refer to a specialist in one area of computer programming or to the general mass of programmers working for a software company who implement the bulk of the code in large scale software. A group of programmers working for a software company maybe assigned a lead programmer and a project manager to oversee project development and deadlines. Large scale software usually undergoes a lengthy design phase by a system architect before actual development and cowboy coding is frowned upon. Two other forms of modern day approaches are team programming where each member of the group has equal say in the development process except for one person who guides the group through discrepancies. These groups tend to be around 10 people to keep the group manageable. The second form is referred to as "peer programming" or pair programming. See Process and methodology for the different aspects of modern day computer programming.

Algorithms

A formal methodology to solve a particular problem usually combined with a study of different degrees of performance constitute an algorithm. Algorithms can be purely theoretical or implemented by a computer program. Where theoretical algorithms are usually classified in categories according to complexity , implemented algorithms are usually profiled to test routines for efficiency. Note that although an algorithm can be theoretically performant, it can be poorly implemented wasting valuable computer resources. (see Algorithmic information theory for more information)

Example of a program (source code)

The supplied code is a small program in assembly language written for a virtual computer . The example shows a selection of instructions with the corresponding address in memory where each instruction will be placed. These addresses are not static, see memory management. Accompanying each instruction is the generated (by compilation) object code that coincides with the virtual computer's architecture (or ISA). For more examples, see the hello world program.

See also


- Turing machine
- Programming language
- Computer software
- Programmer
- Source code
- Extreme Programming
- Operating system
- Programming paradigm
- Firmware / Device driver
- Polyglot program

Bibliography


- Miles J. Murdocca & Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall, Inc. ISBN 0-201-43664-7
- [http://iiusaedu.com/~murdocca/POCA Principles of Computer Architecture] (POCA) – ARCTools virtual computer available for download to execute referenced code, accessed August 24, 2005
- J.Glenn Brookshear (1989). Theory of Computation, Formal Languages, Automata, and Complexity. The Benjamin/Cummings Publishing Co.Inc. ISBN 0-8053-0143-7

External links


- [http://www.webopedia.com/TERM/P/program.html Definition of Program @ Webopedia]
- [http://www.Agtivity.com/computer_program.htm Definition of Computer program @ Agtivity]
- [http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?query=software Definition of Software @ FOLDOC] Category:Computer science Category:Software
-
ja:プログラム (コンピュータ) ko:프로그램 simple:Computer program th:โปรแกรม

Email

Electronic mail, abbreviated e-mail or email, is a method of composing, sending, and receiving messages over electronic communication systems. The term e-mail applies both to the Internet e-mail system based on the Simple Mail Transfer Protocol (SMTP) and to workgroup collaboration systems allowing users within one company or organization to send messages to each other. Often workgroup collaboration systems natively use non-standard protocols but have some form of gateway to allow them to send and receive internet e-mail. Some organizations may use the internet protocols for internal e-mail service.

Origins of e-mail

Despite common belief, e-mail actually predates the Internet; in fact, existing e-mail systems were a crucial tool in creating the Internet. E-mail started in 1965 as a way for multiple users of a time-sharing mainframe computer to communicate. Although the exact history is murky, among the first systems to have such a facility were SDC's Q32 and MIT's CTSS. E-mail was quickly extended to become network e-mail, allowing users to pass messages between different computers. The early history of network e-mail is also murky; the AUTODIN system may have been the first allowing electronic text messages to be transferred between users on different computers in 1966, but it is possible the SAGE system had something similar some time before. The ARPANET computer network made a large contribution to the evolution of e-mail. There is one report [http://www.multicians.org/thvv/mail-history.html] which indicates experimental inter-system e-mail transfers on it shortly after its creation, in 1969. Ray Tomlinson initiated the use of the @ sign to separate the names of the user and their machine in 1971 [http://openmap.bbn.com/~tomlinso/ray/firstemailframe.html]. The common report that he "invented" e-mail is an exaggeration, although his early e-mail programs SNDMSG and READMAIL were very important. The first message sent by Ray Tomlinson is not preserved; it was "a message announcing the availability of network email"[http://openmap.bbn.com/~tomlinso/ray/firstemailframe.html]. The ARPANET significantly increased the popularity of e-mail, and it became the killer app of the ARPANET.

Growing popularity

As the utility and advantages of e-mail on the ARPANET became more widely known, the popularity of e-mail increased, leading to demand from people who were not allowed access to the ARPANET. A number of protocols were developed to deliver e-mail among groups of time-sharing computers over alternative transmission systems, such as UUCP and IBM's VNET e-mail system. Since not all computers or networks were directly inter-networked, e-mail addresses had to include the "route" of the message, that is, a path between the computer of the sender and the computer of the receivers. E-mail could be passed this way between a number of networks, including the ARPANET, BITNET and NSFNET, as well as to hosts connected directly to other sites via UUCP. The route was specified using so-call "bang path" addresses, specifying hops to get from some assumed-reachable location to the addressee, so called because each hop is signified by a "bang sign" (the exclamation mark, !). Thus, for example, the path ...!bigsite!foovax!barbox!me directs people to route their mail to machine bigsite (presumably a well-known location accessible to everybody) and from there through the machine foovax to the account of user me on barbox. Before auto-routing mailers became commonplace, people often published compound bang addresses using the convention (see glob) to give paths from several big machines, in the hopes that one's correspondent might be able to get mail to one of them reliably (example: ...!!rice!beta!gamma!me). Bang paths of 8 to 10 hops were not uncommon in 1981. Late-night dial-up UUCP links would cause week-long transmission times. Bang paths were often selected by both transmission time and reliability, as messages would often get lost. E-mail became an increasingly important feature of work group collaboration products developed by vendors such as Wang, Lotus, IBM, and Microsoft. These systems often provided enhanced e-mail features (such as file attachments, Rich Text Format, and delivery confirmation), but only when sending e-mail to other users of the same system. These systems communicated with other, non-like, systems via specialized e-mail gateways which translated one vendor's (usually proprietary) e-mail format into a form understandable by another vendor. The CCITT developed the X.400 standard in the 1980's to allow different e-mail systems to interoperate. Roughly at the same time, the IETF developed a much simpler protocol called the Simple Mail Transfer Protocol (SMTP) which has become the de facto standard for e-mail transfer on the Internet. With the advent of widespread use of home personal computers connected to the Internet, interoperability via SMTP-based Internet e-mail has become a critical feature for all e-mail systems. In 1969 US Air Force users were sending text messages by keypunching cards with long text messages using one card for each 80 character line and transmitting them as card decks from one computer to another. By 1979, US Air Force users were logging onto central computers and leaving messages for government contractors and other US Air Force users to read in special file areas where their replies were often received back within hours. By the end of 1983 US Air Force users were using user names like alclark@vax1.mil to send emails between a nationwide linkup of VAX computers. By 1984 these same users were using personal computers for same. In 1982 the White House adopted a prototype email system from IBM called the Professional Office System, or PROFs for the National Security Council (NSC) staff. By April 1985, the system was fully operational within the NSC with home terminals for principals on the staff. And by November of 1986 the rest of the White House came online, first with the PROFs system, and later (by the end of the 1980s) through a variety of systems including VAX A-1 ("All in One"), and ccmail.

Modern Internet e-mail

How Internet e-mail works

ccmail The diagram above shows a stereotypical sequence of events that takes place when Alice sends an e-mail to Bob. # Alice composes a message using her mail user agent (MUA). She types in, or selects from an address book, the e-mail address of her correspondent. She hits the "send" button. Her MUA formats the message in Internet e-mail format and uses the Simple Mail Transfer Protocol (SMTP) to send the message to the local mail transfer agent (MTA), in this case smtp.a.org, run by Alice's Internet Service Provider (ISP). # The MTA looks at the destination address provided in the SMTP protocol (not from the message headers), in this case bob@b.org. A modern Internet e-mail address is a string of the form localpart@domain.example. The part before the @ sign is the local part of the address, often the username of the recipient, and the part after the @ sign is a domain name. The MTA looks up this domain name in the Domain Name System to find the mail exchange servers accepting messages for that domain. # The DNS server for the b.org domain, ns.b.org, responds with an MX record listing the mail exchange servers for that domain, in this case mx.b.org, a server run by Bob's ISP. # smtp.a.org sends the message to mx.b.org using SMTP, which delivers it to the mailbox of the user bob. # Bob presses the "get mail" button in his MUA, which picks up the message using the Post Office Protocol (POP3). This sequence of events applies to the majority of e-mail users. However, there are many alternative possibilities and complications to the e-mail system:
- Alice or Bob may use a client connected to a corporate e-mail system, such as IBM's Lotus Notes or Microsoft's Exchange. These systems often have their own internal e-mail format and their clients typically communicate with the e-mail server using a vendor-specific, proprietary, protocol. The server sends or receives e-mail via the Internet through the product's Internet mail gateway which also does any necessary reformatting. If Alice and Bob work for the same company, the entire transaction may happen completely within a single corporate e-mail system.
- Alice may not have a MUA on her computer but instead may connect to a webmail service.
- Alice's computer may run its own MTA, so avoiding the transfer at step 1.
- Bob may pick up his e-mail in many ways, for example using the Internet Message Access Protocol, by logging into mx.b.org and reading it directly, or by using a webmail service.
- Domains usually have several mail exchange servers so that they can continue to accept mail when the main mail exchange server is not available. It used to be the case that many MTAs would accept messages for any recipient on the Internet and do their best to deliver them. Such MTAs are called open mail relays. This was important in the early days of the Internet when network connections were unreliable. If an MTA couldn't reach the destination, it could at least deliver it to a relay that was closer to the destination. The relay would have a better chance of delivering the message at a later time. However, this mechanism proved to be exploitable by people sending unsolicited bulk e-mail and as a consequence very few modern MTAs are open mail relays, and many MTAs will not accept messages from open mail relays because such messages are very likely to be spam. Note that the people, email addresses and domain names in this explanation are fictional: see Alice and Bob.

Internet e-mail format

The format of Internet e-mail messages is defined in RFC 2822 and a series of RFCs, RFC 2045 through RFC 2049, collectively called Multipurpose Internet Mail Extensions (MIME). Although as of July 13, 2005 (see [http://www.ietf.org/iesg/1rfc_index.txt]) RFC 2822 is technically a proposed IETF standard and the MIME RFCs are draft IETF standards, these documents are the de facto standards for the format of Internet e-mail. Prior to the introduction of RFC 2822 in 2001 the format described by RFC 822 was the de facto standard for Internet e-mail for nearly two decades; it is still the official IETF standard. The IETF reserved the numbers 2821 and 2822 for the updated versions of RFC 821 (SMTP) and RFC 822, honoring the extreme importance of these two RFCs. RFC 822 was published in 1982 and based on the earlier RFC 733. Internet e-mail messages consist of two major sections:
- Headers - Message summary, sender, receiver, and other information about the e-mail
- Body - The message itself, sometimes containing a signature block at the end The header section is separated from the body by a blank line.

Internet e-mail headers

Each header has a name and a value. RFC 2822 specifies the precise syntax. Informally, the header name starts in the first character of a line, followed by a ":", followed by the value which is continued on non-null subsequent lines that have a space or tab as their first character. Header names and values are restricted to 7-bit ASCII characters. Non-ASCII values may be represented using MIME encoded words. Messages usually have at least four headers: # From: The e-mail address, and optionally name, of the sender of the message # To: The e-mail addresses, and optionally names, of the receiver of the message # Subject: A brief summary of the contents of the message # Date: The local time and date when the message was originally sent Note however that the "To" header in the message is not necessarily related to the addresses to which the e-mail is delivered. The actual delivery list is supplied in the SMTP protocol, not extracted from the header content. The "To" header is similar to the greeting at the top of a conventional letter which is delivered according to the address on the outer envelope. Also note that the "From" header does not have to be the real sender of the e-mail. It is very easy to fake the "From" line and let an e-mail seem to be from any mail address. It is possible to digitally sign an e-mail, which is much harder to fake. Some Internet service providers do not relay e-mails claiming to come from a domain not hosted by them, but very few (if any) check to make sure that the person or even e-mail account named in the "From" header is the one associated with the connection. Other common headers include: # Cc: Carbon copy (because typewriters use carbon paper to make copies of letters) # Received: Tracking information generated by mail servers that have previously handled a message # Content-Type: Information about how the message has to be displayed, usually a MIME type Many e-mail clients present "Bcc" (Blind carbon copy, recipients not visible in the "To" header) as a header. Since all the headers are visible to all recipients, "Bcc" isn't actually a header. Addresses added as "Bcc" are only added to the SMTP delivery list.

E-mail content encoding

Email was only designed for 7-bit ASCII. While a lot of email software was in fact 8 bit clean this couldn't be relied upon on open interchange. The MIME standard introduced charset specifiers and two content transfer encodings to encode 8 bit data for transmission: quoted printable for mostly 7 bit content with a few characters outside that range and base64 for arbitary binary data. The 8BITMIME extension was introduced to allow transmission of mail without the need for these encodings but many mail transport agents still don't support it fully, possibly due to the complication of having to do content transformations when forwarding to a mailserver that doesn't support it.

Saved Message Extension

Different applications save email files with different file extensions.
- .eml This is used by Outlook Express, and is the default email extension for Mozilla Thunderbird.
- .emlx Used by Apple Mail

Messages and mailboxes

Messages are exchanged between hosts using the Simple Mail Transfer Protocol with software like Sendmail. Users download their messages from servers usually with either the POP or IMAP protocols, yet in a large corporate environment users are likely to use some proprietary protocol such as Lotus Notes or Microsoft Exchange Server's. Mails can be stored either on the client or on the server side. Standard formats for mailboxes include Maildir and mbox. Several prominent e-mail clients use their own, proprietary format, and require conversion software to transfer e-mail between them. When a message cannot be delivered, the recipient MTA must send a bounce message back to the sender, indicating the problem.

Spamming and e-mail worms

The usefulness of e-mail is being threatened by three phenomena, spamming, phishing and e-mail worms. Spamming is unsolicited commercial e-mail. Because of the very low cost of sending e-mail, spammers can send hundreds of millions of e-mail messages each day over an inexpensive Internet connection. Hundreds of active spammers sending this volume of mail results in information overload for many computer users who receive tens or even hundreds of junk e-mails each day. E-mail worms use e-mail as a way of replicating themselves into vulnerable computers. Although the first e-mail worm affected early UNIX computers, this problem is today almost entirely confined to the Microsoft Windows operating system. The combination of spam and worm programs results in users receiving a constant drizzle of junk e-mail, which reduces the usefulness of e-mail as a practical tool. A number of technology-based initiatives mitigate the impact of spam. In the United States, U.S. Congress has also passed a law, the Can Spam Act of 2003, attempting to regulate such e-mail.

Privacy problems regarding e-mail

E-mail privacy, without some security precautions, can be compromised because
- e-mail messages are generally not encrypted;
- e-mail messages have to go through intermediate computers before reaching their destination, meaning it is relatively easy for others to intercept and read messages;
- many Internet Service Providers (ISP) store copies of your email messages on their mail servers before they are delivered. The backups of these can remain up to several months on their server, even if you delete them in your mailbox. There are cryptography applications that can serve as a remedy to the above, such as Virtual Private Networks, message encryption using PGP or the GNU Privacy Guard, encrypted communications with the e-mail servers using Transport Layer Security and Secure Sockets Layer, and/or encrypted authentication schemes such as Simple Authentication and Security Layer.

See also


- E-mail art
- E-mail social issues:
  - Netiquette
  - Information overload
  - Internet humor
  - Internet slang
  - Spam
  - stopping e-mail abuse
  - Computer virus.
- Clients and servers:
  - E-mail client
  - mail transfer agent
  - webmail / HTMLmail
  - branded e-mail
  - Unicode and Email
- Mailing list:
  - Electronic mailing list
  - mailing list archive
- E-mail address
- E-cards
- Internet mail standards
- Free e-mail services/webmail:
  - Hotmail
  - Yahoo! Mail
  - Gmail
  - Temporary hosting
- Uniform Resource Identifier
- Alternative protocols and projects
  - Trust-forum
  - Internet Mail 2000

Further reading


- Katie Hafner, Matthew Lyon, Where Wizards Stay Up Late: The Origins of the Internet (Simon and Schuster, 1996) also covers the early history of e-mail
- Abdullah, M. H. (1998). "Electronic discourse: Evolving conventions in online academic environments". Bloomington, IN: ERIC Clearinghouse on Reading, English, and Communication. [ED 422 593]
- Abras, C. (2002) The principle of relevance and metamessages in online discourse: Electronic exchanges in a graduate course. Language, "Literacy and Culture Review" 1(2), 39-53.
- Biesenbach-Lucas, S. & Wiesenforth, D. (2001). E-mail and word processing in the ESL classroom: How the medium affects the message. "Language Learning and Technology", 5 (1), 135-165. [EJ 621 506]
- Danet, B. (2001). Cyberplay: Communicating online. Oxford: Berg Publishing.

References

External links


- SourceForge's database of [http://sourceforge.net/softwaremap/trove_list.php?form_cat=28 free email software]
- [http://openmap.bbn.com/%7Etomlinso/ray/firstemailframe.html The First Network Email]
- A. Padlipsky, [http://www.lafn.org/~ba213/allnight.html And They Argued All Night...] is an alternative personal recollection of the origins of network e-mail
- [http://www.sciencedirect.com/science/article/B6VB4-4F0