<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
			<title>Tagged with "reference"</title>
			<link>http://www.addedbytes.com/feeds/tag-feed/</link>
			<description></description>
			<language>en</language>
			<copyright>Added Bytes - Brighton Web Application Development 2006</copyright>
			<ttl>120</ttl>
			<item>
				<title>Icon Reference Chart</title>
				<link>http://www.addedbytes.com/blog/icon-reference-chart/</link>
				<description><![CDATA[ <a class="imagelink" href="http://www.hicksdesign.co.uk/iconreference/"><img class="thumbnail" alt="Icon Reference Chart" src="http://c0397571.cdn.cloudfiles.rackspacecloud.com/glqkr57_l.jpg?1279017438"></a><br />
<br />
An excellent piece of reference material - almost a cheat sheet, in fact. All the sizes, formats and related information you need to be able to create favicons, iphone icons, android icons and more.<br />
<br />
<a href="http://www.hicksdesign.co.uk/iconreference/">Icon Reference Chart</a> (posted from <a href="http://zootool.com/watch/glqkr57/">ZooTool</a>).  <br><br>]]></description>
				<pubDate>Tue, 13 Jul 2010 10:37:26 +0000</pubDate>
				<guid isPermaLink="false">http://www.addedbytes.com/blog/icon-reference-chart/</guid>
				<dc:creator>Dave Child</dc:creator>
				<a href="/feeds/tag-feed/?tags=cheat+sheet&amp;start=0" class="ditto_tag" rel="tag">cheat sheet</a>,<a href="/feeds/tag-feed/?tags=icons&amp;start=0" class="ditto_tag" rel="tag">icons</a>,<a href="/feeds/tag-feed/?tags=reference&amp;start=0" class="ditto_tag" rel="tag">reference</a>
			</item>

			<item>
				<title>Jargon Explained</title>
				<link>http://www.addedbytes.com/online-marketing/jargon-explained/</link>
				<description><![CDATA[ Many of my clients have worked previously consultants and SEOs that inundated them with jargon, especially where proposals and sales calls are concerned. I find myself sometimes using too much jargon - easily done when you spend so much time working in any field. This jargon guide explains the industry terms in simple language. <h3 id="anchortext">Anchor Text</h3>

<p>Anchor text is the text used to link to another site. In this example - <a href="http://www.google.com">Google Web Search</a> - the anchor text is "Google Web Search".</p>

<h3 id="atom">Atom</h3>

<p>Atom is a file format used for web <a href="http://www.addedbytes.com/seo/jargon-explained/#feeds">feeds</a>. It is a type of <a href="http://www.addedbytes.com/seo/jargon-explained/#xml">XML</a> document, and is used in <a href="http://www.addedbytes.com/seo/jargon-explained/#syndication">syndication</a>.</p>

<h3 id="blackhat">Black Hat</h3>

<p>Black Hat is the term used to describe techniques used by some search marketers to promote websites. These techniques are those that go against guidelines published by search engines, and in many cases their use <em>can</em> result in a site being penalised or removed from search engine listings. Black Hat is the opposite of <a href="http://www.addedbytes.com/seo/jargon-explained/#whitehat">White Hat</a>.</p>

<h3 id="cctld">ccTLD</h3>

<p>A ccTLD is a country-code <a href="http://www.addedbytes.com/seo/jargon-explained/#tld">top level domain</a>. .uk, for example, is a ccTLD, as are .au (Australia), .de (Germany), .fr (France), .ca (Canada) and .nz (New Zealand).</p>

<h3 id="clickthroughrate">Click-through Rate</h3>

<p>See <a href="http://www.addedbytes.com/seo/jargon-explained/#ctr">CTR</a>.</p>

<h3 id="cloaking">Cloaking</h3>

<p>Cloaking is a technique used to show content to a search engine and different content to a user. The content shown to the engine is usually designed to help a page rank very well for a certain phrase or word, and the content shown to the user usually designed to maximise the <a href="http://www.addedbytes.com/seo/jargon-explained/#conversion">conversions</a> from that page. Search engines dislike this technique and many sites are banned for using it. It is a <a href="#blackhat">Black Hat</a> technique.</p>

<h3 id="conversion">Conversion</h3>

<p>A conversion is when a website user completes a specific goal. With some sites that can be to complete a sale; with others, to sign up to a newsletter; and with others to make an enquiry.</p>

<h3 id="cookie">Cookie</h3>

<p>A cookie is a small text file stored on a website user's computer. It identifies a repeat visitor to a site, often with a unique code, allowing people to shop online and removing the need to log in to sites repeatedly. Cookies are often considered dangerous by less experienced web users. You can find out more about cookies in <a href="http://www.addedbytes.com/development/are-cookies-dangerous/">Are Cookies Dangerous?</a></p>

<h3 id="cpa">CPA</h3>

<p>CPA stands for "Cost-Per-Action", and is a form of advertising model. The idea is that an advertiser pays a specific amount for each successful <a href="http://www.addedbytes.com/seo/jargon-explained/#conversion">conversion</a>, be that a sale or a signup.</p>

<h3 id="cpc">CPC</h3>

<p>CPC stands for "Cost-Per-Click", and is a form of advertising model. The idea is that an advertiser pays a specific amount for each visitor referred to their website, regardless of whether that user converts to a sale or not.</p>

<h3 id="cpm">CPM</h3>

<p>CPM stands for "Cost-Per-Mille", and is a form of advertising model. The idea is that an advertiser pays a specific amount for every thousand times his advert is seen on a site, regardless of how many of the users who see the advert click on it and visit the advertiser's site.</p>

<h3 id="crawler">Crawler</h3>

<p>See <a href="http://www.addedbytes.com/seo/jargon-explained/#spider">Spider</a>.</p>

<h3 id="ctr">CTR</h3>

<p>CTR stands for "Click-through Rate". It is an indicator of the percentage of people who see an advert who actually click on it. For example, if one out of every hundred people who view an advert click on it, the advert with have a CTR of 1%.</p>

<h3 id="directory">Directory</h3>

<p>A directory is different to a search engine in that it organises the sites it lists in categories. Sites are usually added by hand, rather than found using a <a href="http://www.addedbytes.com/seo/jargon-explained/#spider">spider</a>, and often a small fee is charged for this addition.</p>

<h3 id="datacenter">Data Center</h3>

<p>A data center is a large collection of computers that hold information for a search engine. Major search engines have several of these around the world. Their purposes is to process search queries.</p>

<h3 id="doorway">Doorway Page</h3>

<p>A doorway page is a page designed specifically to rank well in search engines. Often a visitor to a doorway page will not notice they have visited one, as they will be sent straight on to the target page instantly. Use of doorways is a <a href="http://www.addedbytes.com/seo/jargon-explained/#blackhat">Black Hat</a> technique.</p>

<h3 id="feed">Feed</h3>

<p>A feed is a file that users can download that contains information about recent updates and additions to a website. Often these feeds are used for <a href="http://www.addedbytes.com/seo/jargon-explained/#syndication">syndication</a> purposes. Using feeds and programs designed to use feeds, users can often keep up to date with many hundreds of websites.</p>

<h3 id="ffa">FFA</h3>

<p>FFA stands for "Free-For All". It is usually used in conjunction with links pages that allow anyone and everyone to add a link to the page.</p>

<h3 id="googledance">Google Dance</h3>

<p>The Google Dance is the name for the process Google used to go through very regularly when it updated an algorithm. As various <a href="http://www.addedbytes.com/seo/jargon-explained/#datacenter">data centres</a> around the world were progrssively updated, people would be able to make the same search several times in succession and see different results each time. The Google Dance does not happen as often now, but can still be seen when major changes are made to the Google infrastructure or algorithms.</p>

<h3 id="hit">Hit</h3>

<p>A "hit" can mean one of two things.</p>

<ul><li>When searching the web, a hit can be a result found by a search engines that matches the search criteria.</li><li>In analytics, a hit is when a file is requested by a server. Some people have used hits as a measure of website traffic, however hits to a server include images and repeat visitors, and are a poor indicator of traffic. One thousand hits very rarely equals one thousand visits.</li></ul>

<h3 id="ibl">IBL</h3>

<p>IBL stands for "Inbound Link", and refers to a link pointing to a website from a separate website (unlike an internal link, which refers to a link within one website pointing to somewhere else within the same site).</p>

<h3 id="impression">Impression</h3>

<p>Impression is the word used to describe a single viewing of something. A page impression would mean a single view of a web page. In advertising, one impression is a single view of the advert.</p>

<h3 id="keyword">Keyword</h3>

<p>A keyword is simply a word used to describe a page. It can also be a word used by someone trying to find a site, entered into a search engine.</p>

<h3 id="keyphrase">Keyphrase</h3>

<p>A keyphrase is very similar to a <a href="http://www.addedbytes.com/seo/jargon-explained/#keywords">keyword</a>, except that it is a phrase made up of several words.</p>

<h3 id="keywordstuffing">Keyword Stuffing</h3>

<p>Keyword stuffing is the practice of repeating a keyword (or keywords) far too many times throughout a page. It may be that the keyword is repeated so many times in the text that as a result the text reads badly. It may be that it is repeated lots of times in meta tags, or elsewhere in code, or it may be a combination of these things. Common practice in the late 90s, this is now considered a technique that may harm a site more than help it.</p>

<h3 id="linkbuilding">Link Building</h3>

<p>Link Building is the process used to increase the number of links to a website. This can include submitting a website to directories, creating more content for a website, link rental, and many more techniques. Most search engines now use link data extensively in their algorithms, and so link building has become far more common.</p>

<h3 id="metadata">Meta Data / Meta Tag</h3>

<p>Meta Data is information held about a page or document. It is usually held invisibly within the page, and may include a description of the page, a list of relevant keywords, or the name of the author. For a full explanation of common meta tags, and how to work out which ones are worth using, please read <a href="http://www.addedbytes.com/seo/meta-tags/">Meta Tags</a>.</p>

<h3 id="pagetitle">Page Title</h3>

<p>A page title is an important part of a page - it is usually the part of the page that appears as a link in search results. It is usually visible in the title bar of your browser while you are viewing a page.</p>

<h3 id="pr">PageRank / PR</h3>

<p>PageRank is an algorithm, developer by Larry Page and Sergey Brin, founders of Google. It allows you to find the "best" pages of a group of pages by looking at how the pages link to each other. The more links a page has, the better it is considered, and the more important its links, in turn, are considered. PageRank is named after Larry Page.</p>

<h3 id="payperaction">Pay Per Action</h3>

<p>Pay Per Action advertising is the same advertising model as <a href="http://www.addedbytes.com/seo/jargon-explained/#cpa">CPA</a>, in that an advertiser will pay every time a user completes a specific action.</p>

<h3 id="paypercall">Pay Per Call</h3>

<p>Pay Per Call advertising is a subset of <a href="http://www.addedbytes.com/seo/jargon-explained/#payperaction">Pay Per Action</a>, and is the same advertising model as <a href="http://www.addedbytes.com/seo/jargon-explained/#cpa">CPA</a>, in that an advertiser will pay every time a user calls a specific number.</p>

<h3 id="payperclick">Pay Per Click</h3>

<p>Pay Per Click advertising is the same advertising model as <a href="http://www.addedbytes.com/seo/jargon-explained/#cpc">CPC</a>, in that an advertiser will pay every time a user clicks on their advert.</p>

<h3 id="pfi">PFI</h3>

<p>PFI stands for "Pay For Inclusion". Some engines will charge sites to be listed at all in their results (notably Yahoo for many years). Prices vary greatly, and some engines charge annually, where others charge a one-off fee. This is a far more common feature of directories than search engines.</p>

<h3 id="ppc">PPC</h3>

<p>See <a href="payperclick">Pay Per Click</a>.</p>

<h3 id="robots">Robots.txt</h3>

<p>A robots.txt file is a simple text file that contains instructions for search engine <a href="http://www.addedbytes.com/seo/jargon-explained/#spider">spiders</a>. It can tell specific spiders to slow down, or not to index specific area of a site. For more information, please read <a href="http://www.addedbytes.com/development/robots-txt-file/">robots.txt</a>.</p>

<h3 id="roi">ROI</h3>

<p>ROI stands for "Return on Investment". It is a measure of the success of any marketing campaign. A marketing campaign that cost ?10,000 but made ?3,000 would obviously have a low ROI. A marketing campaign that cost ?10,000 but made ?100,000 would have a high ROI.</p>

<h3 id="rss">RSS</h3>

<p>RSS is a type of <a href="http://www.addedbytes.com/seo/jargon-explained/#xml">XML</a> file, and is the most commonly used file format for website <a href="http://www.addedbytes.com/seo/jargon-explained/#feed">feeds</a>.</p>

<h3 id="sem">SEM</h3>

<p>SEM is an acronym of "Search Engine Marketing". SEM is a broader topic than <a href="http://www.addedbytes.com/seo/jargon-explained/#seo">SEO</a>, and can include, for example, an online PR campaign or <a href="http://www.addedbytes.com/seo/jargon-explained/#ppc">PPC</a> (and other forms of) advertising.</p>

<h3 id="seo">SEO</h3>

<p>SEO is an acronym of "Search Engine Optimisation", and is the art of altering a website to improve a site's performance in search engines (note: an improvement in performance does not equal an increase in traffic!).</p>

<h3 id="serps">SERPs</h3>

<p>SERPs is an acronym for "Search Engine Result Pages".</p>

<h3 id="ses">SEs</h3>

<p>SE is an abbreviation of "Search Engine".</p>

<h3 id="sitemaps">Site Map</h3>

<p>A site map is a page, or set of pages, on a website, designed to help users and search engines find their way around a site.</p>

<h3 id="spam">Spam</h3>

<p>Spam has many different meanings on the web. The most common meaning is related to email, where spam describes unwanted email, often commercial in nature, and often sent out indiscriminately to millions of people at once. In a search engine context, spam refers to pages that are listed out of place. This can mean pages that are found for keywords unrelated to their content. It can also mean pages appearing unnaturally high in search engines. These pages are often promoted using <a href="http://www.addedbytes.com/seo/jargon-explained/#blackhat">Black Hat</a> techniques, especially <a href="http://www.addedbytes.com/seo/jargon-explained/#cloaking">cloaking</a> and <a href="http://www.addedbytes.com/seo/jargon-explained/#doorway">doorway pages</a>.</p>

<h3 id="spider">Spider</h3>

<p>A spider, also often called a "crawler", is a program created by a search engine to index pages on the web. It visits pages on the web, collects their content, and finds links within that page. It then adds the links found on that page to those it intends to crawl.</p>

<h3 id="splashpage">Splash Page</h3>

<p>A splash page is an introduction page to a website, often created using flash. They are much derided, as they slow down access to a website and often provide no useful information to the user.</p>

<h3 id="stopword">Stop Word</h3>

<p>A stop word is a word that is ignored by the search engines. It is a word that appears so often on the web as to be useless to a search engine. Examples include "a", "and", "I", "you" and "it".</p>

<h3 id="syndication">Syndication</h3>

<p>Syndication is where a website makes information available for others to use. In the majority of cases, the information available is a list of the content most recently added to the site (a <a href="http://www.addedbytes.com/seo/jargon-explained/#feed">feed</a>), to allows visitors to keep up to date easily with new content added to many sites.</p>

<h3 id="textlinkad">Text Link Ad</h3>

<p>A text link ad is a type of advert on a website, placed in return for a simple monthly fee. These types of advert can have a positive effect on a website's SEO campaign, and can directly generate traffic to websites.</p>

<h3 id="tld">TLD</h3>

<p>A TLD is an acronym for "Top Level Domain". .com, .org, .net, .biz, .info, .name and .pro are all examples of TLDs. They are usually global TLDs, unlike <a href="http://www.addedbytes.com/seo/jargon-explained/#cctld">ccTLDs</a>, which are country-code domains.</p>

<h3 id="url">URL / URI</h3>

<p>A URL (Uniform Resource Locator), sometimes (more correctly) referred to as a URI (Uniform Resource Identifier), is in basic terms a web address. For example, "http://www.addedbytes.com" is a URI.</p>

<h3 id="visits">Visit</h3>

<p>A visit is different from a <a href="http://www.addedbytes.com/seo/jargon-explained/#hit">Hit</a> or an <a href="http://www.addedbytes.com/seo/jargon-explained/#impression">Impression</a>, in that it indicates a single person's visit to a website. A visit may include many page impressions, and many hits.</p>

<h3 id="whitehat">White Hat</h3>

<p>White Hat is the term used to describe techniques used by some search marketers to promote websites. These techniques are those that adhere to the guidelines published by search engines. White Hat is the opposite of <a href="http://www.addedbytes.com/seo/jargon-explained/#blackhat">Black Hat</a>.</p>

<h3 id="xml">XML</h3>

<p>XML is a file format designed to create files that are easy to share and understand.</p> <br><br>]]></description>
				<pubDate>Wed, 03 May 2006 12:17:00 +0000</pubDate>
				<guid isPermaLink="false">http://www.addedbytes.com/online-marketing/jargon-explained/</guid>
				<dc:creator>Dave Child</dc:creator>
				<a href="/feeds/tag-feed/?tags=article&amp;start=0" class="ditto_tag" rel="tag">article</a>,<a href="/feeds/tag-feed/?tags=blog&amp;start=0" class="ditto_tag" rel="tag">blog</a>,<a href="/feeds/tag-feed/?tags=google&amp;start=0" class="ditto_tag" rel="tag">google</a>,<a href="/feeds/tag-feed/?tags=jargon&amp;start=0" class="ditto_tag" rel="tag">jargon</a>,<a href="/feeds/tag-feed/?tags=reference&amp;start=0" class="ditto_tag" rel="tag">reference</a>,<a href="/feeds/tag-feed/?tags=search&amp;start=0" class="ditto_tag" rel="tag">search</a>,<a href="/feeds/tag-feed/?tags=seo&amp;start=0" class="ditto_tag" rel="tag">seo</a>,<a href="/feeds/tag-feed/?tags=web&amp;start=0" class="ditto_tag" rel="tag">web</a>
			</item>

			<item>
				<title>Block Prefetching</title>
				<link>http://www.addedbytes.com/blog/block-prefetching/</link>
				<description><![CDATA[ <p>Mozilla and Google's prefetching functions are a nice addition to browser technology in many ways. Unsurprisingly, they are not very well thought through.</p> <p>Mozilla and Google's prefetching functions are a nice addition to browser technology in many ways. Unsurprisingly, they are not very well thought through. The main two problems with the prefetching idea are that it messes with log files and it means every link on a page could potentially be followed despite the consequences (dangerous in a site administration context).</p>

<p>It appears from the FAQ that Google only intends their accelerator to prefetch specific pages, that have been specified with the &lt;link&gt; tag. However, many people are claiming that normal links have been prefetched.</p>

<p>To prevent prefetching of a page is simple: add the following PHP to the page you do not want prefetched:</p>

<pre class="php">if ((isset($_SERVER['HTTP_X_MOZ'])) && ($_SERVER['HTTP_X_MOZ'] == 'prefetch')) {
    // This is a prefetch request. Block it.
    header('HTTP/1.0 403 Forbidden');
    echo '403: Forbidden&lt;br&gt;&lt;br&gt;Prefetching not allowed here.';
    die();
}</pre>

<p>This will serve a "forbidden" header to the prefetcher. Normal browsing should be unaffected.</p> <br><br>]]></description>
				<pubDate>Wed, 20 Apr 2005 15:16:00 +0000</pubDate>
				<guid isPermaLink="false">http://www.addedbytes.com/blog/block-prefetching/</guid>
				<dc:creator>Dave Child</dc:creator>
				<a href="/feeds/tag-feed/?tags=block&amp;start=0" class="ditto_tag" rel="tag">block</a>,<a href="/feeds/tag-feed/?tags=google&amp;start=0" class="ditto_tag" rel="tag">google</a>,<a href="/feeds/tag-feed/?tags=mozilla&amp;start=0" class="ditto_tag" rel="tag">mozilla</a>,<a href="/feeds/tag-feed/?tags=php&amp;start=0" class="ditto_tag" rel="tag">php</a>,<a href="/feeds/tag-feed/?tags=prefetching&amp;start=0" class="ditto_tag" rel="tag">prefetching</a>,<a href="/feeds/tag-feed/?tags=reference&amp;start=0" class="ditto_tag" rel="tag">reference</a>,<a href="/feeds/tag-feed/?tags=webdev&amp;start=0" class="ditto_tag" rel="tag">webdev</a>
			</item>

			<item>
				<title>The Box Model For Beginners</title>
				<link>http://www.addedbytes.com/for-beginners/the-box-model-for-beginners/</link>
				<description><![CDATA[ An explanation of what the box model is and how it is treated by different user agents. <p>The term "box model" is often used by people when talking about CSS-based layouts and design. Not everyone understands what is meant by this though, and not everyone understands why it is so important.</p>

<p>Any HTML element can be considered a box, and so the box model applies to all HTML (and XHTML) elements.</p>

<p>The box model is the specification that defines how a box and its attributes relate to each other. In its simplest form, the box model tells browsers that a box defined as having width 100 pixels and height 50 pixels should be drawn 100 pixels wide and 50 pixels tall.</p>

<p>There is more you can add to a box, though, like padding, margins, borders, etc. This image should help explain what I'm about to run through:</p>

<p style="text-align:center;"><img src="content/box-model/box.png" alt="Outline of box model" /></p>

<p>As you can see, a box is made up of four distinct parts. The outside one, the margin, is completely invisible. It has no background color, and will not obstruct elements behind it. The margin is outside the second part, which is the border. The border outlines the visible portion of the element. Inside the border is the third part of the box, the padding, and then inside that the content area of the box. The padding defines the space between the content area of the box and the border.</p>

<p>(Note that in the image above, the only border of the three drawn that would actually be visible is the solid line - the dashed lines are added to help demonstrate the box model).</p>

<p>When you define a width and a height for your box using CSS, you are defining not the entire area taken up by the content, padding, border and margin. You are actually just defining the content area itself - the bit right in the middle. The padding, border and margin must be added to that in order to calculate the total space occupied by the box. (From this point on, we will use width for demonstrations, but the same principles apply to both width and height).</p>

<code>box {
    width: 200px;
    border: 10px solid #99c;
    padding: 20px;
    margin: 20px;
}</code>

<p>The above CSS, applied to a box, would mean that that box occupied 300 pixels of space horizontally on the page. The content of the box would occupy 200 pixels of that (dashed line added to demonstrate the edge of the area occupied by the box):</p>

<p style="text-align:center;"><img src="content/box-model/box_demo.png" alt="Box model demonstration." /></p>

<p>In the above image, you can see that the pale blue area is 240 pixels wide (200 pixels of content plus 20 pixels padding either side). The border is 10 pixels wide either side, making the total width including the border 260 pixels. The margin is 20 pixels either side, making the total width of the box 300 pixels.</p>

<p>In practice, this can cause some confusion. For example, if I have a 100 pixel wide space available, and want to fill it with a pale red box with a dark red border and a small amount of padding, it would be very easy to write the CSS like so:</p>

<code>box {
    width: 100px;
    border: 1px solid #900;
    padding: 10px;
    margin: 0;
    background: #fee;
}</code>

<p>(A declaration of 0, as used for the margin above, does not require a unit to be added. Any value other than 0 does require a unit, e.g. px for pixels. Also, although "background" is defined as a shorthand property, it is more widely supported than the more correct "background-color".)</p>

<p>However, that will not give us a 100 pixel wide box, as the width declaration defines the content area of the box. The content area of the box will be 100 pixels - the total width of the box as defined above will be 122 pixels:</p>

<p style="text-align:center;"><img src="content/box-model/box_demo2.png" alt="Box model demonstration." /></p>

<p>In order to set the above box to only occupy 100 pixels horizontally, you would need to set the width of the content area to be 100 pixels minus the padding and minus the border, in this case 78 pixels, like so:</p>

<code>box {
    width: <strong>78px</strong>;
    border: 1px solid #900;
    padding: 10px;
    margin: 0;
    background: #fee;
}</code>

<p>To calculate the overall width of a box, including all padding, borders and margins, you would use the following formula:</p>

<code>total box width = content area width + left padding + right padding + left border + right border + left margin + right margin</code>

<h3>Compatibility</h3>

<p>At this point, you should now have a good understanding of what the box model is, and how boxes <em>should</em> be treated by different browsers. However, as you will soon learn (if you did not know already), not every browser does as it is supposed to. In order to use boxes, and by extension make the most of CSS in your website, you will need to be aware of how the different browsers treat boxes in practice and how to overcome and work around the problems presented by these idiosyncrasies.</p>

<h3>Top Notch</h3>

<p><img src="images/browser_logos/opera6.gif" alt="Opera 6" /> <img src="images/browser_logos/opera7.gif" alt="Opera 7" /> <img src="images/browser_logos/mozilla.gif" alt="Mozilla" /> <img src="images/browser_logos/firefox.gif" alt="Firefox" /> <img src="images/browser_logos/camino.gif" alt="Camino" /> <img src="images/browser_logos/safari.gif" alt="Safari" /> <img src="images/browser_logos/konqueror.gif" alt="Konqueror" /> <img src="images/browser_logos/netscape6.gif" alt="Netscape 6" /> <img src="images/browser_logos/netscape7.gif" alt="Netscape 7" /> <img src="images/browser_logos/ie6.gif" alt="Internet Explorer 6" /></p>

<p>Most browsers released in the last few years have no problem with boxes and render boxes correctly. Opera 6 and 7, Mozilla 1 (and by extension other browsers based on the Gecko engine like Netscape 7, Camino and Firefox and other derivatives), Safari, Konquerer (and derivatives) and Internet Explorer 5 for the Mac are all shining examples of how a web browser <em>should</em> behave, all rendering boxes flawlessly. IE 6 for Windows also will render a box correctly, as long as the [url=http://www.addedbytes.com/design/dtds-explained]Document Type Definition[/url] for the page is correct.</p>

<h3>Whoops, Mrs Miggins, You're Sitting On My Artichokes</h3>

<p><img src="images/browser_logos/ie5.gif" alt="Internet Explorer 5" /> <img src="images/browser_logos/ie6.gif" alt="Internet Explorer 6" /></p>

<p>Some browsers don't display a box correctly. Unlike those below here, these browsers are widely enough used on the web that it is usually worth the effort to work through the problem. There are various methods for doing this, some better than others, that follow on. Most notable among the browsers with problems are Internet Explorers 4 and 5 and Internet Explorer 6. IE 6 is easy to work around, by adding a correct DTD (which you should be doing anyway).</p>

<p>Internet Explorer 5 is the main reason there is a box model problem at all. It, unfortunately, does not follow the simple definition for box layout as defined by the W3c. When you define a width for a box and it is rendered in IE5, instead of that width defining the content area of the box, it <em>includes the borders and padding</em>. Margins are added on to the content width correctly, but padding and borders are not. Unfortunately, this leaves us with some unpleasant choices:</p>

<ol><li><strong>Use a box model hack</strong><br />
Hack's like [url=http://www.tantek.com/CSS/Examples/boxmodelhack.html]Tantek's box model hack[/url] are unfortunately something of a necessity. While some might argue that using hacks like this is completely missing the point of using CSS for web design, commercial necessity and the prevalence of IE5 leave us with little in the way of choice. The IE5 box model hack is in use all over the web and has spawned plenty of variants.</li><li><strong>Add in extra code</strong><br />
Some might consider this a slightly "better" way of working around this problem. Rather than adding a style sheet hack, you can nest elements within each other. Adding a div within another div means that rather than using padding, you can use just margins, which are handled correctly by IE5. As with the box model hack, it is far from a perfect solution, but there are few other options if you want a site to look the same in IE5 as other more capable browsers.</li></ol>

<h3>Hall of Shame</h3>

<p><img src="images/browser_logos/ie4.gif" alt="Internet Explorer 4" /> <img src="images/browser_logos/netscape4.gif" alt="Netscape 4" /></p>

<p>On the one hand, the browsers that I am about to mention are appalling, all failing dismally to render a simple box correctly for one reason or another. On a more positive note, users of these browsers, mostly old versions of current browsers, make up an extremely small, and continually shrinking, portion of web users. While you could probably find a workaround for the bugs in the display of boxes in these browsers, it is almost certainly not worth the effort - you are likely to cause yourself more harm than good with workarounds for these!</p>

<p>Netscape 4's box model is awful, but even worse, the simple box model hacks to fix the problem for IE5 and IE6 will crash Netscape 4. Netscape 4's style sheet support is abysmal overall, and it is being supported less and less. Though it is strictly a personal choice, I don't think it is worth the time and effort to support Netscape 4 any more - it's just not used enough, and the number of users is only ever going to shrink.</p>

<p>Internet Explorer 4 suffers, basically, the same problem as IE5. It treats boxes in a very similar way. However, it falls over in far more ways, and many of the available hacks will crash IE4. As it is also used by few people, and that number is dropping, many designers ignore it.</p>

<h3>What does the future hold?</h3>

<p>CSS3 promises us the option to determine how we want the user agent to treat boxes, and specify which box model we want to use. Support for CSS3 at a level that will be possible is many many years away yet. Until then, we are stuck with the CSS2 box model, and while IE5 is still used by a significant percentage of the web's population, we are going to have problems with boxes.</p> <br><br>]]></description>
				<pubDate>Fri, 09 Jul 2004 10:48:54 +0000</pubDate>
				<guid isPermaLink="false">http://www.addedbytes.com/for-beginners/the-box-model-for-beginners/</guid>
				<dc:creator>Dave Child</dc:creator>
				<a href="/feeds/tag-feed/?tags=box&amp;start=0" class="ditto_tag" rel="tag">box</a>,<a href="/feeds/tag-feed/?tags=boxmodel&amp;start=0" class="ditto_tag" rel="tag">boxmodel</a>,<a href="/feeds/tag-feed/?tags=css&amp;start=0" class="ditto_tag" rel="tag">css</a>,<a href="/feeds/tag-feed/?tags=design&amp;start=0" class="ditto_tag" rel="tag">design</a>,<a href="/feeds/tag-feed/?tags=html&amp;start=0" class="ditto_tag" rel="tag">html</a>,<a href="/feeds/tag-feed/?tags=model&amp;start=0" class="ditto_tag" rel="tag">model</a>,<a href="/feeds/tag-feed/?tags=reference&amp;start=0" class="ditto_tag" rel="tag">reference</a>,<a href="/feeds/tag-feed/?tags=tips&amp;start=0" class="ditto_tag" rel="tag">tips</a>,<a href="/feeds/tag-feed/?tags=tutorial&amp;start=0" class="ditto_tag" rel="tag">tutorial</a>,<a href="/feeds/tag-feed/?tags=webdesign&amp;start=0" class="ditto_tag" rel="tag">webdesign</a>,<a href="/feeds/tag-feed/?tags=webdev&amp;start=0" class="ditto_tag" rel="tag">webdev</a>
			</item>

			<item>
				<title>HTTP Status Codes for Beginners</title>
				<link>http://www.addedbytes.com/for-beginners/http-status-codes/</link>
				<description><![CDATA[ All valid HTTP 1.1 Status Codes simply explained. <p>HTTP, Hypertext Transfer Protocol, is the method by which clients (i.e. you) and servers communicate. When someone clicks a link, types in a URL or submits out a form, their browser sends a request to a server for information. It might be asking for a page, or sending data, but either way, that is called an HTTP Request. When a server receives that request, it sends back an HTTP Response, with information for the client. Usually, this is invisible, though I'm sure you've seen one of the very common Response codes - 404, indicating a page was not found. There are a fair few more status codes sent by servers, and the following is a list of the current ones in HTTP 1.1, along with an explanation of their meanings.</p>

<p>A more technical breakdown of HTTP 1.1 status codes and their meanings is available at <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html</a>. There are several versions of HTTP, but currently HTTP 1.1 is the most widely used.</p>

<h3>Informational</h3>

<ul><li class="reference"><strong>100 - Continue</strong><br />A status code of 100 indicates that (usually the first) part of a request has been received without any problems, and that the rest of the request should now be sent.</li><li class="reference"><strong>101 - Switching Protocols</strong><br />HTTP 1.1 is just one type of protocol for transferring data on the web, and a status code of 101 indicates that the server is changing to the protocol it defines in the "Upgrade" header it returns to the client. For example, when requesting a page, a browser might receive a statis code of 101, followed by an "Upgrade" header showing that the server is changing to a different version of HTTP.</li></ul>

<h3>Successful</h3>

<ul><li class="reference"><strong>200 - OK</strong><br />The 200 status code is by far the most common returned. It means, simply, that the request was received and understood and is being processed.</li><li class="reference"><strong>201 - Created</strong><br />A 201 status code indicates that a request was successful and as a result, a resource has been created (for example a new page).</li><li class="reference"><strong>202 - Accepted</strong><br />The status code 202 indicates that server has received and understood the request, and that it has been accepted for processing, although it may not be processed immediately.</li><li class="reference"><strong>203 - Non-Authoritative Information</strong><br />A 203 status code means that the request was received and understood, and that information sent back about the response is from a third party, rather than the original server. This is virtually identical in meaning to a 200 status code.</li><li class="reference"><strong>204 - No Content</strong><br />The 204 status code means that the request was received and understood, but that there is no need to send any data back.</li><li class="reference"><strong>205 - Reset Content</strong><br />The 205 status code is a request from the server to the client to reset the document from which the original request was sent. For example, if a user fills out a form, and submits it, a status code of 205 means the server is asking the browser to clear the form.</li><li class="reference"><strong>206 - Partial Content</strong><br />A status code of 206 is a response to a request for part of a document. This is used by advanced caching tools, when a user agent requests only a small part of a page, and just that section is returned.</li></ul>

<h3>Redirection</h3>

<ul><li class="reference"><strong>300 - Multiple Choices</strong><br />The 300 status code indicates that a resource has moved. The response will also include a list of locations from which the user agent can select the most appropriate.</li><li class="reference"><strong>301 - Moved Permanently</strong><br />A status code of 301 tells a client that the resource they asked for has permanently moved to a new location. The response should also include this location. It tells the client to use the new URL the next time it wants to fetch the same resource.</li><li class="reference"><strong>302 - Found</strong><br />A status code of 302 tells a client that the resource they asked for has temporarily moved to a new location. The response should also include this location. It tells the client that it should carry on using the same URL to access this resource.</li><li class="reference"><strong>303 - See Other</strong><br />A 303 status code indicates that the response to the request can be found at the specified URL, and should be retrieved from there. It does not mean that something has moved - it is simply specifying the address at which the response to the request can be found.</li><li class="reference"><strong>304 - Not Modified</strong><br />The 304 status code is sent in response to a request (for a document) that asked for the document only if it was newer than the one the client already had. Normally, when a document is cached, the date it was cached is stored. The next time the document is viewed, the client asks the server if the document has changed. If not, the client just reloads the document from the cache.</li><li class="reference"><strong>305 - Use Proxy</strong><br />A 305 status code tells the client that the requested resource has to be reached through a proxy, which will be specified in the response.</li><li class="reference"><strong>307 - Temporary Redirect</strong><br />307 is the status code that is sent when a document is temporarily available at a different URL, which is also returned. There is very little difference between a 302 status code and a 307 status code. 307 was created as another, less ambiguous, version of the 302 status code.</li></ul>

<h3>Client Error</h3>

<ul><li class="reference"><strong>400 - Bad Request</strong><br />A status code of 400 indicates that the server did not understand the request due to bad syntax.</li><li class="reference"><strong>401 - Unauthorized</strong><br />A 401 status code indicates that before a resource can be accessed, the client must be authorised by the server.</li><li class="reference"><strong>402 - Payment Required</strong><br />The 402 status code is not currently in use, being listed as "reserved for future use".</li><li class="reference"><strong>403 - Forbidden</strong><br />A 403 status code indicates that the client cannot access the requested resource. That might mean that the wrong username and password were sent in the request, or that the permissions on the server do not allow what was being asked.</li><li class="reference"><strong>404 - Not Found</strong><br />The best known of them all, the 404 status code indicates that the requested resource was not found at the URL given, and the server has no idea how long for.</li><li class="reference"><strong>405 - Method Not Allowed</strong><br />A 405 status code is returned when the client has tried to use a request method that the server does not allow. Request methods that are allowed should be sent with the response (common request methods are POST and GET).</li><li class="reference"><strong>406 - Not Acceptable</strong><br />The 406 status code means that, although the server understood and processed the request, the response is of a form the client cannot understand. A client sends, as part of a request, headers indicating what types of data it can use, and a 406 error is returned when the response is of a type not i that list.</li><li class="reference"><strong>407 - Proxy Authentication Required</strong><br />The 407 status code is very similar to the 401 status code, and means that the client must be authorised by the proxy before the request can proceed.</li><li class="reference"><strong>408 - Request Timeout</strong><br />A 408 status code means that the client did not produce a request quickly enough. A server is set to only wait a certain amount of time for responses from clients, and a 408 status code indicates that time has passed.</li><li class="reference"><strong>409 - Conflict</strong><br />A 409 status code indicates that the server was unable to complete the request, often because a file would need to be editted, created or deleted, and that file cannot be editted, created or deleted.</li><li class="reference"><strong>410 - Gone</strong><br />A 410 status code is the 404's lesser known cousin. It indicates that a resource has permanently gone (a 404 status code gives no indication if a resource has gine permanently or temporarily), and no new address is known for it.</li><li class="reference"><strong>411 - Length Required</strong><br />The 411 status code occurs when a server refuses to process a request because a content length was not specified.</li><li class="reference"><strong>412 - Precondition Failed</strong><br />A 412 status code indicates that one of the conditions the request was made under has failed.</li><li class="reference"><strong>413 - Request Entity Too Large</strong><br />The 413 status code indicates that the request was larger than the server is able to handle, either due to physical constraints or to settings. Usually, this occurs when a file is sent using the POST method from a form, and the file is larger than the maximum size allowed in the server settings.</li><li class="reference"><strong>414 - Request-URI Too Long</strong><br />The 414 status code indicates the the URL requested by the client was longer than it can process.</li><li class="reference"><strong>415 - Unsupported Media Type</strong><br />A 415 status code is returned by a server to indicate that part of the request was in an unsupported format.</li><li class="reference"><strong>416 - Requested Range Not Satisfiable</strong><br />A 416 status code indicates that the server was unable to fulfill the request. This may be, for example, because the client asked for the 800th-900th bytes of a document, but the document was only 200 bytes long.</li><li class="reference"><strong>417 - Expectation Failed</strong><br />The 417 status code means that the server was unable to properly complete the request. One of the headers sent to the server, the "Expect" header, indicated an expectation the server could not meet.</li></ul>

<h3>Server Error</h3>

<ul><li class="reference"><strong>500 - Internal Server Error</strong><br />A 500 status code (all too often seen by Perl programmers) indicates that the server encountered something it didn't expect and was unable to complete the request.</li><li class="reference"><strong>501 - Not Implemented</strong><br />The 501 status code indicates that the server does not support all that is needed for the request to be completed.</li><li class="reference"><strong>502 - Bad Gateway</strong><br />A 502 status code indicates that a server, while acting as a proxy, received a response from a server further upstream that it judged invalid.</li><li class="reference"><strong>503 - Service Unavailable</strong><br />A 503 status code is most often seen on extremely busy servers, and it indicates that the server was unable to complete the request due to a server overload.</li><li class="reference"><strong>504 - Gateway Timeout</strong><br />A 504 status code is returned when a server acting as a proxy has waited too long for a response from a server further upstream.</li><li class="reference"><strong>505 - HTTP Version Not Supported</strong><br />A 505 status code is returned when the HTTP version indicated in the request is no supported. The response should indicate which HTTP versions are supported.</li></ul> <br><br>]]></description>
				<pubDate>Tue, 11 May 2004 14:33:55 +0000</pubDate>
				<guid isPermaLink="false">http://www.addedbytes.com/for-beginners/http-status-codes/</guid>
				<dc:creator>Dave Child</dc:creator>
				<a href="/feeds/tag-feed/?tags=apache&amp;start=0" class="ditto_tag" rel="tag">apache</a>,<a href="/feeds/tag-feed/?tags=codes&amp;start=0" class="ditto_tag" rel="tag">codes</a>,<a href="/feeds/tag-feed/?tags=development&amp;start=0" class="ditto_tag" rel="tag">development</a>,<a href="/feeds/tag-feed/?tags=html&amp;start=0" class="ditto_tag" rel="tag">html</a>,<a href="/feeds/tag-feed/?tags=http&amp;start=0" class="ditto_tag" rel="tag">http</a>,<a href="/feeds/tag-feed/?tags=reference&amp;start=0" class="ditto_tag" rel="tag">reference</a>,<a href="/feeds/tag-feed/?tags=rest&amp;start=0" class="ditto_tag" rel="tag">rest</a>,<a href="/feeds/tag-feed/?tags=software&amp;start=0" class="ditto_tag" rel="tag">software</a>,<a href="/feeds/tag-feed/?tags=status&amp;start=0" class="ditto_tag" rel="tag">status</a>,<a href="/feeds/tag-feed/?tags=tools&amp;start=0" class="ditto_tag" rel="tag">tools</a>,<a href="/feeds/tag-feed/?tags=web&amp;start=0" class="ditto_tag" rel="tag">web</a>,<a href="/feeds/tag-feed/?tags=webdev&amp;start=0" class="ditto_tag" rel="tag">webdev</a>
			</item>
	</channel>
</rss>
