build-your-own-browser.html 15.1 KB
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="all">
    @import "/QA/2006/01/blogstyle.css";
    </style>
    <meta name="keywords" content='browser, html, html5, http, libwww, webkit' />
    <meta name="description" content="Little Web bricks help to create new browsers." />
    <meta name="revision" content="$Id: build-your-own-browser.html,v 1.46 2011/12/23 08:27:06 mirror Exp $" />    
   <link rel="alternate" type="application/atom+xml" title="Atom" href="http://www.w3.org/QA/atom.xml" />
   <link rel="alternate" type="application/rss+xml" title="RSS 1.0" href="http://www.w3.org/QA/news.rss" />   
   <title>Build Your Own Browser - W3C Blog</title>

   <link rel="start" href="http://www.w3.org/QA/" title="Home" />
   <link rel="prev" href="http://www.w3.org/QA/2008/09/svg-comics-ebook.html" title="SVG, comics and E-books" />
   <link rel="next" href="http://www.w3.org/QA/2008/09/caching_xml_data_at_install_ti.html" title="Caching XML data at install time" />

   <!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description
    rdf:about="http://www.w3.org/QA/2008/09/build-your-own-browser.html"
    trackback:ping="http://www.w3.org/QA/sununga/mt-tb.cgi/214"
    dc:title="Build Your Own Browser"
    dc:identifier="http://www.w3.org/QA/2008/09/build-your-own-browser.html"
    dc:subject="HTML"
    dc:description="Little Web bricks help to create new browsers."
    dc:creator="Karl Dubost"
    dc:date="2008-09-02T06:23:22+00:00" />
</rdf:RDF>
-->

    <!-- <script type="text/javascript" src="http://www.w3.org/QA/mt.js"></script>-->

</head>
<body class="layout-one-column">
      <div id="banner">
      <h1 id="title">
	<a href="http://www.w3.org/"><img height="48" alt="W3C" id="logo" src="http://www.w3.org/Icons/WWW/w3c_home_nb" /></a>
W3C Blog
</h1>
    </div>
    
    <ul class="navbar" id="menu">
        <li><strong><a href="/QA/" title="W3C Blog Home">[ W3C Blog ]</a></strong></li>
        <li><a href="/QA/Library/" title="Documents and Publications on Web and Quality">Documents</a></li>
        <li><a href="/QA/Tools/" accesskey="3" title="Validators and other Tools">Tools</a></li>
        <li><a href="/2007/12/qa-blog-help/index#feedback">Feedback</a></li>
    </ul>
<div id="searchbox">
<form method="get" action="http://www.google.com/custom" enctype="application/x-www-form-urlencoded">
<p id="formbox"><input type="text" size="15" class="textfield" name="q" accesskey="E" maxlength="255" /> <input type="submit" class="submitfield" value="Search" id="goButton" name="sa" accesskey="G" /> <input type="hidden" name="cof" value="T:black;LW:72;ALC:#ff3300;L:http://www.w3.org/Icons/w3c_home;LC:#000099;LH:48;BGC:white;AH:left;VLC:#660066;GL:0;AWFID:0b9847e42caf283e;" /><input type="hidden" id="searchW3C" name="sitesearch" checked="checked" value="www.w3.org/QA" /><input type="hidden" name="domains" value="www.w3.org/QA" /></p>
</form>
</div>


    <div id="main"><!-- This DIV encapsulates everything in this page - necessary for the positioning -->

                     <p class="content-nav">
                        <a href="http://www.w3.org/QA/2008/09/svg-comics-ebook.html">&laquo; SVG, comics and E-books</a> |
                        <a href="http://www.w3.org/QA/">Main</a>
                        | <a href="http://www.w3.org/QA/2008/09/caching_xml_data_at_install_ti.html">Caching XML data at install time &raquo;</a>
                     </p>

                        <h2 class="entry-header">Build Your Own Browser</h2>
                           <div class="entry-body">
                              <p>A couple of years ago, Joe Gregorio explained <a href="http://bitworking.org/news/Why_so_many_Python_web_frameworks">Why so many Python web frameworks?</a> and showed how to create your own Web framework with a few lines of code. The most fundamental bricks are packaged in the standard python library.</p>

<p>There are always been many hypothesis about why the Web was successful, all of them can't be verified, because we can't restart the experiment. But retrospectively, it is interesting to look at what has been reused widely.  <a href="http://www.w3.org/Library/">libwww</a> is a library including all modules to create a Web application, such as http, html, etc. It has been initially written by Tim Berners-Lee, and was freely available. People could just take the library and put an interface on top of it to make a browser, a Web server, an indexing bot. </p>

