Frame (World Wide Web)

In the context of a web browser, a frame is a part of a web page or browser window which displays content independent of its container, with the ability to load content independently. The HTML or media elements shown in a frame may come from a different web site as the other elements of content on display, although this practice, known as framing, is today often regarded as a violation of same-origin policy and has been considered a form of copyright infringement.
In HTML, a frameset is a group of named frames to which web pages and media can be directed; an iframe provides for a frame to be placed inside the body of a document.
Since the early 2000s, the use of framesets has been considered obsolete due to usability and accessibility concerns, and the feature has been removed from the HTML5 standard.
Tags and Attributes.
The frames in HTML are created using the codice_1 tag pair. The codice_2 tag is a container tag for all other tags that are used to create frames. The codice_2 tag replaces the codice_4 tag in frameset documents. The codice_2 tag defines how to divide the window into frames. 
Each frameset defines a set of rows or columns.  If user define frames by using the codice_6 attribute then horizontal frames are created. If user define frames by using codice_7 then vertical frames are created.
The codice_8 element may be included so web browsers with frames disabled (or browsers that do not support frames) can display something to the user, as in this example:
<frameset cols="85%, 15%">
 <frame src="http://www.example.com/frame_1.html" name="frame_1">
 <frame src="http://alt.example.com/frame_2.html" name="frame_2">
 <noframes>
 Your browser does not support frames. 
 <a href="http://www.example.com/frame_1.html">Click here</a> to view frame 1. 
 <a href="http://alt.example.com/frame_2.html">Click here</a> for frame 2.
 </noframes>
</frameset>
Framesets have a codice_9 attribute. If set to an integer greater than 0, the user can resize the frames by dragging this border, unless a codice_10 attribute is present in a frame element. If border is set to 0, no border will be displayed and content in different frames will abut each other without delineation.
The codice_11 element is used inline within a normal HTML body, and defines the initial content and name similarly to the codice_12 element. Any text inside an codice_13 tag pair will be displayed in browsers that do not understand the iframe tag.
<iframe src="http://www.example.com/frame_1.html" height="480" width="640">
 Your browser does not support iframes. <a href="http://www.example.com/frame_1.html">Click here</a> to view the content.
</iframe>
History.
Netscape Navigator 2.0 introduced the elements used for frames in March 1996. Other browser vendors such as Apple with Cyberdog followed later that year. At that time, Netscape proposed frames to the World Wide Web Consortium (W3C) for inclusion in the HTML 3.0 standard.
Frames were used to display and navigate early online magazines and web apps, such as webmail services and web chat sites. Frames had the advantage of allowing elements to be displayed sitewide without requiring server features such as server-side includes or CGI support. These features were not common on early web servers accessible to the public.
Early websites often used a frame at the top to display a banner which could not be scrolled away. These banner frames sometimes included the site's logo as well as advertising.
XHTML, intended as a successor to HTML 4, removed all frames in 1.1. The intended eventual replacement was XFrames, which attempts to solve the problem of addressing a populated frameset through composite URIs.
The later HTML5 standard, which took a different approach from HTML 4, also removes framesets. The codice_11 element, however, remains, with a number of "sandboxing" options intended for sharing content between sites.
Advantages.
By allowing content to be loaded and navigated independently, frames offered several advantages over the plain HTML in use when they were first developed:
Criticism.
The practice of framing HTML content led to numerous criticisms, most centering on usability and accessibility concerns. These include:
Alternatives.
As web technology developed, many of the purposes for which frames were used became possible in ways that avoided the problems identified with frames.
Not all of problems identified with framesets are eliminated by using these alternative approaches; for instance issues with Back/Forward navigation, bookmarking, and indexing remain on many sites which make heavy use of DHTML / AJAX navigation.