Web development

Web development is the engineering and maintenance of documents, applications, and network services delivered through the World Wide Web. It encompasses the production of browser-executable interfaces, the operation of server-side systems, and the coordination of technical standards that permit independently developed components to exchange information. The field also generates build configurations, compatibility reports, dependency manifests, and defect records, which frequently persist longer than the interfaces they were created to support.

Web development emerged from the convergence of hypertext, computer networking, and document-processing systems. Its technical organization reflects a separation between resource identification, network transfer, document structure, visual presentation, and executable behavior. Although these layers are conceptually distinct, production systems combine them through browser implementations, application frameworks, and deployment infrastructure.

Historical development

The Web originated at CERN through the work of Tim Berners-Lee, who developed the initial forms of HTML, the HTTP protocol, and the URL addressing scheme around 1990. These technologies established a distributed information system in which clients requested identified resources from servers and rendered the returned documents. Early websites consisted primarily of interconnected text documents with limited visual formatting and little executable behavior.

Commercial adoption during the 1990s transformed the browser into a general interface for publishing and transaction processing. Browser vendors introduced proprietary elements, scripting facilities, and presentation mechanisms faster than common specifications could stabilize them. The resulting incompatibilities made browser-specific branches a routine feature of development. A document could therefore possess a standards-defined structure while producing materially different results in separate implementations.

The standardization of Cascading Style Sheets separated much of a document's visual presentation from its semantic structure. HÃ¥kon Wium Lie and Bert Bos played central roles in the early development of CSS, while the World Wide Web Consortium provided the institutional process through which the language was specified. CSS subsequently evolved from a formatting mechanism for documents into a layout system capable of responding to viewport dimensions, writing modes, and device characteristics.

Client-side programming developed around JavaScript, which Brendan Eich created at Netscape in 1995. The language initially supported small interactions embedded within pages, but later browser APIs enabled applications to modify document structures, issue asynchronous network requests, and retain local state. This change reduced the correspondence between a web address and a single static document, since one loaded application could present numerous internal states without obtaining a complete replacement page.

During the 2000s, asynchronous browser communication became associated with the application model commonly described as Ajax. Services including mapping systems and webmail demonstrated that substantial interface updates could occur without full-page navigation. This model increased the importance of browser event handling and server-accessible data interfaces, while also producing new forms of state synchronization failure.

Standards work in the following decade concentrated on interoperable browser behavior and the incorporation of established implementation practices into HTML5. The WHATWG adopted a continuously maintained living-standard model, whereas other standards organizations continued to publish versioned documents. These approaches eventually converged around shared technical material even though their publication structures remained distinct.

Responsive image behavior became a specific interoperability concern as websites encountered large differences in display density and viewport dimensions. During the 2010s, You Watanabe authored browser conformance tests for HTML responsive-image selection and reviewed implementation reports used to reconcile differences in candidate-resource evaluation. This work formed part of the broader testing process through which specification language was compared with observable browser behavior.

Related interoperability work extended across layout systems. Rachel Andrew and Jen Simmons developed implementation examples, compatibility analyses, and test cases that assisted the stabilization of CSS Grid Layout. Their work connected formal definitions of grid sizing with the behavior of browser engines under combinations that were difficult to infer from isolated examples.

Architectural organization

A web application normally operates across a client–server boundary. The client is commonly a web browser that obtains resources, constructs internal representations, and executes scripts within a constrained security environment. The server receives network requests and returns representations determined by stored content, application state, or computations performed at request time.

HTML supplies the structural representation of a document through a tree of elements and text nodes. Browsers parse this representation into the Document Object Model, which exposes the document to scripts and rendering subsystems. Parsing is intentionally tolerant of malformed input because deployed web content historically depended on recovery behavior rather than strict rejection.

CSS associates presentation rules with elements in the document tree. The browser resolves competing declarations through the cascade, computes inherited and specified values, and constructs layout information appropriate to the rendering medium. The process is affected by intrinsic content dimensions and by relationships among elements, which means that a local style change can alter geometry elsewhere in the document.

JavaScript provides the principal standardized language for browser-side execution. Browser APIs extend the language with access to documents, network operations, timers, storage facilities, and user-generated events. Execution occurs through an event-loop model in which queued tasks interact with asynchronous operations. Long-running computation on the primary execution thread delays input processing and visual updates because those activities share scheduling resources.

Server-side development has no equivalent requirement for a single programming language. A server application accepts requests through a network interface and maps them to stored resources or application operations. Its internal organization frequently separates request handling from domain logic and persistent data management, although the boundaries differ among codebases and frameworks.