<p>One of the very difficult and technical parts of a browser is the <a href="http://en.wikipedia.org/wiki/List_of_layout_engines">layout (or rendering) engine</a>. It takes the Web content and displays it after having processed the style and scripting information. <a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines">Some of these layout engines</a> are open source such as WebKit, Gecko and KHTML.  Others are sometimes sold to third parties for developing specific products. Web developers take them and create <a href="http://en.wikipedia.org/wiki/List_of_web_browsers">new browsers</a> or use them in their applications. For sure it is a tad more complicated than just taking the libraries but it became "easier" to create a browser. It is known as <a href="http://www.macdevcenter.com/lpt/a/4570">BYOB</a>.</p>

<h3>Layout engines used in different contexts</h3>

<ul>
<li><a href="http://trac.webkit.org/wiki/Applications%20using%20WebKit">Applications using Webkit</a></li>
</ul>

                           </div>
                           <div id="more" class="entry-more">
                              

                           </div>
                       <p class="postinfo">Filed by <a href="http://www.w3.org/People/karl/">Karl Dubost</a> on September  2, 2008  6:23 AM in <a href="http://www.w3.org/QA/archive/technology/html/">HTML</a>, <a href="http://www.w3.org/QA/archive/technology/http/">HTTP</a>, <a href="http://www.w3.org/QA/archive/web_spotting/opinions_editorial/">Opinions &amp;amp; Editorial</a><br />
<span class="separator">|</span> <a class="permalink" href="http://www.w3.org/QA/2008/09/build-your-own-browser.html">Permalink</a>
                                 | <a href="http://www.w3.org/QA/2008/09/build-your-own-browser.html#comments">Comments (6)</a>
                                 | <a href="http://www.w3.org/QA/2008/09/build-your-own-browser.html#trackback">TrackBacks (0)</a>
</p>



<h3 class="comments-header" id="comments">Comments</h3>
<div class="comment" id="comment-165270">
<p class="comment-meta" id="c165270">
<span class="comment-meta-author"><strong>Hristo Markov </strong></span>
<span class="comment-meta-date"><a href="#c165270">#</a> 2008-09-08</span>
</p>
<div class="comment-bulk">
<p>I think that the idea to develop different browsers is not good. The main problem is that browsers would not comply with the standards and will show the pages incorrectly. Even now, the most spread browsers IE and Firefox do not meet the same standards. The problems with the differences are many - html standard, Javascript, AJAX …</p>

<p>I would like to give an example:  Cargo Freight Exchange  => for every type of browser there are developed different Javascript source code. AJAX has differences in the exchange of data. IE and Firefox do not meet the same html standards. Etc.</p>

<p>I think that all developers of browsers should be obliged to follow the same rules and standards.  If not, I think that the development of other browsers will further deepen the problems.</p>

</div>
</div>


<div class="comment" id="comment-165761">
<p class="comment-meta" id="c165761">
<span class="comment-meta-author"><strong>Michael Lambert </strong></span>
<span class="comment-meta-date"><a href="#c165761">#</a> 2008-09-17</span>
</p>
<div class="comment-bulk">
<p>A small correction:</p>

<blockquote>
  <p>One of the very difficult and technical part of a browser </p>
</blockquote>

<p>Should be</p>

<p>One of the very difficult and technical parts of a browser </p>

</div>
</div>


<div class="comment" id="comment-165789">
<p class="comment-meta" id="c165789">
<span class="comment-meta-author"><strong>Karl Dubost <a class="commenter-profile" href="http://www.w3.org/People/karl/"><img alt="Author Profile Page" src="http://www.w3.org/QA/sununga/mt-static/images/comment/mt_logo.png" width="16" height="16" /></a></strong></span>
<span class="comment-meta-date"><a href="#c165789">#</a> 2008-09-17</span>
</p>
<div class="comment-bulk">
<p>fixing thanks.</p>

</div>
</div>


<div class="comment" id="comment-168916">
<p class="comment-meta" id="c168916">
<span class="comment-meta-author"><strong>Aaron J Anodide </strong></span>
<span class="comment-meta-date"><a href="#c168916">#</a> 2008-11-16</span>
</p>
<div class="comment-bulk">
<p>I think that the idea of developing new browsers is not <em>bad</em> - because the forces of ROI are more powerful that cool-factor at the end of the day, so you will either:</p>

<p>make a browser and some people will play with it, but it won't hurt anything</p>

<p>or</p>

<p>you will innovate in some way that creates ROI</p>

<p>that said</p>

<p>you may not have made the worlds most conformant browser, but if you added a feature that helps the masses, it will naturally be consumed and incorporated.</p>

