Search This Blog

Thursday, February 12, 2015

Computer programming


From Wikipedia, the free encyclopedia
 
Computer programming (often shortened to programming) is a process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation (commonly referred to as coding[1][2]) of algorithms in a target programming language. Source code is written in one or more programming languages (such as C, C++, C#, Java, Python, Ruby, Smalltalk, JavaScript, etc.). The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem.[citation needed] The process of programming thus often requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms and formal logic.

Related tasks include testing, debugging, and maintaining the source code, implementation of the build system, and management of derived artifacts such as machine code of computer programs. These might be considered part of the programming process, but often the term "software development" is used for this larger process with the term "programming", "implementation", or "coding" reserved for the actual writing of source code. Software engineering combines engineering techniques with software development practices.

Overview

Within software engineering, programming (the implementation) is regarded as one phase in a software development process.

There is an ongoing debate on the extent to which the writing of programs is an art form, a craft, or an engineering discipline.[3] In general, good programming is considered to be the measured application of all three, with the goal of producing an efficient and evolvable software solution (the criteria for "efficient" and "evolvable" vary considerably). The discipline differs from many other technical professions in that programmers, in general, do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves "programmers" or even "software engineers." Because the discipline covers many areas, which may or may not include critical applications, it is debatable whether licensing is required for the profession as a whole. In most cases, the discipline is self-governed by the entities which require the programming, and sometimes very strict environments are defined (e.g. United States Air Force use of AdaCore and security clearance). However, representing oneself as a "professional software engineer" without a license from an accredited institution is illegal in many parts of the world.

Another ongoing debate is the extent to which the programming language used in writing computer programs affects the form that the final program takes.[citation needed] This debate is analogous to that surrounding the Sapir–Whorf hypothesis[4] in linguistics and cognitive science, which postulates that a particular spoken language's nature influences the habitual thought of its speakers. Different language patterns yield different patterns of thought. This idea challenges the possibility of representing the world perfectly with language, because it acknowledges that the mechanisms of any language condition the thoughts of its speaker community.

History

Ada Lovelace created the first algorithm designed for processing by a computer and is usually recognized as history's first computer programmer.

Ancient cultures had no conception of computing beyond arithmetic, algebra, and geometry, occasionally aping elements of calculus (e.g. the method of exhaustion). The only mechanical device that existed for numerical computation at the beginning of human history was the abacus, invented in Sumeria circa 2500 BC. Later, the Antikythera mechanism, invented some time around 100 BC in ancient Greece, is the first known mechanical calculator utilizing gears of various sizes and configuration to perform calculations,[5] which tracked the metonic cycle still used in lunar-to-solar calendars, and which is consistent for calculating the dates of the Olympiads.[6] The Kurdish medieval scientist Al-Jazari built programmable automata in 1206 AD. One system employed in these devices was the use of pegs and cams placed into a wooden drum at specific locations, which would sequentially trigger levers that in turn operated percussion instruments. The output of this device was a small drummer playing various rhythms and drum patterns.[7] The Jacquard loom, which Joseph Marie Jacquard developed in 1801, uses a series of pasteboard cards with holes punched in them. The hole pattern represented the pattern that the loom had to follow in weaving cloth. The loom could produce entirely different weaves using different sets of cards. Charles Babbage adopted the use of punched cards around 1830 to control his Analytical Engine. The first computer program was written for the Analytical Engine by mathematician Ada Lovelace to calculate a sequence of Bernoulli numbers.[8] The synthesis of numerical calculation, predetermined operation and output, along with a way to organize and input instructions in a manner relatively easy for humans to conceive and produce, led to the modern development of computer programming. Development of computer programming accelerated through the Industrial Revolution.

Data and instructions were once stored on external punched cards, which were kept in order and arranged in program decks.

In the 1880s, Herman Hollerith invented the recording of data on a medium that could then be read by a machine. Prior uses of machine readable media, above, had been for lists of instructions (not data) to drive programmed machines such as Jacquard looms and mechanized musical instruments. "After some initial trials with paper tape, he settled on punched cards..."[9] To process these punched cards, first known as "Hollerith cards" he invented the keypunch, sorter, and tabulator unit record machines.[10] These inventions were the foundation of the data processing industry. In 1896 he founded the Tabulating Machine Company (which later became the core of IBM). The addition of a control panel (plugboard) to his 1906 Type I Tabulator allowed it to do different jobs without having to be physically rebuilt. By the late 1940s, there were several unit record calculators, such as the IBM 602 and IBM 604, whose control panels specified a sequence (list) of operations and thus were programmable machines.

The invention of the von Neumann architecture allowed computer programs to be stored in computer memory. Early programs had to be painstakingly crafted using the instructions (elementary operations) of the particular machine, often in binary notation. Every model of computer would likely use different instructions (machine language) to do the same task. Later, assembly languages were developed that let the programmer specify each instruction in a text format, entering abbreviations for each operation code instead of a number and specifying addresses in symbolic form (e.g., ADD X, TOTAL). Entering a program in assembly language is usually more convenient, faster, and less prone to human error than using machine language, but because an assembly language is little more than a different notation for a machine language, any two machines with different instruction sets also have different assembly languages.

Wired control panel for an IBM 402 Accounting Machine

In 1954, FORTRAN was invented; it was the first high level programming language to have a functional implementation, as opposed to just a design on paper.[11][12] (A high-level language is, in very general terms, any programming language that allows the programmer to write programs in terms that are more abstract than assembly language instructions, i.e. at a level of abstraction "higher" than that of an assembly language.) It allowed programmers to specify calculations by entering a formula directly (e.g. Y = X*2 + 5*X + 9). The program text, or source, is converted into machine instructions using a special program called a compiler, which translates the FORTRAN program into machine language. In fact, the name FORTRAN stands for "Formula Translation". Many other languages were developed, including some for commercial programming, such as COBOL. Programs were mostly still entered using punched cards or paper tape. (See computer programming in the punch card era). By the late 1960s, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into the computers. Text editors were developed that allowed changes and corrections to be made much more easily than with punched cards. (Usually, an error in punching a card meant that the card had to be discarded and a new one punched to replace it.)

As time has progressed, computers have made giant leaps in the area of processing power. This has brought about newer programming languages that are more abstracted from the underlying hardware. Popular programming languages of the modern era include ActionScript, C, C++, C#, Haskell, PHP, Java, JavaScript, Objective-C, Perl, Python, Ruby, Smalltalk, SQL, Visual Basic, and dozens more.[13] Although these high-level languages usually incur greater overhead, the increase in speed of modern computers has made the use of these languages much more practical than in the past. These increasingly abstracted languages typically are easier to learn and allow the programmer to develop applications much more efficiently and with less source code. However, high-level languages are still impractical for a few programs, such as those where low-level hardware control is necessary or where maximum processing speed is vital. Computer programming has become a popular career in the developed world, particularly in the United States, Europe, and Japan. Due to the high labor cost of programmers in these countries, some forms of programming have been increasingly subject to offshore outsourcing (importing software and services from other countries, usually at a lower wage), making programming career decisions in developed countries more complicated, while increasing economic opportunities for programmers in less developed areas, particularly China and India.

Modern programming

Quality requirements

Whatever the approach to development may be, the final program must satisfy some fundamental properties. The following properties are among the most relevant:
  • Reliability: how often the results of a program are correct. This depends on conceptual correctness of algorithms, and minimization of programming mistakes, such as mistakes in resource management (e.g., buffer overflows and race conditions) and logic errors (such as division by zero or off-by-one errors).
  • Robustness: how well a program anticipates problems due to errors (not bugs). This includes situations such as incorrect, inappropriate or corrupt data, unavailability of needed resources such as memory, operating system services and network connections, user error, and unexpected power outages.
  • Usability: the ergonomics of a program: the ease with which a person can use the program for its intended purpose or in some cases even unanticipated purposes. Such issues can make or break its success even regardless of other issues. This involves a wide range of textual, graphical and sometimes hardware elements that improve the clarity, intuitiveness, cohesiveness and completeness of a program's user interface.
  • Portability: the range of computer hardware and operating system platforms on which the source code of a program can be compiled/interpreted and run. This depends on differences in the programming facilities provided by the different platforms, including hardware and operating system resources, expected behavior of the hardware and operating system, and availability of platform specific compilers (and sometimes libraries) for the language of the source code.
  • Maintainability: the ease with which a program can be modified by its present or future developers in order to make improvements or customizations, fix bugs and security holes, or adapt it to new environments. Good practices during initial development make the difference in this regard. This quality may not be directly apparent to the end user but it can significantly affect the fate of a program over the long term.
  • Efficiency/performance: the amount of system resources a program consumes (processor time, memory space, slow devices such as disks, network bandwidth and to some extent even user interaction): the less, the better. This also includes careful management of resources, for example cleaning up temporary files and eliminating memory leaks.

Readability of source code

In computer programming, readability refers to the ease with which a human reader can comprehend the purpose, control flow, and operation of source code. It affects the aspects of quality above, including portability, usability and most importantly maintainability.

Readability is important because programmers spend the majority of their time reading, trying to understand and modifying existing source code, rather than writing new source code. Unreadable code often leads to bugs, inefficiencies, and duplicated code. A study[14] found that a few simple readability transformations made code shorter and drastically reduced the time to understand it.

Following a consistent programming style often helps readability. However, readability is more than just programming style. Many factors, having little or nothing to do with the ability of the computer to efficiently compile and execute the code, contribute to readability.[15] Some of these factors include:
Various visual programming languages have also been developed with the intent to resolve readability concerns by adopting non-traditional approaches to code structure and display. Techniques like Code refactoring can enhance readability.

Algorithmic complexity

The academic field and the engineering practice of computer programming are both largely concerned with discovering and implementing the most efficient algorithms for a given class of problem. For this purpose, algorithms are classified into orders using so-called Big O notation, which expresses resource use, such as execution time or memory consumption, in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to the circumstances.

Methodologies

The first step in most formal software development processes is requirements analysis, followed by testing to determine value modeling, implementation, and failure elimination (debugging). There exist a lot of differing approaches for each of those tasks. One approach popular for requirements analysis is Use Case analysis. Many programmers use forms of Agile software development where the various stages of formal software development are more integrated together into short cycles that take a few weeks rather than years. There are many approaches to the Software development process.

Popular modeling techniques include Object-Oriented Analysis and Design (OOAD) and Model-Driven Architecture (MDA). The Unified Modeling Language (UML) is a notation used for both the OOAD and MDA.

A similar technique used for database design is Entity-Relationship Modeling (ER Modeling).

Implementation techniques include imperative languages (object-oriented or procedural), functional languages, and logic languages.

Measuring language usage

It is very difficult to determine what are the most popular of modern programming languages. Some languages are very popular for particular kinds of applications (e.g., COBOL is still strong in the corporate data center,[citation needed] often on large mainframes, FORTRAN in engineering applications, scripting languages in Web development, and C in embedded applications), while some languages are regularly used to write many different kinds of applications. Also many applications use a mix of several languages in their construction and use. New languages are generally designed around the syntax of a previous language with new functionality added (for example C++ adds object-orientedness to C, and Java adds memory management and bytecode to C++, and as a consequence loses efficiency and the ability for low-level manipulation).

Methods of measuring programming language popularity include: counting the number of job advertisements that mention the language,[16] the number of books sold and courses teaching the language (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL).

Debugging


The bug from 1947 which is at the origin of a popular (but incorrect) etymology for the common term for a software defect.

Debugging is a very important task in the software development process since having defects in a program can have significant consequences for its users. Some languages are more prone to some kinds of faults because their specification does not require compilers to perform as much checking as other languages. Use of a static code analysis tool can help detect some possible problems.

Debugging is often done with IDEs like Eclipse, Kdevelop, NetBeans, Code::Blocks, and Visual Studio. Standalone debuggers like gdb are also used, and these often provide less of a visual environment, usually using a command line.

Programming languages

Different programming languages support different styles of programming (called programming paradigms). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute. Languages form an approximate spectrum from "low-level" to "high-level"; "low-level" languages are typically more machine-oriented and faster to execute, whereas "high-level" languages are more abstract and easier to use but execute less quickly. It is usually easier to code in "high-level" languages than in "low-level" ones.
Allen Downey, in his book How To Think Like A Computer Scientist, writes:
The details look different in different languages, but a few basic instructions appear in just about every language:
  • Input: Gather data from the keyboard, a file, or some other device.
  • Output: Display data on the screen or send data to a file or other device.
  • Arithmetic: Perform basic arithmetical operations like addition and multiplication.
  • Conditional Execution: Check for certain conditions and execute the appropriate sequence of statements.
  • Repetition: Perform some action repeatedly, usually with some variation.
Many computer languages provide a mechanism to call functions provided by shared libraries.
Provided the functions in a library follow the appropriate run time conventions (e.g., method of passing arguments), then these functions may be written in any other language.

Programmers

Computer programmers are those who write computer software. Their jobs usually involve:

World Wide Web


From Wikipedia, the free encyclopedia
 
The World Wide Web (WWW, W3) is an information system of interlinked hypertext documents that are accessed via the Internet.[1] It has also commonly become known simply as the Web. Individual document pages on the World Wide Web are called web pages and are accessed with a software application running on the user's computer, commonly called a web browser. Web pages may contain text, images, videos, and other multimedia components, as well as web navigation features consisting of hyperlinks.

Tim Berners-Lee, a British computer scientist and former CERN employee,[2] is considered the inventor of the Web. On 12 March 1989,[3] Berners-Lee wrote a proposal for what would eventually become the World Wide Web.[4] The 1989 proposal was meant for a more effective CERN communication system but Berners-Lee eventually realised the concept could be implemented throughout the world.[5] Berners-Lee and Belgian computer scientist Robert Cailliau proposed in 1990 to use hypertext "to link and access information of various kinds as a web of nodes in which the user can browse at will",[6] and Berners-Lee finished the first website in December of that year.[7]
The first test was completed around 20 December 1990 and Berners-Lee reported about the project on the newsgroup alt.hypertext on 7 August 1991.[8]

History

The NeXT Computer used by Tim Berners-Lee at CERN.

On March 12, 1989, Tim Berners-Lee wrote a proposal to the management at CERN that referenced ENQUIRE, a database and software project he had built in 1980, and described a more elaborate information management system based on links embedded in readable text: "Imagine, then, the references in this document all being associated with the network address of the thing to which they referred, so that while reading this document you could skip to them with a click of the mouse." Such a system, he explained, could be referred to using one of the existing meanings of the word hypertext, a term that he says was coined in the 1950s. There is no reason, the proposal continues, why such hypertext links could not encompass multimedia documents including graphics, speech and video, so that Berners-Lee goes on to propose the term hypermedia.[9]

With help from Robert Cailliau, he published a more formal proposal (on 12 November 1990) to build a "Hypertext project" called "WorldWideWeb" (one word, also "W3") as a "web" of "hypertext documents" to be viewed by "browsers" using a client–server architecture.[6] This proposal estimated that a read-only web would be developed within three months and that it would take six months to achieve "the creation of new links and new material by readers, [so that] authorship becomes universal" as well as "the automatic notification of a reader when new material of interest to him/her has become available." While the read-only goal was met, accessible authorship of web content took longer to mature, with the wiki concept, WebDAV, blogs, Web 2.0 and RSS/Atom.[10]

The proposal was modeled after the SGML reader Dynatext by Electronic Book Technology, a spin-off from the Institute for Research in Information and Scholarship at Brown University. The Dynatext system, licensed by CERN, was a key player in the extension of SGML ISO 8879:1986 to Hypermedia within HyTime, but it was considered too expensive and had an inappropriate licensing policy for use in the general high energy physics community, namely a fee for each document and each document alteration.

The CERN data center in 2010 housing some WWW servers

A NeXT Computer was used by Berners-Lee as the world's first web server and also to write the first web browser, WorldWideWeb, in 1990. By Christmas 1990, Berners-Lee had built all the tools necessary for a working Web:[11] the first web browser (which was a web editor as well); the first web server; and the first web pages,[12] which described the project itself.

The first web page may be lost, but Paul Jones of UNC-Chapel Hill in North Carolina announced in May 2013 that Berners-Lee gave him what he says is the oldest known web page during a 1991 visit to UNC. Jones stored it on a magneto-optical drive and on his NeXT computer.[13]

On 6 August 1991, Berners-Lee published a short summary of the World Wide Web project on the newsgroup alt.hypertext.[14] This date also marked the debut of the Web as a publicly available service on the Internet, although new users only access it after August 23. For this reason this is considered the internaut's day. Several newsmedia have reported that the first photo on the Web was published by Berners-Lee in 1992, an image of the CERN house band Les Horribles Cernettes taken by Silvano de Gennaro; Gennaro has disclaimed this story, writing that media were "totally distorting our words for the sake of cheap sensationalism."[15]

The first server outside Europe was installed at the Stanford Linear Accelerator Center (SLAC) in Palo Alto, California, to host the SPIRES-HEP database. Accounts differ substantially as to the date of this event. The World Wide Web Consortium says December 1992,[16] whereas SLAC itself claims 1991.[17][18] This is supported by a W3C document titled A Little History of the World Wide Web.[19]

The underlying concept of hypertext originated in previous projects from the 1960s, such as the Hypertext Editing System (HES) at Brown University, Ted Nelson's Project Xanadu, and Douglas Engelbart's oN-Line System (NLS). Both Nelson and Engelbart were in turn inspired by Vannevar 
Bush's microfilm-based memex, which was described in the 1945 essay "As We May Think".[20]

Berners-Lee's breakthrough was to marry hypertext to the Internet. In his book Weaving The Web, he explains that he had repeatedly suggested that a marriage between the two technologies was possible to members of both technical communities, but when no one took up his invitation, he finally assumed the project himself. In the process, he developed three essential technologies:
The World Wide Web had a number of differences from other hypertext systems available at the time. The Web required only unidirectional links rather than bidirectional ones, making it possible for someone to link to another resource without action by the owner of that resource. It also significantly reduced the difficulty of implementing web servers and browsers (in comparison to earlier systems), but in turn presented the chronic problem of link rot. Unlike predecessors such as HyperCard, the World Wide Web was non-proprietary, making it possible to develop servers and clients independently and to add extensions without licensing restrictions. On 30 April 1993, CERN announced that the World Wide Web would be free to anyone, with no fees due.[22] Coming two months after the announcement that the server implementation of the Gopher protocol was no longer free to use, this produced a rapid shift away from Gopher and towards the Web. An early popular web browser was ViolaWWW for Unix and the X Windowing System.

Robert Cailliau, Jean-François Abramatic of IBM, and Tim Berners-Lee at the 10th anniversary of the World Wide Web Consortium.

Scholars generally agree that a turning point for the World Wide Web began with the introduction[23] of the Mosaic web browser[24] in 1993, a graphical browser developed by a team at the National Center for Supercomputing Applications at the University of Illinois at Urbana-Champaign (NCSA-UIUC), led by Marc Andreessen. Funding for Mosaic came from the U.S. High-Performance Computing and Communications Initiative and the High Performance Computing and Communication Act of 1991, one of several computing developments initiated by U.S. Senator Al Gore.[25] Prior to the release of Mosaic, graphics were not commonly mixed with text in web pages and the web's popularity was less than older protocols in use over the Internet, such as Gopher and Wide Area Information Servers (WAIS). Mosaic's graphical user interface allowed the Web to become, by far, the most popular Internet protocol.

The World Wide Web Consortium (W3C) was founded by Tim Berners-Lee after he left the European Organization for Nuclear Research (CERN) in October 1994. It was founded at the Massachusetts Institute of Technology Laboratory for Computer Science (MIT/LCS) with support from the Defense Advanced Research Projects Agency (DARPA), which had pioneered the Internet; a year later, a second site was founded at INRIA (a French national computer research lab) with support from the European Commission DG InfSo; and in 1996, a third continental site was created in Japan at Keio University. By the end of 1994, the total number of websites was still relatively small, but many notable websites were already active that foreshadowed or inspired today's most popular services.

Connected by the existing Internet, other websites were created around the world, adding international standards for domain names and HTML. Since then, Berners-Lee has played an active role in guiding the development of web standards (such as the markup languages to compose web pages in), and has advocated his vision of a Semantic Web. The World Wide Web enabled the spread of information over the Internet through an easy-to-use and flexible format. It thus played an important role in popularizing use of the Internet.[26] Although the two terms are sometimes conflated in popular use, World Wide Web is not synonymous with Internet.[27] The Web is an information space containing hyperlinked documents and other resources, identified by their URIs.[28] It is implemented as both client and server software using Internet protocols such as TCP/IP and HTTP.

Tim Berners-Lee was knighted in 2004 by Queen Elizabeth II for his contribution of the World Wide Web.[29]

Function


The World Wide Web functions as a layer on top of the Internet, helping to make it more functional. The advent of the Mosaic web browser helped to make the web much more usable.

The terms Internet and World Wide Web are often used without much distinction. However, the two things are not the same. The Internet is a global system of interconnected computer networks. In contrast, the World Wide Web is one of the services transferred over these networks. It is a collection of text documents and other resources, linked by hyperlinks and URLs, usually accessed by web browsers, from web servers.[30]

Viewing a web page on the World Wide Web normally begins either by typing the URL of the page into a web browser, or by following a hyperlink to that page or resource. The web browser then initiates a series of background communication messages to fetch and display the requested page. In the 1990s, using a browser to view web pages—and to move from one web page to another through hyperlinks—came to be known as 'browsing,' 'web surfing,' (after channel surfing), or 'navigating the Web'. Early studies of this new behavior investigated user patterns in using web browsers. One study, for example, found five user patterns: exploratory surfing, window surfing, evolved surfing, bounded navigation and targeted navigation.[31]

The following example demonstrates the functioning of web browser when accessing a page at the URL http://example.org/wiki/World_Wide_Web. The browser resolves the server name of the URL (example.org) into an Internet Protocol address using the globally distributed Domain Name System (DNS). This lookup returns an IP address such as 203.0.113.4. The browser then requests the resource by sending an HTTP request across the Internet to the computer at that address. It requests service from a specific TCP port number that is well known for the HTTP service, so that the receiving host can distinguish an HTTP request from other network protocols it may be servicing. The HTTP protocol normally uses port number 80. The content of the HTTP request can be as simple as two lines of text:
 
GET /wiki/World_Wide_Web HTTP/1.1
Host: example.org

The computer receiving the HTTP request delivers it to web server software listening for requests on port 80. If the web server can fulfill the request it sends an HTTP response back to the browser indicating success:
 
HTTP/1.0 200 OK
Content-Type: text/html; charset=UTF-8

followed by the content of the requested page. The Hypertext Markup Language for a basic web page looks like Example.org – The World Wide Web>/title> </head> <body> <p> The World Wide Web, abbreviated as WWW and commonly known ...</p> </body> </html></p> <p> The web browser <a data-blogger-escaped-href="/wiki/Parsing" title="Parsing">parses</a> the HTML and interprets the markup (<tt><title></tt>, <tt><p> </tt> for paragraph, and such) that surrounds the words to format the text on the screen. Many web pages use HTML to reference the URLs of other resources such as images, other embedded media, <a data-blogger-escaped-href="/wiki/Client-side_scripting" title="Client-side scripting">scripts</a> that affect page behavior, and <a data-blogger-escaped-href="/wiki/Cascading_Style_Sheets" title="Cascading Style Sheets">Cascading Style Sheets</a> that affect page layout. The browser makes additional HTTP requests to the web server for these other <a data-blogger-escaped-href="/wiki/Internet_media_type" title="Internet media type">Internet media types</a>. As it receives their content from the web server, the browser progressively <a data-blogger-escaped-href="/wiki/Layout_engine" title="Layout engine">renders</a> the page onto the screen as specified by its HTML and these additional resources.</p> <h3> <font class="mw-headline" id="Linking">Linking</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h3> <p> Most web pages contain <a class="mw-redirect" data-blogger-escaped-href="/wiki/Hyperlinks" title="Hyperlinks">hyperlinks</a> to other related pages and perhaps to downloadable files, source documents, definitions and other web resources. In the underlying HTML, a hyperlink looks like <a href="<i>http://example.org/wiki/Main_Page</i>"<i>>Example.org, a free encyclopedia</i><;/a></p> <div class="thumb tright"> <div class="thumbinner" style="width: 222px;"> <p> <a class="image" data-blogger-escaped-href="/wiki/File:WorldWideWebAroundWikipedia.png"><img alt="" class="thumbimage" data-blogger-escaped-data-file-height="853" data-blogger-escaped-data-file-width="1185" data-blogger-escaped-srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/b9/WorldWideWebAroundWikipedia.png/330px-WorldWideWebAroundWikipedia.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/b9/WorldWideWebAroundWikipedia.png/440px-WorldWideWebAroundWikipedia.png 2x" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/b9/WorldWideWebAroundWikipedia.png/220px-WorldWideWebAroundWikipedia.png" width="220" height="158"></a> </p> <div class="thumbcaption"> <div class="magnify"> <p> <a class="internal" data-blogger-escaped-href="/wiki/File:WorldWideWebAroundWikipedia.png" title="Enlarge"></a></p> </div> <p> Graphic representation of a minute fraction of the WWW, demonstrating <a data-blogger-escaped-href="/wiki/Hyperlink" title="Hyperlink">hyperlinks</a></p> </div> </div> </div> <p>  </p> <p> Such a collection of useful, related resources, interconnected via hypertext links is dubbed a <i>web</i> of information. Publication on the Internet created what <a data-blogger-escaped-href="/wiki/Tim_Berners-Lee" title="Tim Berners-Lee">Tim Berners-Lee</a> first called the <i>WorldWideWeb</i> (in its original <a data-blogger-escaped-href="/wiki/CamelCase" title="CamelCase">CamelCase</a>, which was subsequently discarded) in November 1990.<sup class="reference" id="cite_ref-W90_6-2"><a data-blogger-escaped-href="#cite_note-W90-6"><font>[</font>6<font>]</font></a></sup></p> <p>  </p> <p> The hyperlink structure of the WWW is described by the <a data-blogger-escaped-href="/wiki/Webgraph" title="Webgraph">webgraph</a>: the nodes of the <a data-blogger-escaped-href="/wiki/Webgraph" title="Webgraph">webgraph</a> correspond to the web pages (or URLs) the directed edges between them to the <a data-blogger-escaped-href="/wiki/Hyperlink" title="Hyperlink">hyperlinks</a>.</p> <p>  </p> <p> Over time, many web resources pointed to by hyperlinks disappear, relocate, or are replaced with different content. This makes hyperlinks obsolete, a phenomenon referred to in some circles as <a data-blogger-escaped-href="/wiki/Link_rot" title="Link rot">link rot</a> and the hyperlinks affected by it are often called <a class="mw-redirect" data-blogger-escaped-href="/wiki/Dead_link" title="Dead link">dead links</a>. The ephemeral nature of the Web has prompted many efforts to archive web sites. The <a data-blogger-escaped-href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a>, active since 1996, is the best known of such efforts.</p> <h3> <font class="mw-headline" id="Dynamic_updates_of_web_pages">Dynamic updates of web pages</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h3> <a data-blogger-escaped-href="/wiki/JavaScript" title="JavaScript">JavaScript</a> is a <a class="mw-redirect" data-blogger-escaped-href="/wiki/Scripting_programming_language" title="Scripting programming language">scripting language</a> that was initially developed in 1995 by <a data-blogger-escaped-href="/wiki/Brendan_Eich" title="Brendan Eich">Brendan Eich</a>, then of <a data-blogger-escaped-href="/wiki/Netscape" title="Netscape">Netscape</a>, for use within web pages.<sup class="reference" id="cite_ref-Hamilton_32-0"><a data-blogger-escaped-href="#cite_note-Hamilton-32"><font>[</font>32<font>]</font></a></sup> The standardised version is <a data-blogger-escaped-href="/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>.<sup class="reference" id="cite_ref-Hamilton_32-1"><a data-blogger-escaped-href="#cite_note-Hamilton-32"><font>[</font>32<font>]</font></a></sup> To make web pages more interactive, some web applications also use JavaScript techniques such as <a data-blogger-escaped-href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> (<a data-blogger-escaped-href="/wiki/Asynchronous_I/O" title="Asynchronous I/O">asynchronous</a> JavaScript and <a data-blogger-escaped-href="/wiki/XML" title="XML">XML</a>). <a data-blogger-escaped-href="/wiki/Client-side_scripting" title="Client-side scripting">Client-side script</a> is delivered with the page that can make additional HTTP requests to the server, either in response to user actions such as mouse movements or clicks, or based on elapsed time. The server's responses are used to modify the current page rather than creating a new page with each response, so the server needs only to provide limited, incremental information. Multiple Ajax requests can be handled at the same time, and users can interact with the page while data is retrieved. Web pages may also regularly <a data-blogger-escaped-href="/wiki/Polling_(computer_science)" title="Polling (computer science)">poll</a> the server to check whether new information is available.<sup class="reference" id="cite_ref-33"><a data-blogger-escaped-href="#cite_note-33"><font>[</font>33<font>]</font></a></sup><h3> <font class="mw-headline" id="WWW_prefix">WWW prefix</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h3> <p> Many hostnames used for the World Wide Web begin with <i>www</i> because of the long-standing practice of naming Internet hosts according to the services they provide. The <a data-blogger-escaped-href="/wiki/Hostname" title="Hostname">hostname</a> of a <a data-blogger-escaped-href="/wiki/Web_server" title="Web server">web server</a> is often <i>www</i>, in the same way that it may be <i>ftp</i> for an <a class="mw-redirect" data-blogger-escaped-href="/wiki/FTP_server" title="FTP server">FTP server</a>, and <i>news</i> or <i>nntp</i> for a <a class="mw-redirect" data-blogger-escaped-href="/wiki/USENET" title="USENET">USENET</a> <a data-blogger-escaped-href="/wiki/News_server" title="News server">news server</a>. These host names appear as <a data-blogger-escaped-href="/wiki/Domain_Name_System" title="Domain Name System">Domain Name System</a> (DNS) or <a data-blogger-escaped-href="/wiki/Subdomain" title="Subdomain">subdomain</a> names, as in <i>www.example.com</i>. The use of <i>www</i> is not required by any technical or policy standard and many web sites do not use it; indeed, the first ever web server was called <i>nxoc01.cern.ch</i>.<sup class="reference" id="cite_ref-34"><a data-blogger-escaped-href="#cite_note-34"><font>[</font>34<font>]</font></a></sup> According to Paolo Palazzi,<sup class="reference" id="cite_ref-35"><a data-blogger-escaped-href="#cite_note-35"><font>[</font>35<font>]</font></a></sup> who worked at CERN along with Tim Berners-Lee, the popular use of <i>www</i> as subdomain was accidental; the World Wide Web project page was intended to be published at www.cern.ch while info.cern.ch was intended to be the CERN home page, however the DNS records were never switched, and the practice of prepending <i>www</i> to an institution's website domain name was subsequently copied. Many established websites still use the prefix, or they employ other subdomain names such as <i>www2</i>, <i>secure</i> or <i>en</i> for special purposes. Many such web servers are set up so that both the main domain name (e.g., example.com) and the <i>www</i> subdomain (e.g., www.example.com) refer to the same site; others require one form or the other, or they may map to different web sites.</p> <p>  </p> <p> The use of a subdomain name is useful for <a data-blogger-escaped-href="/wiki/Load_balancing_(computing)" title="Load balancing (computing)">load balancing</a> incoming web traffic by creating a <a data-blogger-escaped-href="/wiki/CNAME_record" title="CNAME record">CNAME record</a> that points to a cluster of web servers. Since, currently, only a subdomain can be used in a CNAME, the same result cannot be achieved by using the bare domain root.<sup class="noprint Inline-Template Template-Fact" style="white-space: nowrap;">[<i><a data-blogger-escaped-href="/wiki/Wikipedia:Citation_needed" data-blogger-escaped-title="Wikipedia:Citation needed"><font title="This claim needs references to reliable sources. (September 2013)">citation needed</font></a></i>]</sup></p> <p>  </p> <p> When a user submits an incomplete domain name to a web browser in its address bar input field, some web browsers automatically try adding the prefix "www" to the beginning of it and possibly ".com", ".org" and ".net" at the end, depending on what might be missing. For example, entering 'microsoft' may be transformed to <i>http://www.microsoft.com/</i> and 'openoffice' to <i>http://www.openoffice.org</i>. This feature started appearing in early versions of Mozilla <a data-blogger-escaped-href="/wiki/Firefox" title="Firefox">Firefox</a>, when it still had the working title 'Firebird' in early 2003, from an earlier practice in browsers such as <a data-blogger-escaped-href="/wiki/Lynx_(web_browser)" title="Lynx (web browser)">Lynx</a>.<sup class="reference" id="cite_ref-36"><a data-blogger-escaped-href="#cite_note-36"><font>[</font>36<font>]</font></a></sup> It is reported that Microsoft was granted a US patent for the same idea in 2008, but only for mobile devices.<sup class="reference" id="cite_ref-37"><a data-blogger-escaped-href="#cite_note-37"><font>[</font>37<font>]</font></a></sup></p> <p>  </p> <p> In English, <a data-blogger-escaped-href="/wiki/Pronunciation_of_%22www%22" title="Pronunciation of "www""><i>www</i> is usually read as</a> <i>double-u double-u double-u</i>.<sup class="reference" id="cite_ref-38"><a data-blogger-escaped-href="#cite_note-38"><font>[</font>38<font>]</font></a></sup> Some users pronounce it <i>dub-dub-dub</i>, particularly in New Zealand. Stephen Fry, in his "Podgrammes" series of podcasts, pronounces it <i>wuh wuh wuh</i>.<sup class="noprint Inline-Template Template-Fact" style="white-space: nowrap;">[<i><a data-blogger-escaped-href="/wiki/Wikipedia:Citation_needed" data-blogger-escaped-title="Wikipedia:Citation needed"><font title="This claim needs references to reliable sources. (September 2013)">citation needed</font></a></i>]</sup> The English writer <a data-blogger-escaped-href="/wiki/Douglas_Adams" title="Douglas Adams">Douglas Adams</a> once quipped in <a data-blogger-escaped-href="/wiki/The_Independent" title="The Independent">The Independent on Sunday</a> (1999): "The World Wide Web is the only thing I know of whose shortened form takes three times longer to say than what it's short for".<sup class="noprint Inline-Template Template-Fact" style="white-space: nowrap;">[<i><a data-blogger-escaped-href="/wiki/Wikipedia:Citation_needed" data-blogger-escaped-title="Wikipedia:Citation needed"><font title="This claim needs references to reliable sources. (September 2013)">citation needed</font></a></i>]</sup> In Mandarin Chinese, <i>World Wide Web</i> is commonly translated via a <a data-blogger-escaped-href="/wiki/Phono-semantic_matching" title="Phono-semantic matching">phono-semantic matching</a> to <i>wàn wéi wǎng</i> (<font data-blogger-escaped-xml:lang="zh" lang="zh"><a class="extiw" data-blogger-escaped-title="wikt:万维网" href="//en.wiktionary.org/wiki/%E4%B8%87%E7%BB%B4%E7%BD%91">万维网</a></font>), which satisfies <i>www</i> and literally means "myriad dimensional net",<sup class="reference" id="cite_ref-39"><a data-blogger-escaped-href="#cite_note-39"><font>[</font>39<font>]</font></a></sup> a translation that reflects the design concept and proliferation of the World Wide Web. Tim Berners-Lee's web-space states that <i>World Wide Web</i> is officially spelled as three separate words, each capitalised, with no intervening hyphens.<sup class="reference" id="cite_ref-40"><a data-blogger-escaped-href="#cite_note-40"><font>[</font>40<font>]</font></a></sup></p> <p>  </p> <p> Use of the www prefix is declining as <a data-blogger-escaped-href="/wiki/Web_2.0" title="Web 2.0">Web 2.0</a> <a data-blogger-escaped-href="/wiki/Web_application" title="Web application">web applications</a> seek to brand their domain names and make them easily pronounceable.<sup class="reference" id="cite_ref-41"><a data-blogger-escaped-href="#cite_note-41"><font>[</font>41<font>]</font></a></sup> As the <a class="mw-redirect" data-blogger-escaped-href="/wiki/Mobile_web" title="Mobile web">mobile web</a> grows in popularity, services like <a class="mw-redirect" data-blogger-escaped-href="/wiki/Google_Mail" title="Google Mail">Gmail</a>.com, <a class="mw-redirect" data-blogger-escaped-href="/wiki/MySpace" title="MySpace">MySpace</a>.com, <a data-blogger-escaped-href="/wiki/Facebook" title="Facebook">Facebook</a>.com and <a data-blogger-escaped-href="/wiki/Twitter" title="Twitter">Twitter</a>.com are most often mentioned without adding "www." (or, indeed, ".com") to the domain.</p> <h3> <font class="mw-headline" id="Scheme_specifiers">Scheme specifiers</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h3> <p> The scheme specifiers <i>http://</i> and <i>https://</i> at the start of a web <a class="mw-redirect" data-blogger-escaped-href="/wiki/Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a> refer to <a data-blogger-escaped-href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">Hypertext Transfer Protocol</a> or <a data-blogger-escaped-href="/wiki/HTTP_Secure" title="HTTP Secure">HTTP Secure</a>, respectively. They specify the communication protocol to use for the request and response. The HTTP protocol is fundamental to the operation of the World Wide Web, and the added encryption layer in HTTPS is essential when browsers send or retrieve confidential data, such as passwords or banking information. Web browsers usually automatically prepend http:// to user-entered URIs, if omitted.</p> <h2> <font class="mw-headline" id="Web_servers">Web servers</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> The primary function of a web server is to deliver web pages in response to client requests. This means delivery of HTML documents and any additional content that may be included by a document, such as images, style sheets and scripts.<h2> <font class="mw-headline" id="Web_security">Web security</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> <p> For criminals, the Web has become the preferred way to spread <a data-blogger-escaped-href="/wiki/Malware" title="Malware">malware</a>. Cybercrime on the Web can include <a data-blogger-escaped-href="/wiki/Identity_theft" title="Identity theft">identity theft</a>, fraud, espionage and <a class="mw-redirect" data-blogger-escaped-href="/wiki/Intelligence_gathering" title="Intelligence gathering">intelligence gathering</a>.<sup class="reference" id="cite_ref-Ben-Itzhak_42-0"><a data-blogger-escaped-href="#cite_note-Ben-Itzhak-42"><font>[</font>42<font>]</font></a></sup> Web-based <a data-blogger-escaped-href="/wiki/Vulnerability_(computing)" title="Vulnerability (computing)">vulnerabilities</a> now outnumber traditional computer security concerns,<sup class="reference" id="cite_ref-43"><a data-blogger-escaped-href="#cite_note-43"><font>[</font>43<font>]</font></a></sup><sup class="reference" id="cite_ref-44"><a data-blogger-escaped-href="#cite_note-44"><font>[</font>44<font>]</font></a></sup> and as measured by <a data-blogger-escaped-href="/wiki/Google" title="Google">Google</a>, about one in ten web pages may contain malicious code.<sup class="reference" id="cite_ref-45"><a data-blogger-escaped-href="#cite_note-45"><font>[</font>45<font>]</font></a></sup> Most web-based <a data-blogger-escaped-href="/wiki/Attack_(computing)" title="Attack (computing)">attacks</a> take place on legitimate websites, and most, as measured by <a data-blogger-escaped-href="/wiki/Sophos" title="Sophos">Sophos</a>, are hosted in the United States, China and Russia.<sup class="reference" id="cite_ref-Sophos-Q1-2008_46-0"><a data-blogger-escaped-href="#cite_note-Sophos-Q1-2008-46"><font>[</font>46<font>]</font></a></sup> </p> <p> The most common of all malware <a data-blogger-escaped-href="/wiki/Threat_(computer)" title="Threat (computer)">threats</a> is <a data-blogger-escaped-href="/wiki/SQL_injection" title="SQL injection">SQL injection</a> attacks against websites.<sup class="reference" id="cite_ref-47"><a data-blogger-escaped-href="#cite_note-47"><font>[</font>47<font>]</font></a></sup> Through HTML and URIs, the Web was vulnerable to attacks like <a data-blogger-escaped-href="/wiki/Cross-site_scripting" title="Cross-site scripting">cross-site scripting</a> (XSS) that came with the introduction of JavaScript<sup class="reference" id="cite_ref-FGHR_48-0"><a data-blogger-escaped-href="#cite_note-FGHR-48"><font>[</font>48<font>]</font></a></sup> and were exacerbated to some degree by Web 2.0 and Ajax <a data-blogger-escaped-href="/wiki/Web_design" title="Web design">web design</a> that favors the use of scripts.<sup class="reference" id="cite_ref-49"><a data-blogger-escaped-href="#cite_note-49"><font>[</font>49<font>]</font></a></sup> Today by one estimate, 70% of all websites are open to XSS attacks on their users.<sup class="reference" id="cite_ref-50"><a data-blogger-escaped-href="#cite_note-50"><font>[</font>50<font>]</font></a></sup> <a data-blogger-escaped-href="/wiki/Phishing" title="Phishing">Phishing</a> is another common threat to the Web. "SA, the Security Division of EMC, today announced the findings of its January 2013 Fraud Report, estimating the global losses from Phishing at $1.5 Billion in 2012.".<sup class="reference" id="cite_ref-First_Post_51-0"><a data-blogger-escaped-href="#cite_note-First_Post-51"><font>[</font>51<font>]</font></a></sup> Two of the well-known phishing methods are <a class="mw-redirect" data-blogger-escaped-href="/wiki/Covert_Redirect" title="Covert Redirect">Covert Redirect</a> and Open Redirect.</p> <p>  </p> <p> Proposed solutions vary to extremes. Large security vendors like <a data-blogger-escaped-href="/wiki/McAfee" title="McAfee">McAfee</a> already design governance and compliance suites to meet post-9/11 regulations,<sup class="reference" id="cite_ref-52"><a data-blogger-escaped-href="#cite_note-52"><font>[</font>52<font>]</font></a></sup> and some, like <a data-blogger-escaped-href="/wiki/Finjan" title="Finjan">Finjan</a> have recommended active real-time inspection of code and all content regardless of its source.<sup class="reference" id="cite_ref-Ben-Itzhak_42-1"><a data-blogger-escaped-href="#cite_note-Ben-Itzhak-42"><font>[</font>42<font>]</font></a></sup> Some have argued that for enterprise to see security as a business opportunity rather than a cost center,<sup class="reference" id="cite_ref-53"><a data-blogger-escaped-href="#cite_note-53"><font>[</font>53<font>]</font></a></sup> "ubiquitous, always-on digital rights management" enforced in the infrastructure by a handful of organizations must replace the hundreds of companies that today secure data and networks.<sup class="reference" id="cite_ref-54"><a data-blogger-escaped-href="#cite_note-54"><font>[</font>54<font>]</font></a></sup> <a data-blogger-escaped-href="/wiki/Jonathan_Zittrain" title="Jonathan Zittrain">Jonathan Zittrain</a> has said users sharing responsibility for computing safety is far preferable to locking down the Internet.<sup class="reference" id="cite_ref-55"><a data-blogger-escaped-href="#cite_note-55"><font>[</font>55<font>]</font></a></sup></p> <h2> <font class="mw-headline" id="Privacy">Privacy</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> Every time a client requests a web page, the server can identify the request's IP address and usually logs it. Also, unless set not to do so, most web browsers record requested web pages in a viewable <i>history</i> feature, and usually <a data-blogger-escaped-href="/wiki/Web_cache" title="Web cache">cache</a> much of the content locally. Unless the server-browser communication uses HTTPS encryption, web requests and responses travel in plain text across the internet and can be viewed, recorded, and cached by intermediate systems.<p>  </p> <p> When a web page asks for, and the user supplies, <a data-blogger-escaped-href="/wiki/Personally_identifiable_information" title="Personally identifiable information">personally identifiable information</a>—such as their real name, address, e-mail address, etc.—web-based entities can associate current web traffic with that individual. If the website uses <a data-blogger-escaped-href="/wiki/HTTP_cookie" title="HTTP cookie">HTTP cookies</a>, username and password authentication, or other tracking techniques, it can relate other web visits, before and after, to the identifiable information provided. In this way it is possible for a web-based organisation to develop and build a profile of the individual people who use its site or sites. It may be able to build a record for an individual that includes information about their leisure activities, their shopping interests, their profession, and other aspects of their <a data-blogger-escaped-href="/wiki/Demographic_profile" title="Demographic profile">demographic profile</a>. These profiles are obviously of potential interest to marketeers, advertisers and others. Depending on the website's <a class="mw-redirect" data-blogger-escaped-href="/wiki/Terms_and_conditions" title="Terms and conditions">terms and conditions</a> and the local laws that apply information from these profiles may be sold, shared, or passed to other organisations without the user being informed. For many ordinary people, this means little more than some unexpected e-mails in their in-box, or some uncannily relevant advertising on a future web page. For others, it can mean that time spent indulging an unusual interest can result in a deluge of further targeted marketing that may be unwelcome. Law enforcement, counter terrorism and espionage agencies can also identify, target and track individuals based on their interests or proclivities on the Web.</p> <p>  </p> <p> <a class="mw-redirect" data-blogger-escaped-href="/wiki/Social_networking" title="Social networking">Social networking</a> sites try to get users to use their real names, interests, and locations. They believe this makes the social networking experience more realistic, and therefore more engaging for all their users. On the other hand, uploaded photographs or unguarded statements can be identified to an individual, who may regret this exposure. Employers, schools, parents, and other relatives may be influenced by aspects of social networking profiles that the posting individual did not intend for these audiences. <a data-blogger-escaped-href="/wiki/Cyberbullying" title="Cyberbullying">On-line bullies</a> may make use of personal information to harass or <a data-blogger-escaped-href="/wiki/Cyberstalking" title="Cyberstalking">stalk</a> users. Modern social networking websites allow fine grained control of the privacy settings for each individual posting, but these can be complex and not easy to find or use, especially for beginners.<sup class="reference" id="cite_ref-56"><a data-blogger-escaped-href="#cite_note-56"><font>[</font>56<font>]</font></a></sup></p> <p>  </p> <p> Photographs and videos posted onto websites have caused particular problems, as they can add a person's face to an on-line profile. With modern and potential <a data-blogger-escaped-href="/wiki/Facial_recognition_system" title="Facial recognition system">facial recognition technology</a>, it may then be possible to relate that face with other, previously anonymous, images, events and scenarios that have been imaged elsewhere. Because of image caching, mirroring and copying, it is difficult to remove an image from the World Wide Web.</p> <h2> <font class="mw-headline" id="Intellectual_property">Intellectual property</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> The intellectual property rights for any creative work initially rest with its creator. Web users who want to publish their work onto the World Wide Web, however, must be aware of the details of the way they do it. If artwork, photographs, writings, poems, or technical innovations are published by their creator onto a privately owned web server, then they may choose the <a data-blogger-escaped-href="/wiki/Copyright" title="Copyright">copyright</a> and other conditions freely themselves. This is unusual though; more commonly work is uploaded to websites and servers that are owned by other organizations. It depends upon the terms and conditions of the site or service provider to what extent the original owner automatically signs over rights to their work by the choice of destination and by the act of uploading.<sup class="noprint Inline-Template Template-Fact" style="white-space: nowrap;">[<i><a data-blogger-escaped-href="/wiki/Wikipedia:Citation_needed" data-blogger-escaped-title="Wikipedia:Citation needed"><font title="This claim needs references to reliable sources. (January 2013)">citation needed</font></a></i>]</sup><p>  </p> <p> Some web users erroneously assume that anything they find online is freely available, as if it were in the <a data-blogger-escaped-href="/wiki/Public_domain" title="Public domain">public domain</a>, which is not always the case. Content owners aware of this belief may expect that others will use their published content without permission. Therefore, some content publishers embed <a data-blogger-escaped-href="/wiki/Digital_watermarking" title="Digital watermarking">digital watermarks</a> in media files, sometimes charging users to receive unmarked copies for legitimate use. <a data-blogger-escaped-href="/wiki/Digital_rights_management" title="Digital rights management">Digital rights management</a> includes forms of access control technology that further limit the use of digital content even after it has been bought or downloaded.<sup class="noprint Inline-Template Template-Fact" style="white-space: nowrap;">[<i><a data-blogger-escaped-href="/wiki/Wikipedia:Citation_needed" data-blogger-escaped-title="Wikipedia:Citation needed"><font title="This claim needs references to reliable sources. (January 2013)">citation needed</font></a></i>]</sup></p> <h2> <font class="mw-headline" id="Standards">Standards</font></h2> <p> Many formal standards and other technical specifications and software define the operation of different aspects of the World Wide Web, the Internet, and computer information exchange. Many of the documents are the work of the World Wide Web Consortium (W3C), headed by Berners-Lee, but some are produced by the <a data-blogger-escaped-href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">Internet Engineering Task Force</a> (IETF) and other organizations.</p> <p> Usually, when web standards are discussed, the following publications are seen as foundational:</p> <ul> <li>Recommendations for <a class="mw-redirect" data-blogger-escaped-href="/wiki/Markup_languages" title="Markup languages">markup languages</a>, especially <a data-blogger-escaped-href="/wiki/HTML" title="HTML">HTML</a> and <a data-blogger-escaped-href="/wiki/XHTML" title="XHTML">XHTML</a>, from the W3C. These define the structure and interpretation of <a data-blogger-escaped-href="/wiki/Hypertext" title="Hypertext">hypertext</a> documents.</li> <li>Recommendations for <a data-blogger-escaped-href="/wiki/Style_sheet_(web_development)" title="Style sheet (web development)">stylesheets</a>, especially <a data-blogger-escaped-href="/wiki/Cascading_Style_Sheets" title="Cascading Style Sheets">CSS</a>, from the W3C.</li> <li>Standards for <a data-blogger-escaped-href="/wiki/ECMAScript" title="ECMAScript">ECMAScript</a> (usually in the form of <a data-blogger-escaped-href="/wiki/JavaScript" title="JavaScript">JavaScript</a>), from <a data-blogger-escaped-href="/wiki/Ecma_International" title="Ecma International">Ecma International</a>.</li> <li>Recommendations for the <a data-blogger-escaped-href="/wiki/Document_Object_Model" title="Document Object Model">Document Object Model</a>, from W3C.</li> </ul> <p> Additional publications provide definitions of other essential technologies for the World Wide Web, including, but not limited to, the following:</p> <ul> <li><i>Uniform Resource Identifier</i> (<a class="mw-redirect" data-blogger-escaped-href="/wiki/Uniform_Resource_Identifier" title="Uniform Resource Identifier">URI</a>), which is a universal system for referencing resources on the Internet, such as hypertext documents and images. URIs, often called URLs, are defined by the IETF's <a class="external mw-magiclink-rfc" data-blogger-escaped-rel="nofollow" href="//tools.ietf.org/html/rfc3986">RFC 3986</a> / STD 66: <i>Uniform Resource Identifier (URI): Generic Syntax</i>, as well as its predecessors and numerous <a data-blogger-escaped-href="/wiki/URI_scheme" title="URI scheme">URI scheme</a>-defining <a class="mw-redirect" data-blogger-escaped-href="/wiki/Request_For_Comments" title="Request For Comments">RFCs</a>;</li> <li><i>HyperText Transfer Protocol (HTTP)</i>, especially as defined by <a class="external mw-magiclink-rfc" data-blogger-escaped-rel="nofollow" href="//tools.ietf.org/html/rfc2616">RFC 2616</a>: <i>HTTP/1.1</i> and <a class="external mw-magiclink-rfc" data-blogger-escaped-rel="nofollow" href="//tools.ietf.org/html/rfc2617">RFC 2617</a>: <i>HTTP Authentication</i>, which specify how the browser and server authenticate each other.</li> </ul> <h2> <font class="mw-headline" id="Accessibility">Accessibility</font></h2> <p> There are methods for accessing the Web in alternative mediums and formats to facilitate use by individuals with disabilities. These disabilities may be visual, auditory, physical, speech related, cognitive, neurological, or some combination. Accessibility features also help people with temporary disabilities, like a broken arm, or aging users as their abilities change.<sup class="reference" id="cite_ref-WAI_57-0"><a data-blogger-escaped-href="#cite_note-WAI-57"><font>[</font>57<font>]</font></a></sup> The Web receives information as well as providing information and interacting with society. The <a data-blogger-escaped-href="/wiki/World_Wide_Web_Consortium" title="World Wide Web Consortium">World Wide Web Consortium</a> claims it essential that the Web be accessible, so it can provide equal access and <a data-blogger-escaped-href="/wiki/Equal_opportunity" title="Equal opportunity">equal opportunity</a> to people with disabilities.<sup class="reference" id="cite_ref-58"><a data-blogger-escaped-href="#cite_note-58"><font>[</font>58<font>]</font></a></sup> Tim Berners-Lee once noted, "The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect."<sup class="reference" id="cite_ref-WAI_57-1"><a data-blogger-escaped-href="#cite_note-WAI-57"><font>[</font>57<font>]</font></a></sup> Many countries regulate <a data-blogger-escaped-href="/wiki/Web_accessibility" title="Web accessibility">web accessibility</a> as a requirement for websites.<sup class="reference" id="cite_ref-59"><a data-blogger-escaped-href="#cite_note-59"><font>[</font>59<font>]</font></a></sup> International cooperation in the W3C <a data-blogger-escaped-href="/wiki/Web_Accessibility_Initiative" title="Web Accessibility Initiative">Web Accessibility Initiative</a> led to simple guidelines that web content authors as well as software developers can use to make the Web accessible to persons who may or may not be using <a data-blogger-escaped-href="/wiki/Assistive_technology" title="Assistive technology">assistive technology</a>.<sup class="reference" id="cite_ref-WAI_57-2"><a data-blogger-escaped-href="#cite_note-WAI-57"><font>[</font>57<font>]</font></a></sup><sup class="reference" id="cite_ref-60"><a data-blogger-escaped-href="#cite_note-60"><font>[</font>60<font>]</font></a></sup></p> <h2> <font class="mw-headline" id="Internationalization">Internationalization</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> <p> The W3C <a data-blogger-escaped-href="/wiki/Internationalization_and_localization" title="Internationalization and localization">Internationalization</a> Activity assures that web technology works in all languages, scripts, and cultures.<sup class="reference" id="cite_ref-61"><a data-blogger-escaped-href="#cite_note-61"><font>[</font>61<font>]</font></a></sup> Beginning in 2004 or 2005, <a data-blogger-escaped-href="/wiki/Unicode" title="Unicode">Unicode</a> gained ground and eventually in December 2007 surpassed both <a data-blogger-escaped-href="/wiki/ASCII" title="ASCII">ASCII</a> and Western European as the Web's most frequently used <a data-blogger-escaped-href="/wiki/Character_encoding" title="Character encoding">character encoding</a>.<sup class="reference" id="cite_ref-62"><a data-blogger-escaped-href="#cite_note-62"><font>[</font>62<font>]</font></a></sup> Originally <a class="external mw-magiclink-rfc" data-blogger-escaped-rel="nofollow" href="//tools.ietf.org/html/rfc3986">RFC 3986</a> allowed resources to be identified by <a class="mw-redirect" data-blogger-escaped-href="/wiki/URI" title="URI">URI</a> in a subset of US-ASCII. <a class="external mw-magiclink-rfc" data-blogger-escaped-rel="nofollow" href="//tools.ietf.org/html/rfc3987">RFC 3987</a> allows more characters—any character in the <a data-blogger-escaped-href="/wiki/Universal_Character_Set" title="Universal Character Set">Universal Character Set</a>—and now a resource can be identified by <a class="mw-redirect" data-blogger-escaped-href="/wiki/Internationalized_Resource_Identifier" title="Internationalized Resource Identifier">IRI</a> in any language.<sup class="reference" id="cite_ref-63"><a data-blogger-escaped-href="#cite_note-63"><font>[</font>63<font>]</font></a></sup></p> <h2> <font class="mw-headline" id="Statistics">Statistics</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> <p> Between 2005 and 2010, the number of web users doubled, and was expected to surpass two billion in 2010.<sup class="reference" id="cite_ref-64"><a data-blogger-escaped-href="#cite_note-64"><font>[</font>64<font>]</font></a></sup> Early studies in 1998 and 1999 estimating the size of the Web using capture/recapture methods showed that much of the web was not indexed by search engines and the Web was much larger than expected.<sup class="reference" id="cite_ref-65"><a data-blogger-escaped-href="#cite_note-65"><font>[</font>65<font>]</font></a></sup><sup class="reference" id="cite_ref-66"><a data-blogger-escaped-href="#cite_note-66"><font>[</font>66<font>]</font></a></sup> According to a 2001 study, there was a massive number, over 550 billion, of documents on the Web, mostly in the invisible Web, or <a data-blogger-escaped-href="/wiki/Deep_Web" title="Deep Web">Deep Web</a>.<sup class="reference" id="cite_ref-67"><a data-blogger-escaped-href="#cite_note-67"><font>[</font>67<font>]</font></a></sup> A 2002 survey of 2,024 million web pages<sup class="reference" id="cite_ref-68"><a data-blogger-escaped-href="#cite_note-68"><font>[</font>68<font>]</font></a></sup> determined that by far the most web content was in the English language: 56.4%; next were pages in German (7.7%), French (5.6%), and Japanese (4.9%). A more recent study, which used web searches in 75 different languages to sample the Web, determined that there were over 11.5 billion web pages in the <a data-blogger-escaped-href="/wiki/Surface_Web" title="Surface Web">publicly indexable web</a> as of the end of January 2005.<sup class="reference" id="cite_ref-69"><a data-blogger-escaped-href="#cite_note-69"><font>[</font>69<font>]</font></a></sup> As of March 2009<sup class="plainlinks noprint asof-tag update" style="display: none;"><a class="external text" href="//en.wikipedia.org/w/index.php?title=World_Wide_Web&action=edit">[update]</a></sup>, the indexable web contains at least 25.21 billion pages.<sup class="reference" id="cite_ref-70"><a data-blogger-escaped-href="#cite_note-70"><font>[</font>70<font>]</font></a></sup> On 25 July 2008, Google software engineers Jesse Alpert and Nissan Hajaj announced that <a data-blogger-escaped-href="/wiki/Google_Search" title="Google Search">Google Search</a> had discovered one trillion unique URLs.<sup class="reference" id="cite_ref-71"><a data-blogger-escaped-href="#cite_note-71"><font>[</font>71<font>]</font></a></sup> As of May 2009<sup class="plainlinks noprint asof-tag update" style="display: none;"><a class="external text" href="//en.wikipedia.org/w/index.php?title=World_Wide_Web&action=edit">[update]</a></sup>, over 109.5 million domains operated.<sup class="reference" id="cite_ref-NI_72-0"><a data-blogger-escaped-href="#cite_note-NI-72"><font>[</font>72<font>]</font></a></sup><sup class="noprint Inline-Template" style="white-space: nowrap;">[<i><a data-blogger-escaped-href="/wiki/Wikipedia:Verifiability" data-blogger-escaped-title="Wikipedia:Verifiability"><font title="The material near this tag failed verification of its source citation(s). (November 2011)">not in citation given</font></a></i>]</sup> Of these 74% were commercial or other domains operating in the <code>.com</code> <a data-blogger-escaped-href="/wiki/Generic_top-level_domain" title="Generic top-level domain">generic top-level domain</a>.<sup class="reference" id="cite_ref-NI_72-1"><a data-blogger-escaped-href="#cite_note-NI-72"><font>[</font>72<font>]</font></a></sup></p> <p> Statistics measuring a website's popularity are usually based either on the number of <a data-blogger-escaped-href="/wiki/Page_view" title="Page view">page views</a> or on associated server '<a class="mw-redirect" data-blogger-escaped-href="/wiki/Hit_(internet)" title="Hit (internet)">hits</a>' (file requests) that it receives.</p> <h2> <font class="mw-headline" id="Speed_issues">Speed issues</font><font class="mw-editsection"><font class="mw-editsection-bracket"></font></font></h2> <p> Frustration over <a data-blogger-escaped-href="/wiki/Network_congestion" title="Network congestion">congestion</a> issues in the Internet infrastructure and the high <a data-blogger-escaped-href="/wiki/Latency_(engineering)" title="Latency (engineering)">latency</a> that results in slow browsing has led to a pejorative name for the World Wide Web: the <i>World Wide Wait</i>.<sup class="reference" id="cite_ref-73"><a data-blogger-escaped-href="#cite_note-73"><font>[</font>73<font>]</font></a></sup> Speeding up the Internet is an ongoing discussion over the use of <a data-blogger-escaped-href="/wiki/Peering" title="Peering">peering</a> and <a data-blogger-escaped-href="/wiki/Quality_of_service" title="Quality of service">QoS</a> technologies. Other solutions to reduce the congestion can be found at <a class="mw-redirect" data-blogger-escaped-href="/wiki/W3C" title="W3C">W3C</a>.<sup class="reference" id="cite_ref-74"><a data-blogger-escaped-href="#cite_note-74"><font>[</font>74<font>]</font></a></sup> <a data-blogger-escaped-href="/wiki/Guideline" title="Guideline">Guidelines</a> for web response times are:<sup class="reference" id="cite_ref-75"><a data-blogger-escaped-href="#cite_note-75"><font>[</font>75<font>]</font></a></sup></p> <ul> <li>0.1 second (one tenth of a second). Ideal response time. The user does not sense any interruption.</li> <li>1 second. Highest acceptable response time. Download times above 1 second interrupt the user experience.</li> <li>10 seconds. Unacceptable response time. The user experience is interrupted and the user is likely to leave the site or system.</li> </ul> <h2> <font class="mw-headline" id="Caching">Caching</font></h2> If a user revisits a web page after a short interval, the browser may not need to re-obtain the page data from the source web server. Almost all web browsers <a class="mw-redirect" data-blogger-escaped-href="/wiki/Browser_cache" title="Browser cache">cache</a> recently obtained data, usually on the local hard drive. HTTP requests from a browser usually ask only for data that has changed since the last download. If locally cached data is still current, the browser reuses it. Caching reduces the amount of web traffic on the Internet. Decisions about expiration are made independently for each downloaded file, whether image, <a data-blogger-escaped-href="/wiki/Cascading_Style_Sheets" title="Cascading Style Sheets">stylesheet</a>, <a data-blogger-escaped-href="/wiki/JavaScript" title="JavaScript">JavaScript</a>, HTML, or other <a data-blogger-escaped-href="/wiki/Web_resource" title="Web resource">web resource</a>. Thus even on sites with highly dynamic content, many basic resources refresh only occasionally. Web site designers find it worthwhile to collate resources such as CSS data and JavaScript into a few site-wide files so that they can be cached efficiently. This helps reduce page download times and lowers demands on the web server.<p>  </p> <p> There are other components of the Internet that can cache web content. Corporate and academic <a class="mw-redirect" data-blogger-escaped-href="/wiki/Firewall_(networking)" title="Firewall (networking)">firewalls</a> often cache Web resources requested by one user for the benefit of all. (See also <a class="mw-redirect" data-blogger-escaped-href="/wiki/Web_proxy#Caching" title="Web proxy">caching proxy server</a>.) Some <a class="mw-redirect" data-blogger-escaped-href="/wiki/Search_engines" title="Search engines">search engines</a> also store cached content from websites. Apart from the facilities built into web servers that can determine when files have been updated and so must be re-sent, designers of dynamically generated web pages can control the HTTP headers sent back to requesting users, so that transient or sensitive pages are not cached. <a data-blogger-escaped-href="/wiki/Online_banking" title="Online banking">Internet banking</a> and news sites frequently use this facility. Data requested with an <a data-blogger-escaped-href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a> 'GET' is likely to be cached if other conditions are met; data obtained in response to a 'POST' is assumed to depend on the data that was Posted and so is not cached.</p> </div> <br><div class="visualClear"> </div> </div> </div>

Equality (mathematics)

From Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Equality_...