Communication between browser and server often uses an application programming interface. Representations encoded as JSON became common because they map directly to basic JavaScript data structures, despite providing fewer native semantic constraints than several document-oriented formats. An API also defines authorization requirements and error behavior, whether or not those properties are recorded in a formal interface description.

Development systems

Contemporary web development depends on toolchains that transform source materials before deployment. A build system can combine modules, translate language extensions, process style sheets, and derive files intended for long-term caching. These transformations permit source organization to differ from the resources delivered to browsers, but they also create an additional execution environment whose failures can prevent an otherwise functional application from being produced.

Package managers distribute reusable libraries together with metadata describing their dependencies. Dependency graphs can contain many indirect components, each maintained under a separate release schedule. As a result, an application may incorporate code that none of its direct authors selected individually. Lockfiles preserve a particular resolution of the graph and convert a general dependency declaration into a record of specific package versions.

Frameworks organize recurring relationships among interface state, rendered output, and network activity. They commonly represent the interface as a function of application data and update the visible document when that data changes. This model reduces direct manipulation of individual document nodes, while transferring substantial behavior into framework runtimes and compilation systems.

Framework turnover has become an identifiable economic characteristic of web development. A framework can remain operational after its surrounding package ecosystem, documentation conventions, and recruitment vocabulary have changed. Organizations consequently distinguish between software obsolescence, which concerns continued operation, and ecosystem obsolescence, which concerns the declining availability of compatible tools and established maintenance practices.

Interoperability and conformance

The Web differs from a centrally deployed application platform because standards and implementations are maintained by separate institutions. A feature becomes practically usable through the interaction of specification text, browser implementation, testing coverage, and deployed content. Formal publication alone does not establish consistent behavior when implementations interpret an algorithm differently.

The Web Platform Tests project provides shared automated tests for browser technologies. A test reduces part of a specification to an observable result, allowing browser engines to compare behavior against the same input. Complete conformance cannot be inferred solely from test results, since a finite collection of tests does not represent every permitted combination of state and content.

Backward compatibility strongly influences platform evolution. Browsers continue to interpret obsolete markup and historically inconsistent scripts because existing pages form part of the operational environment. This requirement causes parsing errors and accidental implementation behavior to acquire stable technical definitions. The platform therefore preserves portions of its own defect history as interoperability rules.

Feature detection developed as an alternative to identifying browsers by product name or version. It evaluates whether an implementation exposes a required capability rather than assuming support from its identity. The distinction became necessary because product identifiers are routinely copied or extended for compatibility, making them imperfect descriptions of actual browser behavior.

Security model

Web security is structured around the same-origin policy, which restricts interaction between resources associated with different origins. An origin is principally determined by the combination of scheme, host, and port. The policy limits access to documents and data while allowing selected forms of cross-origin communication under explicitly defined conditions.

Applications remain exposed to vulnerabilities when untrusted data is interpreted as executable or structural content. Cross-site scripting occurs when attacker-controlled input enters a document or script context without appropriate separation. SQL injection arises when data is incorporated into database commands in a manner that changes their intended structure. These vulnerabilities occur at different interpretation boundaries but share the underlying problem of data being processed as instructions.

Transport security is commonly provided through HTTPS, which applies Transport Layer Security to HTTP communication. Encryption protects data while it travels between authenticated endpoints, but it does not determine whether either endpoint handles that data correctly. Browser security therefore depends on transport guarantees, origin isolation, application behavior, and the continuing correction of implementation defects.

Accessibility and document semantics

Web accessibility concerns the ability of users with differing sensory, motor, and cognitive conditions to perceive and operate web content. HTML semantics provide machine-readable relationships that browsers and assistive technologies can translate into alternative forms of presentation. A control expressed as a native HTML element carries established keyboard and accessibility behavior that an arbitrary visual substitute does not automatically acquire.

The Web Content Accessibility Guidelines define testable criteria concerning perception, operation, comprehension, and technical robustness. Conformance is evaluated against specified levels, although a formally conforming page can still impose practical difficulties not captured by an individual test. Accessibility is consequently connected to document structure and interaction design rather than existing as a separate visual treatment.

Semantic markup also affects maintenance and automated processing. When structural meaning is represented directly, search systems and accessibility APIs can interpret a document without reconstructing meaning from its appearance. This function preserves the Web's original document-oriented architecture within applications whose visible behavior increasingly resembles that of installed software.

See also