<p>thus</p>

<p>I say that making your own browser is a great way to put your mind in the state such that it is primed to innovate, and innovation is what makes the world change in good ways (in my world at least).</p>

</div>
</div>


<div class="comment" id="comment-191767">
<p class="comment-meta" id="c191767">
<span class="comment-meta-author"><strong>JP Blankert </strong></span>
<span class="comment-meta-date"><a href="#c191767">#</a> 2010-05-16</span>
</p>
<div class="comment-bulk">
<p>In my opinion it is dangerous to have so few browsers as nowadays 2010. To my knowledge, only two of them automatically ask whether you want to have a webpage translated (IE and google chrome).</p>

<p>With IDN and the automatic translation of all keywords and websites that is currently going on, I think an individual user should have the choice to - per language - set 'his' favorite translation program. There are at least 500 on the world (and at least 10.000 search engines I guess...why so little browsers?).</p>

<p>I would like to demonstrate people one can use a different than customary browser and set translation program per language. If someone could give me a hint where I can find help or stuff to build a browser, great! Though being internet engineer I have more feeling for languages than for programming.</p>

<p>Thanks in advance for lightning me up on the issues a) how to build a browser (before google and microsoft totally dominate) and b) how to set a different programming software per language. Anybody seeing this may react - jpblankert @ zonnet dot nl  = Philippe Blankert, NL, May 16, 2010</p>

</div>
</div>


<div class="comment" id="comment-967276">
<p class="comment-meta" id="c967276">
<span class="comment-meta-author"><strong>joe sica </strong></span>
<span class="comment-meta-date"><a href="#c967276">#</a> 2011-12-16</span>
</p>
<div class="comment-bulk">
<p>We need new browsers. we hav to many search engines and most of them ( take sevenyoln services) are powered by google. With so many search engines we should have more browsers. I am a collector of browsers and I have: google chrome, mozilla firefox, safari ( my favorit),maxthon ( my second favorit) avont browser, lunascape, falshpeakslimbrowser, and about 5 more.</p>

</div>
</div>



  <div class="comments-open" id="comments-open">
<h3 class="comments-open-header">Leave a comment</h3>

<div class="comments-open-moderated">
   <p>
   Note: this blog is intended to foster <strong>polite
   on-topic discussions</strong>. Comments failing these
   requirements and spam will not get published. Please,
   enter your real name and email address. Every
   individual comment is reviewed by the W3C staff.
   This may take some time, thank you for your patience.
   </p>
   <p>
   You can use the following HTML markup (a href, b, i, 
   br/, p, strong, em, ul, ol, li, blockquote, pre) 
   and/or <a href="http://daringfireball.net/projects/markdown/syntax">Markdown syntax</a>.</p>
</div>

<div id="comments-open-data">
<form method="post" action="http://www.w3.org/QA/sununga/beach.pl" id="comments-form">
<h4>Your comment</h4>
<div id="comments-open-text">
  <textarea id="comment-text" name="text" rows="20" cols="100"></textarea><br />
<label for="comment-text">Write your comment text here. Remember, keep the discussion on topic and courteous.</label>
</div>

<h4>About you</h4>
<div id="comment-form-name">
  <input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="224" />
<input type="hidden" name="__lang" value="en" /> 
<label for="comment-author">Your Name</label>
<input id="comment-author" name="author" size="30" value="" />
</div>
<div id="comment-form-email">
<label for="comment-email">Your Email Address</label>
<input id="comment-email" name="email" size="30" value="" />
</div>

<div id="comments-open-footer">
<input type="submit" accesskey="s" name="post" id="comment-submit" value="Submit" />

</div>
</form>
</div>
</div>



<p id="gentime">This page was last generated on $Date: 2011/12/23 08:27:06 $</p> 

      </div><!-- End of "main" DIV. -->

<address>

This blog is written by W3C staff and working group participants,<br />
&nbsp;and maintained by <a href="/People/CMercier/">Coralie Mercier</a>.<br />
Authorized parties may <a href="/QA/new">log in</a> to create a new entry.<br/>
<span id="poweredby">Powered by Movable Type, magpierss and a lot of Web Technology</span>
    </address>


    
    <p class="copyright">
      <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 1994-2011
      <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a>&reg;
      (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>,
      <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
      <a href="http://www.keio.ac.jp/">Keio</a>),
      All Rights Reserved.
      W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
      <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
      <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
      and <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a>
      rules apply. Your interactions with this site are in accordance
      with our <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Public">public</a> and
      <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Members">Member</a> privacy
      statements.
    </p>

  </body>
</html>