Tuesday, November 11, 2008

World Wide Web


The World Wide Web commonly shortened to the Web is a system of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain text, images, videos, and other multimedia and navigate between them using hyperlinks. The World Wide Web was created in 1989 by European scientist Tim Berners-Lee, working at the European Organization for Nuclear Research (CERN) in Geneva, Switzerland, and released in 1992. Since then, Berners-Lee has played an active role in guiding the development of Web standards such as the markup languages in which Web pages are composed, and in recent years has advocated his vision of a Semantic Web.

Web Development


Web development is a broad term for any activity related to developing a web site for the World Wide Web or an intranet. This can include e-commerce business development, web design, web content development, client-side/server-side scripting, and web server configuration. However, among web professionals, "web development" usually refers only to the non-design aspects of building web sites, e.g. writing markup and coding. Web development can range from developing the simplest static single page of plain text to the most complex web-based internet applications, electronic businesses, or social network services.

For larger businesses and organizations, web development teams can consist of hundreds of people (web developers). Smaller organizations may only require a single permanent or contracting webmaster, or secondary assignment to related job positions such as a graphic designer and/or Information systems technician. Web development may be a collaborative effort between departments rather than the domain of a designated department.


Web development as an industry

Since the mid-1990s, web development has been one of the fastest growing industries in the world. In 1995 there were fewer than 1,000 web development companies in the United States alone, but by 2005 there were over 30,000 such companies.[1][citation needed] The web development industry is expected to grow over 20% by 2010. The growth of this industry is being pushed by large businesses wishing to sell products and services to their customers and to automate business workflow, as well as the growth of many small web design and development companies.

In addition, cost of Web site development and hosting has dropped dramatically during this time. Instead of costing tens of thousands of dollars, as was the case for early websites, one can now develop a simple web site for less than a thousand dollars, depending on the complexity and amount of content.[citation needed] Smaller Web site development companies are now able to make web design accessible to both smaller companies and individuals further fueling the growth of the web development industry. As far as web development tools and platforms are concerned, there are many systems available to the public free of charge to aid in development. A popular example is the LAMP (Linux, Apache, MySQL, PHP), which is usually distributed free of charge. This fact alone has manifested into many people around the globe setting up new Web sites daily and thus contributing to increase in web development popularity. Another contributing factor has been the rise of easy to use WYSIWYG web development software, most prominently Adobe Dreamweaver or Microsoft Expression Studio (formerly Microsoft Frontpage) . Using such software, virtually anyone can develop a Web page in a matter of minutes. Knowledge of HyperText Markup Language (HTML), or other programming languages is not required, but recommended for professional results.

The next generation of web development tools uses the strong growth in LAMP and Microsoft .NET technologies to provide the Web as a way to run applications online. Web developers now help to deliver applications as Web services which were traditionally only available as applications on a desk based computer.

Instead of running executable code on a local computer, users are interacting with online applications to create new content. This has created new methods in communication and allowed for many opportunities to decentralize information and media distribution. Users are now able to interact with applications from many locations, instead of being tied to a specific workstation for their application environment.

Examples of dramatic transformation in communication and commerce led by web development include e-commerce. Online auction sites such as eBay have changed the way consumers consume and purchase goods and services. Online resellers such as Amazon.com and Buy.com (among many, many others) have transformed the shopping and bargain hunting experience for many consumers. Another good example of transformative communication led by web development is the blog. Web applications such as WordPress and b2evolution have created easily implemented blog environments for individual Web sites. Open source content systems such as Typo3, Xoops, Joomla!, and Drupal have extended web development into new modes of interaction and communication.


Typical Areas

Web Development can be split into many areas and a typical and basic web development hierarchy might consist of;


Client Side Coding
CSS
XHTML (in accordance to modern web design standards, XHTML's use is replacing the older HTML4. This may change when HTML 5 is adopted by the browser development community.)
Javascript
AJAX (New methods of using Javascript, PHP and other languages to improve the user experience)
Flash (Adobe Flash Player is a ubiquitous client-side platform ready for RIAs. Flex 2 is also deployed to the Flash Player (version 9+))
Microsoft SilverLight But doesn't seem to support older win9x versions


Server Side Coding
PHP (open source)
ASP (Microsoft proprietary)
.NET (Microsoft proprietary)
CGI and/or Perl (open source)
Java, e.g. J2EE or WebObjects
SSJS Server-Side JavaScript, e.g. Aptana Jaxer, Mozilla Rhino
Python, e.g. Django (web framework) (open source)
Ruby, e.g. Ruby on Rails (open source)
Smalltalk e.g. Seaside
ColdFusion (Adobe proprietary, formerly Macromedia)
Lotus Domino
Websphere (IBM proprietary)

LAMP servers are the most popular setup used by the web development community. However lesser known languages like Ruby and Python are often paired with database servers other than MySQL (the M in LAMP). Below are example of other databases currently in wide use on the web. For instance some developers prefer a LAPR(Linux/Apache/PostrgeSQL/Ruby on Rails) setup for development.


Database Technology
MySQL
PostgreSQL
SQLite
Microsoft SQL Server
Firebird
Apache Derby
Oracle
DB2 (IBM proprietary)

In practice, many web developers will also have interdisciplinary skills / roles, including:
Graphic design / web design
Information architecture and copywriting/copyediting with web usability, accessibility and search engine optimization in mind
Project management, QA and other aspects common to IT development in general

The above list is a simple website development hierarchy and can be extended to include all client side and server side aspects. It is still important to remember that web development is generally split up into client side coding covering aspects such as the layout and design, then server side coding, which covers the website's functionality and back end systems.

Looking at these items from an "umbrella approach", client side coding such as XHTML is executed and stored on a local client (in a web browser) whereas server side code is not available to a client and is executed on a web server which generates the appropriate XHTML which is then sent to the client. As the nature of client side coding allows you to alter the HTML on a local client and refresh the pages with updated content (locally), web designers must bear in mind the importance and relevance to security with their server side scripts. If a server side script accepts content from a locally modified client side script, the web development of that page shows poor sanitization with relation to security.


Security Considerations

Web development takes into account many things, such as data entry error checking through forms, as well as sanitization of the data that is entered in those fields. Malicious practices such as SQL injection can be executed through users with ill intent yet only primitive knowledge of web development as a whole. Not only this, but scripts can be exploited to grant unauthorized access to the hacker to gain information such as email addresses, passwords and protected content like credit card numbers.

Some of this is dependent on the server environment (most commonly Apache or Microsoft IIS) on which the scripting language, such as PHP, Ruby, Python, Perl or ASP is running, and therefore is not necessarily down to the web developer themselves to maintain. However, stringent testing of web applications before public release is encouraged to prevent such exploits from occurring.

Keeping a web server safe from intrusion is often called Server Port Hardening. Many technologies come into play when keeping information on the internet safe when it is transmitted from one location to another. For instance Secure Socket Layer Encryption (SSL) Certificates are issued by certificate authorities to help prevent internet fraud. Many developers often employ different forms of encryption when transmitting and storing sensitive information. A basic understanding of information technology security concerns is often part of a web developers knowledge.

Because new security holes are found in web applications even after testing and launch, security patch updates are frequent for widely used applications. It is often the job of web developers to keep applications up to date as security patches are released and new security concerns are discovered.