<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AskApache &#187; Search Results  &#187;  accessibility</title>
	<atom:link href="http://www.askapache.com/search/accessibility/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.askapache.com</link>
	<description>Advanced Web Development</description>
	<lastBuildDate>Thu, 26 Apr 2012 11:29:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Raw HTTP Header Debugger</title>
		<link>http://www.askapache.com/online-tools/http-headers-tool</link>
		<comments>http://www.askapache.com/online-tools/http-headers-tool#comments</comments>
		<pubDate>Wed, 26 Oct 2011 15:14:08 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
		
		<guid isPermaLink="false">http://www.askapache.com/online-tools/http-headers-tool/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/online-tools/http-headers-tool"></a><a href="http://www.askapache.com/online-tools/http-headers-tool"><cite>AskApache.com</cite></a></p><hr class="C" />
<h2>HTTP Headers</h2>
<table>
    <thead>
        <tr>
            <td><strong>HTTP Header Name</strong></td>
            <td><strong>Header Description</strong></td>
            <td><strong>Example HTTP Header</strong></td>
        </tr>
    </thead>
    <tr>
        <td>Accept</td>
        <td>Content-Types that are acceptable</td>
        <td><code>Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</code></td>
    </tr>
    <tr>
        <td>Accept-Charset</td>
        <td>Character sets that are acceptable</td>
        <td><code>Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7</code></td>
    </tr>
    <tr>
        <td>Accept-Encoding</td>
        <td>Acceptable encodings</td>
        <td><code>Accept-Encoding: gzip,deflate</code></td>
    </tr>
    <tr>
        <td>Accept-Language</td>
        <td>Acceptable languages for response</td>
        <td><code>Accept-Language: en-us,en</code></td>
    </tr>
    <tr>
        <td>Accept-Ranges</td>
        <td>What partial content range types this server supports</td>
        <td><code>Accept-Ranges: bytes</code></td>
    </tr>
    <tr>
        <td>Age</td>
        <td>The age the object has been in a proxy cache in seconds</td>
        <td><code>Age: 7200</code></td>
    </tr>
    <tr>
        <td>Allow</td>
        <td>Valid actions for a specified resource. To be used for a 405 Method not allowed</td>
        <td><code>Allow: GET,HEAD,POST,OPTIONS,TRACE</code></td>
    </tr>
    <tr>
        <td>Authorization</td>
        <td>Authentication credentials for HTTP authentication</td>
        <td><code>Authorization: Basic UXNrYXBhggRfoopc5NteWFzcw==</code></td>
    </tr>
    <tr>
        <td>Cache-Control</td>
        <td>Controls how proxies may cache this object</td>
        <td><code>Cache-Control: max-age=7200, public</code></td>
    </tr>
    <tr>
        <td>Connection</td>
        <td>What type of connection the user-agent would prefer</td>
        <td><code>Connection: Keep-Alive</code></td>
    </tr>
    <tr>
        <td>Content-Encoding</td>
        <td>The type of encoding used on the data</td>
        <td><code>Content-Encoding: gzip</code></td>
    </tr>
    <tr>
        <td>Content-Language</td>
        <td>The language the content is in</td>
        <td><code>Content-Language: en-us</code></td>
    </tr>
    <tr>
        <td>Content-Length</td>
        <td>The length of the content in bytes</td>
        <td><code>Content-Length: 5356</code></td>
    </tr>
    <tr>
        <td>Content-Location</td>
        <td>An alternate location for the returned data</td>
        <td><code>Content-Location: /index.html</code></td>
    </tr>
    <tr>
        <td>Content-MD5</td>
        <td>An MD5 sum of the content of the response</td>
        <td><code>Content-MD5: 1167b9c13ad2b6d3694493fc47976c8</code></td>
    </tr>
    <tr>
        <td>Content-Range</td>
        <td>Where in a full body message this partial message belongs</td>
        <td><code>Content-Range: bytes 110-2034/2035</code></td>
    </tr>
    <tr>
        <td>Content-Type</td>
        <td>The mime type of this content</td>
        <td><code>Content-Type: text/html; charset=UTF-8</code></td>
    </tr>
    <tr>
        <td>Date</td>
        <td>The date and time that the message was sent</td>
        <td><code>Date: Sat, 05 Jan 2008 09:27:35 GMT</code></td>
    </tr>
    <tr>
        <td>Host</td>
        <td>The domain name of the server (for virtual hosting)</td>
        <td><code>Host: www.askapache.com</code></td>
    </tr>
    <tr>
        <td>If-Modified-Since</td>
        <td>Allows a 304 Not Modified to be returned</td>
        <td><code>If-Modified-Since: Sat, 05 Jan 2007 09:26:12 GMT</code></td>
    </tr>
    <tr>
        <td>Last-Modified</td>
        <td>The last modified date for the requested object</td>
        <td><code>Last-Modified: Sat, 05 Jan 2008 09:26:12 GMT</code></td>
    </tr>
    <tr>
        <td>Location</td>
        <td>Used in redirection</td>
        <td><code>Location: http://www.askapache.com/</code></td>
    </tr>
    <tr>
        <td>Server</td>
        <td>A name for the server</td>
        <td><code>Server: Apache/2.0.61 (Unix) PHP/4.4.7 mod_ssl/2.0.61 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.4.2</code></td>
    </tr>
    <tr>
        <td>User-Agent</td>
        <td>The user agent string of the user agent</td>
        <td><code>User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7</code></td>
    </tr>
</table>
<hr class="C" />


<address>part of <a rev='Section' href='http://www.w3.org/Protocols/rfc2616/rfc2616.html'>Hypertext Transfer Protocol -- HTTP/1.1</a><br />RFC 2616 Fielding, et al.</address>
<h2><a id='sec9'>9</a> Method Definitions</h2>
<p>The set of common methods for HTTP/1.1 is defined below. Although this set can be expanded, additional methods cannot be assumed to share the same semantics for separately extended clients and servers.</p>
<p>The Host request-header field (section <a rel='xref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23'>14.23</a>) MUST accompany all HTTP/1.1 requests.</p>
<h3><a id='sec9.1'>9.1</a> Safe and Idempotent Methods</h3>
<h3><a id='sec9.1.1'>9.1.1</a> Safe Methods</h3>
<p>Implementors should be aware that the software represents the user in their interactions over the Internet, and should be careful to allow the user to be aware of any actions they might take which may have an unexpected significance to themselves or others.</p>
<p>In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered "safe". This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.</p>
<p>Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request; in fact, some dynamic resources consider that a feature. The important distinction here is that the user did not request the side-effects, so therefore cannot be held accountable for them.</p>
<h3><a id='sec9.1.2'>9.1.2</a> Idempotent Methods</h3>
<p>Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, the methods OPTIONS and TRACE SHOULD NOT have side effects, and so are inherently idempotent.</p>
<p>However, it is possible that a sequence of several requests is non- idempotent, even if all of the methods executed in that sequence are idempotent. (A sequence is idempotent if a single execution of the entire sequence always yields a result that is not changed by a reexecution of all, or part, of that sequence.) For example, a sequence is non-idempotent if its result depends on a value that is later modified in the same sequence.</p>
<p>A sequence that never has side effects is idempotent, by definition (provided that no concurrent operations are being executed on the same set of resources).</p>
<h3><a id='sec9.2'>9.2</a> OPTIONS</h3>
<p>The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI. This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.</p>
<p>Responses to this method are not cacheable.</p>
<p>If the OPTIONS request includes an entity-body (as indicated by the presence of Content-Length or Transfer-Encoding), then the media type MUST be indicated by a Content-Type field. Although this specification does not define any use for such a body, future extensions to HTTP might use the OPTIONS body to make more detailed queries on the server. A server that does not support such an extension MAY discard the request body.</p>
<p>If the Request-URI is an asterisk ("*"), the OPTIONS request is intended to apply to the server in general rather than to a specific resource. Since a server's communication options typically depend on the resource, the "*" request is only useful as a "ping" or "no-op" type of method; it does nothing beyond allowing the client to test the capabilities of the server. For example, this can be used to test a proxy for HTTP/1.1 compliance (or lack thereof).</p>
<p>If the Request-URI is not an asterisk, the OPTIONS request applies only to the options that are available when communicating with that resource.</p>
<p>A 200 response SHOULD include any header fields that indicate optional features implemented by the server and applicable to that resource (e.g., Allow), possibly including extensions not defined by this specification. The response body, if any, SHOULD also include information about the communication options. The format for such a</p>
<p>body is not defined by this specification, but might be defined by future extensions to HTTP. Content negotiation MAY be used to select the appropriate response format. If no response body is included, the response MUST include a Content-Length field with a field-value of "0".</p>
<p>The Max-Forwards request-header field MAY be used to target a specific proxy in the request chain. When a proxy receives an OPTIONS request on an absoluteURI for which request forwarding is permitted, the proxy MUST check for a Max-Forwards field. If the Max-Forwards field-value is zero ("0"), the proxy MUST NOT forward the message; instead, the proxy SHOULD respond with its own communication options. If the Max-Forwards field-value is an integer greater than zero, the proxy MUST decrement the field-value when it forwards the request. If no Max-Forwards field is present in the request, then the forwarded request MUST NOT include a Max-Forwards field.</p>
<h3><a id='sec9.3'>9.3</a> GET</h3>
<p>The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI. If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the entity in the response and not the source text of the process, unless that text happens to be the output of the process.</p>
<p>The semantics of the GET method change to a "conditional GET" if the request message includes an If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field. A conditional GET method requests that the entity be transferred only under the circumstances described by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network usage by allowing cached entities to be refreshed without requiring multiple requests or transferring data already held by the client.</p>
<p>The semantics of the GET method change to a "partial GET" if the request message includes a Range header field. A partial GET requests that only part of the entity be transferred, as described in section <a rel='xref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35'>14.35</a>. The partial GET method is intended to reduce unnecessary network usage by allowing partially-retrieved entities to be completed without transferring data already held by the client.</p>
<p>The response to a GET request is cacheable if and only if it meets the requirements for HTTP caching described in section 13.</p>
<p>See section <a rel='xref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3'>15.1.3</a> for security considerations when used for forms.</p>
<h3><a id='sec9.4'>9.4</a> HEAD</h3>
<p>The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request. This method can be used for obtaining metainformation about the entity implied by the request without transferring the entity-body itself. This method is often used for testing hypertext links for validity, accessibility, and recent modification.</p>
<p>The response to a HEAD request MAY be cacheable in the sense that the information contained in the response MAY be used to update a previously cached entity from that resource. If the new field values indicate that the cached entity differs from the current entity (as would be indicated by a change in Content-Length, Content-MD5, ETag or Last-Modified), then the cache MUST treat the cache entry as stale.</p>
<h3><a id='sec9.5'>9.5</a> POST</h3>
<p>The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions:</p>
<pre>      - Annotation of existing resources; </pre>
<pre>      - Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; </pre>
<pre>      - Providing a block of data, such as the result of submitting a form, to a data-handling process; </pre>
<pre>      - Extending a database through an append operation. </pre>
<p>The actual function performed by the POST method is determined by the server and is usually dependent on the Request-URI. The posted entity is subordinate to that URI in the same way that a file is subordinate to a directory containing it, a news article is subordinate to a newsgroup to which it is posted, or a record is subordinate to a database.</p>
<p>The action performed by the POST method might not result in a resource that can be identified by a URI. In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on whether or not the response includes an entity that describes the result.</p>
<p>If a resource has been created on the origin server, the response SHOULD be 201 (Created) and contain an entity which describes the status of the request and refers to the new resource, and a Location header (see section <a rel='xref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30'>14.30</a>).</p>
<p>Responses to this method are not cacheable, unless the response includes appropriate Cache-Control or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent to retrieve a cacheable resource.</p>
<p>POST requests MUST obey the message transmission requirements set out in section 8.2.</p>
<p>See section <a rel='xref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3'>15.1.3</a> for security considerations.</p>
<h3><a id='sec9.6'>9.6</a> PUT</h3>
<p>The PUT method requests that the enclosed entity be stored under the supplied Request-URI. If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server. If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new resource by the requesting user agent, the origin server can create the resource with that URI. If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to indicate successful completion of the request. If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be given that reflects the nature of the problem. The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not understand or implement and MUST return a 501 (Not Implemented) response in such cases.</p>
<p>If the request passes through a cache and the Request-URI identifies one or more currently cached entities, those entries SHOULD be treated as stale. Responses to this method are not cacheable.</p>
<p>The fundamental difference between the POST and PUT requests is reflected in the different meaning of the Request-URI. The URI in a POST request identifies the resource that will handle the enclosed entity. That resource might be a data-accepting process, a gateway to some other protocol, or a separate entity that accepts annotations. In contrast, the URI in a PUT request identifies the entity enclosed with the request -- the user agent knows what URI is intended and the server MUST NOT attempt to apply the request to some other resource. If the server desires that the request be applied to a different URI,</p>
<p>it MUST send a 301 (Moved Permanently) response; the user agent MAY then make its own decision regarding whether or not to redirect the request.</p>
<p>A single resource MAY be identified by many different URIs. For example, an article might have a URI for identifying "the current version" which is separate from the URI identifying each particular version. In this case, a PUT request on a general URI might result in several other URIs being defined by the origin server.</p>
<p>HTTP/1.1 does not define how a PUT method affects the state of an origin server.</p>
<p>PUT requests MUST obey the message transmission requirements set out in section 8.2.</p>
<p>Unless otherwise specified for a particular entity-header, the entity-headers in the PUT request SHOULD be applied to the resource created or modified by the PUT.</p>
<h3><a id='sec9.7'>9.7</a> DELETE</h3>
<p>The DELETE method requests that the origin server delete the resource identified by the Request-URI. This method MAY be overridden by human intervention (or other means) on the origin server. The client cannot be guaranteed that the operation has been carried out, even if the status code returned from the origin server indicates that the action has been completed successfully. However, the server SHOULD NOT indicate success unless, at the time the response is given, it intends to delete the resource or move it to an inaccessible location.</p>
<p>A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, 202 (Accepted) if the action has not yet been enacted, or 204 (No Content) if the action has been enacted but the response does not include an entity.</p>
<p>If the request passes through a cache and the Request-URI identifies one or more currently cached entities, those entries SHOULD be treated as stale. Responses to this method are not cacheable.</p>
<h3><a id='sec9.8'>9.8</a> TRACE</h3>
<p>The TRACE method is used to invoke a remote, application-layer loop- back of the request message. The final recipient of the request SHOULD reflect the message received back to the client as the entity-body of a 200 (OK) response. The final recipient is either the</p>
<p>origin server or the first proxy or gateway to receive a Max-Forwards value of zero (0) in the request (see section 14.31). A TRACE request MUST NOT include an entity.</p>
<p>TRACE allows the client to see what is being received at the other end of the request chain and use that data for testing or diagnostic information. The value of the Via header field (section <a rel='xref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45'>14.45</a>) is of particular interest, since it acts as a trace of the request chain. Use of the Max-Forwards header field allows the client to limit the length of the request chain, which is useful for testing a chain of proxies forwarding messages in an infinite loop.</p>
<p>If the request is valid, the response SHOULD contain the entire request message in the entity-body, with a Content-Type of "message/http". Responses to this method MUST NOT be cached.</p>
<h3><a id='sec9.9'>9.9</a> CONNECT</h3>
<p>This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a tunnel (e.g. SSL tunneling <a rel='bibref' href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec17.html#bib44'>[44]</a>).</p>


<h2><a href="http://www.askapache.com/htaccess/apache-status-code-headers-errordocument.html">List of HTTP Response Status Codes</a></h2>
<h3>1xx Info / Informational</h3>
<h4><code>HTTP_INFO</code> - Request received, continuing process.</h4>
<p>Indicates a provisional response, consisting only of the Status-Line and optional headers, and is terminated by an empty line.</p>
<ul>
    <li><strong>100 Continue</strong> - <code>HTTP_CONTINUE</code></li>
    <li><strong>101 Switching Protocols</strong> - <code>HTTP_SWITCHING_PROTOCOLS</code></li>
    <li><strong>102 Processing</strong> - <code>HTTP_PROCESSING</code></li>
</ul>
<h3>2xx Success / OK</h3>
<h4><code>HTTP_SUCCESS</code> - The action was successfully received, understood, and accepted.</h4>
<p>Indicates that the client's request was successfully received, understood, and accepted.</p>
<ul>
    <li><strong>200 OK</strong> - <code>HTTP_OK</code></li>
    <li><strong>201 Created</strong> - <code>HTTP_CREATED</code></li>
    <li><strong>202 Accepted</strong> - <code>HTTP_ACCEPTED</code></li>
    <li><strong>203 Non-Authoritative Information</strong> - <code>HTTP_NON_AUTHORITATIVE</code></li>
    <li><strong>204 No Content</strong> - <code>HTTP_NO_CONTENT</code></li>
    <li><strong>205 Reset Content</strong> - <code>HTTP_RESET_CONTENT</code></li>
    <li><strong>206 Partial Content</strong> - <code>HTTP_PARTIAL_CONTENT</code></li>
    <li><strong>207 Multi-Status</strong> - <code>HTTP_MULTI_STATUS</code></li>
</ul>
<h3>3xx Redirect</h3>
<h4><code>HTTP_REDIRECT</code> - The client must take additional action to complete the request.</h4>
<p>Indicates that further action needs to be taken by the user-agent in order to fulfill the request. The action required may be carried out by the user agent without interaction with the user if and only if the method used in the second request is GET or HEAD. A user agent should not automatically <em>redirect a request more than 5 times</em>, since such redirections usually indicate an <strong>infinite loop</strong>.</p>
<ul>
    <li><strong>300 Multiple Choices</strong> - <code>HTTP_MULTIPLE_CHOICES</code></li>
    <li><strong>301 Moved Permanently</strong> - <code>HTTP_MOVED_PERMANENTLY</code></li>
    <li><strong>302 Found</strong> - <code>HTTP_MOVED_TEMPORARILY</code></li>
    <li><strong>303 See Other</strong> - <code>HTTP_SEE_OTHER</code></li>
    <li><strong>304 Not Modified</strong> - <code>HTTP_NOT_MODIFIED</code></li>
    <li><strong>305 Use Proxy</strong> - <code>HTTP_USE_PROXY</code></li>
    <li><strong>306 unused</strong> - <code>UNUSED</code></li>
    <li><strong>307 Temporary Redirect</strong> - <code>HTTP_TEMPORARY_REDIRECT</code></li>
</ul>
<h3>4xx Client Error</h3>
<h4><code>HTTP_CLIENT_ERROR</code> - The request contains bad syntax or cannot be fulfilled.</h4>
<p>Indicates case where client seems to have erred. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition.</p>
<ul>
    <li><strong>400 Bad Request</strong> - <code>HTTP_BAD_REQUEST</code></li>
    <li><strong>401 Authorization Required</strong> - <code>HTTP_UNAUTHORIZED</code></li>
    <li><strong>402 Payment Required</strong> - <code>HTTP_PAYMENT_REQUIRED</code></li>
    <li><strong>403 Forbidden</strong> - <code>HTTP_FORBIDDEN</code></li>
    <li><strong>404 Not Found</strong> - <code>HTTP_NOT_FOUND</code></li>
    <li><strong>405 Method Not Allowed</strong> - <code>HTTP_METHOD_NOT_ALLOWED</code></li>
    <li><strong>406 Not Acceptable</strong> - <code>HTTP_NOT_ACCEPTABLE</code></li>
    <li><strong>407 Proxy Authentication Required</strong> - <code>HTTP_PROXY_AUTHENTICATION_REQUIRED</code></li>
    <li><strong>408 Request Time-out</strong> - <code>HTTP_REQUEST_TIME_OUT</code></li>
    <li><strong>409 Conflict</strong> - <code>HTTP_CONFLICT</code></li>
    <li><strong>410 Gone</strong> - <code>HTTP_GONE</code></li>
    <li><strong>411 Length Required</strong> - <code>HTTP_LENGTH_REQUIRED</code></li>
    <li><strong>412 Precondition Failed</strong> - <code>HTTP_PRECONDITION_FAILED</code></li>
    <li><strong>413 Request Entity Too Large</strong> - <code>HTTP_REQUEST_ENTITY_TOO_LARGE</code></li>
    <li><strong>414 Request-URI Too Large</strong> - <code>HTTP_REQUEST_URI_TOO_LARGE</code></li>
    <li><strong>415 Unsupported Media Type</strong> - <code>HTTP_UNSUPPORTED_MEDIA_TYPE</code></li>
    <li><strong>416 Requested Range Not Satisfiable</strong> - <code>HTTP_RANGE_NOT_SATISFIABLE</code></li>
    <li><strong>417 Expectation Failed</strong> - <code>HTTP_EXPECTATION_FAILED</code></li>
    <li><strong>418 unused</strong> - <code>UNUSED</code></li>
    <li><strong>419 unused</strong> - <code>UNUSED</code></li>
    <li><strong>420 unused</strong> - <code>UNUSED</code></li>
    <li><strong>421 unused</strong> - <code>UNUSED</code></li>
    <li><strong>422 Unprocessable Entity</strong> - <code>HTTP_UNPROCESSABLE_ENTITY</code></li>
    <li><strong>423 Locked</strong> - <code>HTTP_LOCKED</code></li>
    <li><strong>424 Failed Dependency</strong> - <code>HTTP_FAILED_DEPENDENCY</code></li>
    <li><strong>425 No code</strong> - <code>HTTP_NO_CODE</code></li>
    <li><strong>426 Upgrade Required</strong> - <code>HTTP_UPGRADE_REQUIRED</code></li>
</ul>
<h3>5xx Server Error</h3>
<h4><code>HTTP_SERVER_ERROR</code> - The server failed to fulfill an apparently valid request.</h4>
<p>Indicate cases in which the server is aware that it has erred or is incapable of performing the request. Except when responding to a HEAD request, the server should include an entity containing an explanation of the error situation, and whether it is a temporary or permanent condition. User agents should display any included entity to the user. These response codes are applicable to any request method.</p>
<ul>
    <li><strong>500 Internal Server Error</strong> - <code>HTTP_INTERNAL_SERVER_ERROR</code></li>
    <li><strong>501 Method Not Implemented</strong> - <code>HTTP_NOT_IMPLEMENTED</code></li>
    <li><strong>502 Bad Gateway</strong> - <code>HTTP_BAD_GATEWAY</code></li>
    <li><strong>503 Service Temporarily Unavailable</strong> - <code>HTTP_SERVICE_UNAVAILABLE</code></li>
    <li><strong>504 Gateway Time-out</strong> - <code>HTTP_GATEWAY_TIME_OUT</code></li>
    <li><strong>505 HTTP Version Not Supported</strong> - <code>HTTP_VERSION_NOT_SUPPORTED</code></li>
    <li><strong>506 Variant Also Negotiates</strong> - <code>HTTP_VARIANT_ALSO_VARIES</code></li>
    <li><strong>507 Insufficient Storage</strong> - <code>HTTP_INSUFFICIENT_STORAGE</code></li>
    <li><strong>508 unused</strong> - <code>UNUSED</code></li>
    <li><strong>509 unused</strong> - <code>UNUSED</code></li>
    <li><strong>510 Not Extended</strong> - <code>HTTP_NOT_EXTENDED</code></li>
</ul>
<h2>Helpful HTTP Links</h2>
<ol>
    <li><a href="http://rfc.askapache.com/rfc2616.html#section-10">HTTP specification, Section 10</a></li>
    <li><a href="http://rfc.askapache.com/rfc2817.html#section-4">TLS Upgrade within HTTP specification, Section 4</a></li>
    <li><a href="http://rfc.askapache.com/rfc2817.html#section-7.1">HTTP Status Code Registry</a></li>
    <li><a href="http://rfc.askapache.com/rfc4918.html#section-11">WebDAV specification, Section 11</a></li>
    <li><a href="http://www.iana.org/assignments/http-status-codes">IANA registry</a></li>
    <li><a href="http://livedocs.adobe.com/fms/2/docs/00000338.html">Adobe Flash status code definitions (ie 408)</a></li>
    <li><a href="http://support.microsoft.com/?id=318380">Microsoft Internet Information Server Status Codes and Sub-Codes</a></li>
    <li>httplint</li>
    <li><a href="http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html">HTTP Headers, brief intro.</a></li>
    <li><a href="http://www.w3.org/TR/cuap">Common User-Agent Issues</a></li>
</ol>
<hr class="C" />
<dl>
    <dt>DRP</dt>
    <dd><a href="http://www.w3.org/TR/NOTE-drp-19970825">"The HTTP Distribution and Replication Protocol"</a></dd>
    <dt>DupSup</dt>
    <dd><a href="http://www3.ietf.org/proceedings/98dec/I-D/draft-mogul-http-dupsup-00.txt">"Duplicate Suppression in HTTP"</a></dd>
    <dt>EARL Schema</dt>
    <dd><a href="http://www.w3.org/WAI/ER/EARL10/WD-EARL10-Schema-20060101">"Evaluation and Report Language (EARL) 1.0 Schema"</a></dd>
    <dt>EDD</dt>
    <dd><a href="http://wp.netscape.com/assist/net_sites/pushpull.html">"An exploration of dynamic documents"</a></dd>
    <dt>EdgeArch</dt>
    <dd><a href="http://www.w3.org/TR/2001/NOTE-edge-arch-20010804">"Edge Architecture Specification"</a></dd>
    <dt>HttpClient</dt>
    <dd><a href="http://jakarta.apache.org/commons/httpclient/">Jakarta Commons HttpClient</a></dd>
    <dt>HTML4</dt>
    <dd><a href="http://www.w3.org/TR/1999/REC-html401-19991224/">"HTML 4.01 Specification"</a></dd>
    <dt>JEPI</dt>
    <dd><a href="http://www.w3.org/TR/NOTE-jepi-970519">"White Paper: Joint Electronic Payment Initiative"</a></dd>
    <dt>ObjectHeaders</dt>
    <dd><a href="http://www.w3.org/Protocols/HTTP/Object_Headers.html">"Object Header lines in HTTP"</a></dd>
    <dt>OPS-OverHTTP</dt>
    <dd><a href="http://www.w3.org/TR/NOTE-OPS-OverHTTP">"Implementation of OPS Over HTTP"</a></dd>
    <dt>OPTIONS messages</dt>
    <dd>"Specification of HTTP/1.1 OPTIONS messages"</dd>
    <dt>P3P</dt>
    <dd><a href="http://www.w3.org/TR/2002/REC-P3P-20020416/">"The Platform for Privacy Preferences 1.0 (P3P1.0) Specification"</a></dd>
    <dt>PEP</dt>
    <dd><a href="http://www.w3.org/TR/WD-http-pep-970526">"PEP - an Extension Mechanism for HTTP"</a></dd>
    <dt>PICSLabels</dt>
    <dd><a href="http://www.w3.org/TR/REC-PICS-labels-961031">"PICS Label Distribution Label Syntax and Communication Protocols, Version 1.1"</a></dd>
    <dt>Proxy Notification</dt>
    <dd><a href="http://www.w3.org/TR/WD-proxy-960221">"Notification for Proxy Caches"</a></dd>
    <dt>RDF</dt>
    <dd><a href="http://www.w3.org/TR/rdf-concepts/">"Resource Description Framework (RDF): Concepts and Abstract Syntax"</a></dd>
    <dt>RDF-PRIMER</dt>
    <dd><a href="http://www.w3.org/TR/rdf-primer/"> <acronym title="Resource Description Framework">RDF</acronym> Primer</a></dd>
    <dt>RFC2068</dt>
    <dd><a href="http://rfc.askapache.com/rfc2068/">"Hypertext Transfer Protocol -- HTTP/1.1"</a></dd>
    <dt>RFC2109</dt>
    <dd><a href="http://rfc.askapache.com/rfc2109/">"HTTP State Management Mechanism"</a></dd>
    <dt>RFC2183</dt>
    <dd><a href="http://rfc.askapache.com/rfc2183/">"Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field"</a></dd>
    <dt>RFC2227</dt>
    <dd><a href="http://rfc.askapache.com/rfc2227/">"Simple Hit-Metering and Usage-Limiting for HTTP"</a></dd>
    <dt>RFC2295</dt>
    <dd><a href="http://rfc.askapache.com/rfc2295/">"Transparent Content Negotiation in HTTP"</a></dd>
    <dt>RFC2310</dt>
    <dd><a href="http://rfc.askapache.com/rfc2310/">"The Safe Response Header Field"</a></dd>
    <dt>RFC2324</dt>
    <dd><a href="http://rfc.askapache.com/rfc2324/">"Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)"</a></dd>
    <dt>RFC2397</dt>
    <dd><a href="http://rfc.askapache.com/rfc2397/">"The 'data' URL scheme"</a></dd>
    <dt>RFC2518</dt>
    <dd><a href="http://rfc.askapache.com/rfc2518/">"HTTP Extensions for Distributed Authoring -- WEBDAV"</a></dd>
    <dt>RFC2616</dt>
    <dd><a href="http://rfc.askapache.com/rfc2616/">"Hypertext Transfer Protocol -- HTTP/1.1"</a></dd>
    <dt>RFC2617</dt>
    <dd><a href="http://rfc.askapache.com/rfc2617/">"HTTP Authentication: Basic and Digest Access Authentication"</a></dd>
    <dt>RFC2660</dt>
    <dd><a href="http://rfc.askapache.com/rfc2660/">"The Secure HyperText Transfer Protocol"</a></dd>
    <dt>RFC2774</dt>
    <dd><a href="http://rfc.askapache.com/rfc2774/">"An HTTP Extension Framework"</a></dd>
    <dt>RFC2965</dt>
    <dd><a href="http://rfc.askapache.com/rfc2965/">"HTTP State Management Mechanism"</a></dd>
    <dt>RFC3229</dt>
    <dd><a href="http://rfc.askapache.com/rfc3229/">"Delta encoding in HTTP"</a></dd>
    <dt>RFC3230</dt>
    <dd><a href="http://rfc.askapache.com/rfc3230/">"Instance Digests in HTTP"</a></dd>
    <dt>RFC3253</dt>
    <dd><a href="http://rfc.askapache.com/rfc3253/">"Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)"</a></dd>
    <dt>RFC3648</dt>
    <dd><a href="http://rfc.askapache.com/rfc3648/">"Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol"</a></dd>
    <dt>RFC3986</dt>
    <dd><a href="http://rfc.askapache.com/rfc3648/">"Uniform Resource Identifier (URI): Generic Syntax"</a></dd>
    <dt>RFC4229</dt>
    <dd><a href="http://rfc.askapache.com/rfc4229/">"HTTP Header Field Registrations"</a></dd>
    <dt>SOAP1.1</dt>
    <dd><a href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508">"Simple Object Access Protocol (SOAP) 1.1"</a></dd>
    <dt>UA Attributes</dt>
    <dd>"User-Agent Display Attributes Headers"</dd>
    <dt>WIRE</dt>
    <dd><a href="http://www3.ietf.org/proceedings/98dec/I-D/draft-girod-w3-id-res-ext-00.txt">"WIRE - W3 Identifier Resolution Extensions"</a></dd>
</dl><p><a href="http://www.askapache.com/online-tools/http-headers-tool"></a><a href="http://www.askapache.com/online-tools/http-headers-tool">Raw HTTP Header Debugger</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/online-tools/http-headers-tool/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Firefox Add-ons for Web Developers</title>
		<link>http://www.askapache.com/hacking/firefox-addons-webdev.html</link>
		<comments>http://www.askapache.com/hacking/firefox-addons-webdev.html#comments</comments>
		<pubDate>Mon, 19 Oct 2009 00:14:07 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.askapache.com/?p=3301</guid>
		<description><![CDATA[<p><a href="http://www.askapache.com/firefox/best-firefox-addons-webdev.html" class="IFL"><img src="http://uploads.askapache.com/2009/10/askapache-firefox-cache-116x102.png" alt="askapache favorite addons" title="askapache favorite addons" width="116" height="102" /></a><a href="https://addons.mozilla.org/en-US/firefox/collection/advanced-webdevelopment">Advanced Web Development by AskApache</a> is a <dfn title="Collections are groups of related add-ons assembled for easy sharing">Firefox Collection</dfn> I created since I'm always trying new Addons out and using multiple computers and I wanted a quick and easy way to install my favorite's and keep a running list.  Firebug, YSlow, LastPass, and Web Developer are the only ones I always use regularly.<br /><br />I like the idea of the last.fm but it's not as powerful as the site, which is awesome.  <em>Lately listening to <a href="http://www.last.fm/listen/artist/Kings%2Bof%2BLeon/similarartists">Kings of Leon Radio</a>...</em><br class="C" /></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/hacking/firefox-addons-webdev.html"></a><a href="http://www.askapache.com/hacking/firefox-addons-webdev.html"><cite>AskApache.com</cite></a></p><p><a class="IFL" href="https://addons.mozilla.org/en-US/firefox/collection/advanced-webdevelopment"><img src="https://addons.mozilla.org/en-US/firefox/images/collection_icon/27412/1253649941" title=" hacking" alt="Firefox Add ons for Web Developers" /></a><a href="https://addons.mozilla.org/en-US/firefox/collection/advanced-webdevelopment">Advanced Web Development by AskApache</a> is a <dfn title="Collections are groups of related add-ons assembled for easy sharing">Firefox Collection</dfn> I created for myself to make finding and installing my favorite Firefox Add-ons simple and easy.</p>

<h2>My Setup</h2>
<p><img class="IFL" src="http://uploads.askapache.com/2009/10/askapache-firefox-cache.png" alt="askapache favorite addons" title="askapache favorite addons" width="283" height="250" />As this screenshot shows, I only use a handful of add-ons at a time.  These buttons allow me to clear the DNS/Cookies/Cache for whichever site I'm on when I click it.  Very very helpful for me as a web designer.  The 4th button there is just a restart button.  Other than those, Firebug, YSlow, LastPass, and Web Developer are the only ones I always use regularly.<br /><br />I like the idea of the last.fm but it's not as powerful as the site, which is awesome.  Lately I've been listening to <a href="http://www.last.fm/listen/artist/Kings%2Bof%2BLeon/similarartists">Kings of Leon Radio</a>... <br class="C" /></p>

<h2>Slow Firefox</h2>
<p><strong>The more add-ons you have</strong>, disabled or not, the slower Firefox is. (<em>unless you are running your profile folder in TMPFS</em>).   Also, bookmarks and settings like that have a performance hit.  I have been using Firefox since it launched way back when, and I have always kept my bookmarks when moving to new machines and new installations..  So with over 5 thousand bookmarks I finally did some debugging and discovered that was a huge cause of Firefox acting slow.  Now I am trying to migrate them all over to Google's Gmarks, which knowing Google will be awesome eventually.</p>

<h2>Multiple Firefox Installations, Sorta</h2>
<p>The solution to all these problems is to use <strong>separate Firefox profiles</strong> which use separate folders to store your profile-specific extensions and settings.  So I have profiles with upwards of 40 Addons installed and enabled, and another profile that is built for speed... It's very very slow to be running Firebug and have multiple tabs open..  You can use the profilemanager to load them specific profiles from the command line.  I personally use separate icons on my Windows Quick Launch that I just modified the shortcut pointing to firefox to also have the profile commandline.   Note also that you can have multiple profiles open and running simultaneously.. This lets you do some crazy networking and other random hacks like having many Firefox instances running each of which is configured to use a separate SOCKS Proxy or network interface, so you can really open up those pipes for some intense txrx.</p>
<p>You can do some very powerful things with Firefox that most people are unaware of, if you are interested start with these:</p>
<ul>
<li><a href="https://developer.mozilla.org/en/Setting_up_extension_development_environment">Setting up an extension development environment</a></li>
<li><a href="https://developer.mozilla.org/en/Command_Line_Options">Firefox Command Line Options</a></li>
</ul>
<hr class="C" />


<h3>About This Collection</h3>
<p>Web Development Add-ons for Advanced Web Developers.  I personally use these to work on Sites, Servers, WordPress, Javascript, PHP, CSS, XHTML, validation, page-loading, SEO, optimizing, and much more.  <a href="https://addons.mozilla.org/en-US/firefox/users/login?to=en-US%2Ffirefox%2Fcollection%2Fadvanced-webdevelopment%3Fadvancedsearch%3D1%26show%3D100">Add this collection</a>.</p>
<p><strong>Created by:</strong><a href="https://addons.mozilla.org/en-US/firefox/user/145961">AskApache</a></p>
<p><strong>Updated:</strong>September 22, 2009 </p>


<h3>Share this Collection</h3>
<ul>
    <li class="digg"><a href="https://addons.mozilla.org/en-US/firefox/collections/share/advanced-webdevelopment?service=digg">Digg this!</a></li>
    <li class="facebook"><a href="https://addons.mozilla.org/en-US/firefox/collections/share/advanced-webdevelopment?service=facebook">Post to Facebook</a></li>
    <li class="delicious"><a href="https://addons.mozilla.org/en-US/firefox/collections/share/advanced-webdevelopment?service=delicious">Add to Delicious</a></li>
    <li class="myspace"><a href="https://addons.mozilla.org/en-US/firefox/collections/share/advanced-webdevelopment?service=myspace">Post to MySpace</a></li>
    <li class="friendfeed"><a href="https://addons.mozilla.org/en-US/firefox/collections/share/advanced-webdevelopment?service=friendfeed">Share on FriendFeed</a></li>
    <li class="twitter"><a href="https://addons.mozilla.org/en-US/firefox/collections/share/advanced-webdevelopment?service=twitter">Post to Twitter</a></li>
</ul>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/13316?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">History Tree</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/13316/1254409345" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Find any page you have visited quickly and easily. Shows your browsing history as a tree of tabs, with thumbnail screenshots of the web-pages in every tab you have opened. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/4882?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab Scope</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Preview and navigate tab contents through popup. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1480?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab Control</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Take control of your tabs!  Purposely lightweight extension with the following features... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5000?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">ShareThis</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5000/1248389010" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />ShareThis makes sharing any online content quick and easy. The ShareThis plugin allows you to share to any contact via email, text message, Facebook, Twitter and more.  You can also store your shares for later to reshare with the ShareThis ShareBox. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
	<h4><a href="https://addons.mozilla.org/en-US/firefox/addon/12377?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FirePalette</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/12377/1244736178" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Adds a color picker to Firebug's CSS panel. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/13000?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab History Menu</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/13000/1252809752" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />When click on the selected tab, a history menu corresponding to it will display. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/8426?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">SyncPlaces</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/8426/1252087590" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Synchronizes your bookmarks, passwords and password exceptions between browsers. Uses your own (or third party) web or ftp server so you have complete control and privacy. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10704?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">CSS Usage</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10704/1255464704" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Firebug extension to view which CSS rules are actually used. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/9641?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Inline Code Finder for Firebug</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/9641/1246025189" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Inline Code Finder is an add-on to Firebug, to be able to find HTML elements<br class="C" /></p>
    <blockquote class="publisher-comment"><p>Provides some additional capabilities to firebug to find inline code as opposed to external files.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/4723?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Save Complete</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Saves a webpage completely, providing a better alternative to the flawed built-in save functionality of Firefox. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Another of my personal favorites, modifies the "Save complete page" option of firefox to truly be more complete, I don't understand why firefox doesn't already do this.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10615?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FireDownload</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10615/1249999245" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />The FireDownload extension for Firefox and Wyzo lets you manage and accelerate your web downloads up to 10x faster! With FireDownload, download acceleration is seamlessly displayed within the downloads window. Try the ultimate download accelerator! <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Pretty nice and unobtrusive download enhancer.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/13255?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Xmarks BYOS Edition</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/13255/1248393038" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Bookmark Sync "Bring Your Own Server" Edition (BYOS). For expert users who wish to sync their bookmarks and passwords using their own FTP or WebDAV server. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/13128?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FormBug</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />An extension to Firebug to make dealing with forms easier <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/13135?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Widerbug</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/13135/1247888469" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Firebug Evolved. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/11588?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">SyntaxHighlighter</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />a syntax highlighter, based on SyntaxHighlighter(http://code.google.com/p/syntaxhighlighter/), support lots of program languages. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Adds syntax highlighting, somewhat intensive.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2318?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Total Validator</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2318/1252747670" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Perform multiple validations and take screen shots in one go. This 5-in-1 validator works with external, internal, or local web pages using the Total Validator service or local copy of the desktop tool... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/115?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">ReloadEvery</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/115/1250716156" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Reloads web pages every so many seconds or minutes. The function is accessible via the context menu (menu you get when you right click on a web page) or via a drop down menu on the reload button ... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Love this plugin, replaces the reload button with a look-alike button with a drop-down menu that lets you enable automatic reloading of a tab (or all tabs) and set the number of seconds between reloads.  I've found it very useful for checking cookie behaviour and cache setups, its also nice if you want to keep checking a page for updates.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1985?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Window Resizer</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Resize your browser to various standard resolution sizes... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Quickly resize your window to the common sizes to see what a site looks like for users with that resolution.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/4415?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Font Finder</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Get all CSS styles of selected text in Firefox / Thunderbird... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Locate the fonts that are in use on a webpage.  Small and unobtrusive.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/12632?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FireQuery</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/12632/1248402877" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Firebug enhancements for jQuery (requires Firebug 1.3+) <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Adds jquery support, I usually keep disabled even though I personally use jquery for web development.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5362?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Alexa Sparky</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5362/1255562428" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Alexa Internet's official add-on for Firefox!  Get Alexa data in your status bar. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Shows the alexa rank of a site, I like it but it does make new HTTP requests for each page, so I disable it alot for privacy or speed.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5392?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Dust-Me Selectors</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5392/1246551563" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Finds unused CSS selectors. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>One of the newer add-ons I've been using.  Lets you find which CSS rules are actually in use on a page, thus helping you to minimize and streamline CSS.  Very cool but it is a little resource intensive so by default I keep it disabled.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/11249?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">ToggleUseDocColors</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Toggles Tools-&gt;Options-&gt;Content-&gt;Colors:Allow pages to choose their own colors... option with a single keystroke (Ctrl+M) <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Use the documents colors or other.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3606?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FoxTor</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />FoxTor: Anonymous Web Browsing using the encrypted TOR network... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10434?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Bing</a></h4>
    <p> <img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10434/1247527217" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />This is the only officially supported Bing add-on, provided by the Bing team in Microsoft. Bing is a search engine that finds and organizes the answers you need so you can make faster, more informed decisions. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/9640?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Inline Code Finder</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/9640/1245858044" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Inline Code Finder is a tool to traverse through all elements in a web page, and when it finds a HTML element with any of these, it will highlight them: * Inline JavaScript events * Inline style * javascript: links <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2648?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">MM3-ProxySwitch</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2648/1233685187" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />In the Firefox Browser (and other Mozilla programs) you can per default configure only the setting for one internet connection. With the MM3-ProxySwitch you can manage different configurations and simply switch over between these. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>If like me you often connect to websites by proxying firefox through SSH Tunnels, then you can use this MM3-ProxySwitch add-on to run 3 different instances of firefox (by using multiple firefox profiles) that EACH use a different Proxy.  This is useful if you want to MAX out your download speed by downloading using multiple tunnels to do the work. <br />
            <br />
            Also useful for just plain multiple proxy configurations, very easy, and super extremely unobtrusive and low-resource intensive.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6683?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Firecookie</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/6683/1251484013" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Firecookie is an extension for Firebug that makes possible to view and manage cookies in your browser <br class="C" /></p>
    <blockquote class="publisher-comment"><p>One of my personal favorites, adds a tab to firebug that lets you view live cookies being set, deleted, and updated, and lets you edit, and delete cookies of a page LIVE.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/9780?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">RESTClient</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/9780/1250817670" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />RESTClient is a firefox extension use to visit and test RESTful/WebDav services. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5403?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Java Console 6.0.02</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5403/1189002765" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Java Console Extension for Java SE 1.6.0_02 (version 6 update 2). <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2325?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">RSS Ticker</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />RSS Ticker loads your Live Bookmarks and scrolls their entries across your screen while you surf. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Amazingly awesome add-on that scrolls rss feeds across a small area, helpful to keep track of various feeds and your own sites feeds.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6535?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab Sidebar</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/6535/1244499111" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Displays previews of your tabs in your sidebar. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>I like this one more than the tab preview add-ons, lets me find a tab quickly but only when I want by opening the sidebar.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/12065?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">CryptoFox</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/12065/1255638751" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />CryptoFox is an encryption/decryption tool for Mozilla Firefox, with dictionary attack support for cracking MD5 passwords. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/9027?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Bookmark Current Tab Set</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Adds options to quickly bookmark all tabs in a window and store them in a bookmark folder that is given the date (and optionally the time) as its name. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3362?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Update Scanner</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3362/1252360045" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Monitors web pages for updates. Useful for websites that don't provide Atom or RSS feeds. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/139?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Image Zoom</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/139/1231445959" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Adds zoom functionality for images... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Simple image zooming functionality.  Small and useful add-on.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3780?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FaviconizeTab</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3780/1218612666" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />This extension adds a new "FaviconizeTab" option to the context menu of the tab... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Nice to Faviconize your most-often-used sites</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2489?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">CacheViewer</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />This extenion is GUI Front-end of "about:cache"... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Just a shortcut to the about:cache area.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6366?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FireGestures</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/6366/1254150116" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />A customizable mouse gestures extension which enables you to execute various commands and user scripts with five types of gestures. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/7189?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Firebug Net History Panel Overlay</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Adds history functionality to firebug net panel. Requires Firebug 1.2.0b4 or 1.2.0b6 For Firebug versions 1.1.* please use Net Panel Add-on Version 0.2.1 <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3880?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Add Bookmark Here ²</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3880/1253393237" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Add a menuitem "Add Bookmark Here..." to Bookmarks... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5914?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">DNS Cache</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5914/1246397200" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Allows you to disable and enable the DNS Cache of Firefox <br class="C" /></p>
    <blockquote class="publisher-comment"><p>The final caching add-on that I absolutely LOVE.  Lets you add anywhere on your toolbar to clear the DNS cache of firefox.  I have  this, clear cache, and clear cookies next to each other on the far left of my bookmarks toolbar, I use them ALOT.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/7907?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Manage Folders</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/7907/1248060550" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Places a "Manage Folder" item on the context menu of bookmark folders, which opens the "Places Organizer" expanded to that folder. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2214?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">View Dependencies</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />View Dependencies adds a tab to the Page Info window, in which it lists all the files which were loaded to show the current page. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2275?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Torbutton</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2275/1249863832" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Torbutton provides a button to securely and easily enable or disable the browser's use of Tor. It is currently the only addon that will safely manage your Tor browsing to prevent IP address leakage, cookie leakage, and general privacy attacks. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Quick way to switch firefox to use the TOR network (I recommend the free vidalia suite) which is useful for web developers that rely on an IP address in certain programming and setups.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5447?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab Kit</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5447/1249227762" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Tab grouping, vertical tab tree, multi-rows, and various tweaks for power users. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3559?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">QuickRestart</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3559/1241624360" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Ever needed to restart Firefox after enabling or disabling an extension, switching to a new theme, or modifying configuration files (such as userChrome.css or user.js)? This simple extension adds a "Restart Firefox" item to the "File" menu. You can also use the Ctrl+Alt+R keyboard shortcut, or the included toolbar button. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>A button you can place anywhere that restarts the browser just like you do after updating add-ons.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1759?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Organize Status Bar</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />This extension will enable you to organize your status bar icons.  You can now rearrange or remove any item (icon or text) in the Firefox status bar.  If your status bar is full and cluttered like mine was, give this a try. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Lets you rearrange the items on the status bar.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/722?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">NoScript</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/722/1255474235" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />The best security you can get in a web browser! Allow active content to run only from sites you trust, and protect yourself against XSS and Clickjacking attacks. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2109?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FEBE</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2109/1255569901" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />FEBE (Firefox Environment Backup Extension) allows you to quickly and easily backup your Firefox extensions.  In fact, it goes beyond just backing up -- It will actually rebuild your extensions individually into installable .xpi files.  Now you can easily synchronize your office and home browsers. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Very helpful and well-designed add-on that lets you backup your entire firefox, or individual add-ons, or both!</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10897?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Check Places</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10897/1255544495" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Checks your bookmarks are valid and the pages still exist. Also checks for duplicates and for empty folders and can restore missing favicons. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1027?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">All-in-One Sidebar</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1027/1248433103" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />All-in-One Sidebar (AiOS) is an award-winning sidebar control, inspired by Opera's. It lets you quickly switch between sidebar panels, view dialog windows such as downloads, extensions, and more in the sidebar, or view source or websites in the sidebar. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2888?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">GMarks</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />GMarks helps you sync &amp; manage your bookmarks with Google Bookmarks... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/11950?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Add-on Collector</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/11950/1252025520" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />There's a new way to manage and find favorite add-ons. Comment, share, and sync collections, all from your browser. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Lets you get updates and makes it very easy to browse a collection such as this one.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2144?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Advanced Dork:</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2144/1249684650" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Advanced Dork: gives quick access to Google's Advanced Operators directly from the context menu... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Very unobtrusively makes the advanced google search operators available.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2032?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Yahoo! Toolbar</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2032/1253720246" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Use Yahoo! and the web faster, safer, and easier with new mail notification, search suggestions, online bookmarks, free spyware scanning, and more... Save time with the new Yahoo! Toolbar 2.0, now in beta at toolbar.yahoo.com/beta. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3102?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Email This!</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3102/1253158256" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Email This! will send your recipient the link, title, &amp; highlighted text of the page you are viewing using GMail, Google Apps GMail, Yahoo, and Stand-Alone Mail Clients like Outlook Express, Thunderbird, &amp; More! If you hate toolbar buttons don’t fret because I've included a right-click pop-up menu and access keys! <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2062?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab To Window</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2062/1244572621" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Open a tab in a new window... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>I have wanted this type of functionality for soo long.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2323?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Cache View</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Cache View is a Firefox extension that displays Google's Cache, Coral's Cache, and Wayback Machine's Cache cache of an open tab or selected link via a right-click or the Tools menu. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Useful to notice how often a page on your site is crawled and cached by these engines.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6984?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Lazarus: Form Recovery</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/6984/1252590349" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Never lose anything you type into a web form again! Lazarus securely auto-saves all forms as you type, so after a crash, server timeout, or whatever, you can go back to the form, right click, "recover form", and breathe a sigh of relief. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Saves your form data securely as you enter it, and provides a way to recover that form data if your firefox crashes (more likely windows crashes) and that way you won't lose anything you already entered.  This will slow down firefox alot though.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6132?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tab Preview</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Preview tab contents on mouseover <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6937?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Multirow Bookmarks Toolbar</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Multi Row Bookmarks Toolbar.<br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2517?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Googlepedia</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Shows you a relevant Wikipedia article along with your search results. Clicking links in the article will trigger new Google searches, making it a very useful research tool... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Adds wikipedia results right next to google results, very helpful to keep an eye on what is authoritative, and often get the best information fast.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1237?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">QuickJava</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Allows quick enable and disable of Java and Javascript from... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3082?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Undo Closed Tabs Button</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3082/1244495823" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Tired of going to History -&gt; Recently Closed Tabs just to undo a closed tab? Then this extension is for you!  This extension allows you to undo closed tabs via a toolbar and/or tab bar button or the right-click context menu. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>One of my personal favorites, adds back the most recently closed tab, very helpful.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10618?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Faviconiac Search Engines</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10618/1247849922" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Adds PNG favicons to some search engines and web directories, such as Google, Yahoo, Bing, Ask, Altavista, Wikipedia, AOL, Dmoz, Alexa, del.icio.us and others. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>This is helpful to get a better feel for search engine results by adding their sites favicon to the search results page, is somewhat HTTP Request intensive however.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3928?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Bookmark This Page Plus</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3928/1247125860" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Adds a menu item in each sub folder of the bookmarks menu to bookmark the current page. Just as seen in the Opera browser. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1595?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Remove Cookie(s) for Site</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1595/1214859152" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />A very simple extension to remove all the cookies of currently opened site. It adds an option to the Right Click menu of the page, and a toolbar button to perform this operation. It displays the status of operation in the status bar. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>This is invaluable, it removes all the cookies from whichever domain you are currently viewing.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/967?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Modify Headers</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Add, modify and filter http request headers.  You can modify the user agent string, add headers to spoof a mobile request (e.g. x-up-calling-line-id) and much more.  Take a look at the help tab of the Modify Headers window... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Pretty awesome, lets you modify the HTTP Headers your browser is sending, useful to check accessibility, server settings, language settings, etc.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2625?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">OPML Support</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />OPML Support adds OPML import/export functionality to the Firefox Bookmarks manager. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6647?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">HttpFox</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />An HTTP analyzer addon for Firefox <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/8879?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FoxTab</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/8879/1249840764" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />3D in your browser!  FoxTab brings innovative 3D functionality to your Firefox. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Super awesome cool.  If your machine is fast this is a really helpful add-on.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/655?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">View Source Chart</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/655/1246405984" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />View Source In Color-Coded Chart Get V2.8 w/ a brand new feature from jennifermadden.com <br class="C" /></p>
    <blockquote class="publisher-comment"><p>One of my long-time, all-time favorites that lets you view the source code of a website, but in a color-coded and formatted view.  Very nice and helpful for (X)HTML developers.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/4072?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Smart Bookmarks Bar</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/4072/1234555016" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Not enough place on your bookmarks bar ?... Smart Bookmarks Bar extension comes right here by hiding bookmarks names and only showing icons. Bookmark names will be displayed on mouse over. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>For those who frequently use the bookmarks in the firefox bookmarks toolbar, this is a great way to show more in a cleaner way.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1433?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Extended Statusbar</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1433/1246438548" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />A Statusbar with speed, percentage, time and loaded size (similar to Opera's one) <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Provides much more information unobtrusively on your statusbar, very cool!</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10300?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Email Yourself!</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10300/1253228434" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Email Yourself! allows you to email yourself the link, title, and a selected summary of the webpage you are viewing using GMail. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/125?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">SwitchProxy Tool</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />SwitchProxy lets you manage and switch between multiple proxy configurations... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2499?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">LiveClick</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Adds feed reading, notifications, favicons, and other enhancements to Live Bookmarks. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/7314?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Places' Tooltips</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />This addon enhances all the tooltips in Firefox. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/11173?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Multi Smart Search</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />"Multi smart search" displays a new context menu including all the installed search engine. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/9275?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">SortPlaces</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/9275/1252087512" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Sorts your bookmarks in a variety of ways. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/433?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Flashblock</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/433/1247913103" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Never be annoyed by a Flash animation again! Blocks Flash so it won't get in your way, but if you want to see it, just click on... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Lets you block flash for all/specific websites/domains, which is pretty nice capability to test both your sites for non-flash viewers, and speeds up firefox.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6249?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Google Toolbar</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/6249/1237314369" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Take the power of Google with you anywhere on the Web <br class="C" /></p>
    <blockquote class="publisher-comment"><p>A great add-on that lets you use hundreds of google tricks and tools.  Very helpful but also makes a lot of background HTTP requests so privacy-conscious or speed-freaks will want it disabled.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6622?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">DOM Inspector</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />DOM Inspector is a tool that can be used to inspect and edit the live DOM of any web document or XUL application. The DOM hierarchy can be navigated using a two-paned window that allows for a variety of different views on the document and all nodes within. Note:  This add-on depends on binary changes to Firefox, and will not work with Firefox 2. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Way to inspect the DOM of a page, useful for web developers.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6459?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Stay-Open Menu</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/6459/1250004873" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Enables multiple selections from Bookmarks Menu,  History Menu, or Smart Location Bar (awesomebar)  dropdown list, without reopening menu or using sidebar. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/710?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Menu Editor</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Customize application menus: Rearrange or remove menuitems from the main context menu (right-click menu) and main menubar (File Edit View etc.) <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/4838?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Multiple Tab Handler</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/4838/1251873082" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Provides feature to close multiple tabs. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1815?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Console²</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1815/1246698544" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Console² (pronounced Console Squared or Console Two) replaces the JavaScript Console with what could be the next generation Error Console. From v0.5 includes the Console Filter extension previously available separately from the Console² website. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>An advanced java script console.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/6271?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Bookmark Previews</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Bookmark Previews adds an album view and thumbnail view to the bookmarks manager. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Now this one is what I call genius.  Lets you view previews of your bookmarks!  Great if like me you have over a thousand bookmarks.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/8542?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">LastPass Password Manager</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/8542/1252161868" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />LastPass is a free online password manager and Form Filler that makes your web browsing easier and more secure.   LastPass supports IE and Firefox as Plugins (Opera, Safari, Chrome, iPhone, Opera Mini via Bookmarklets), allows you to import from every major password storage vendor and export too, captures passwords that other managers won't including many AJAX forms, and allows you to make strong passwords easily.  Your sensitive data is encrypted _locally_ before upload so even LastPass cannot get access to it.  One Time Passwords &amp; Screen Keyboard help protect your master password. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>What can I say, this add-on is in my top 10 for sure, and I recommend it to all my friends and even my family.  Lets me create very secure passwords for sites that I don't have to remember because lastpass remembers them for me, and stores them encrypted on both a usb medium I keep, and on their servers.  So when I use someone elses computer or reinstall firefox, I have all my usernames and passwords, and its just sooooooooooooooooo useful.  Get this add-on, it truly is a secure way to only have to remember 1 password from now on, thus LastPass.  The last password you need.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1956?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tabs Open Relative</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1956/1211284492" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Tabs Open Relative makes all new tabs open to the right of the current tab, rather than at the far right of the tab bar (optionally this only applies to links). <br class="C" /></p>
    <blockquote class="publisher-comment"><p>This stops that annoying default of opening tabs wayy on the right.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/10909?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Coral IE Tab</a></h4>
    <p> <img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/10909/1255054707" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />An enhanced version of IE Tab which enables you to use the embedded IE engine within tabs of Mozilla Firefox. It supports Adblock Plus in IE, and can sync cookies between IE and Firefox. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/966?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Tamper Data</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Use tamperdata to view and modify HTTP/HTTPS headers and post parameters... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Useful for checking form validation and security, lets you tamper data! lol</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/5369?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">YSlow</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/5369/1253220367" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />YSlow analyzes web pages and why they're slow based on Yahoo!'s rules for high performance web sites. YSlow uses Yahoo!'s Smush.it service, which is subject to Smush.it Terms of Use: http://info.yahoo.com/legal/us/yahoo/smush_it/smush_it-4378.html <br class="C" /></p>
    <blockquote class="publisher-comment"><p>One of the top 3 most important and helpful add-ons for firefox.  Web Developers who don't use this one are simply irresponsible.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/539?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">MeasureIt</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Draw out a ruler to get the pixel width and height of any elements on a... <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/271?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">ColorZilla</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/271/1234546689" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Advanced Eyedropper, ColorPicker, Page Zoomer and other colorful goodies... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>A must-have add-on for anyone using CSS or developing websites, very amazing, highly capable add-on.  The one issue is that is is somewhat of a resource-hog.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/748?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Greasemonkey</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/748/1253968926" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Allows you to customize the way a webpage displays using small bits of JavaScript. ... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Lets you use user-contributed javascripts (or your own of course) that modifies the behavior and/or appearance of many different websites.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/684?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FireFTP</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/684/1254121244" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />FireFTP is a free, secure, cross-platform FTP client for Mozilla Firefox which provides easy and intuitive access to FTP servers. <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/7943?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Pixel Perfect</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/7943/1254757574" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Pixel Perfect is a Firefox/Firebug extension that allows web developers and designers to easily overlay a web composition over top of the developed HTML. * Requires Firebug <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/60?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Web Developer</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/60/1252695377" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />The Web Developer extension adds a menu and a toolbar with various web developer tools. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>This add-on is 1 of the top 2 most important add-ons for web developers.  The other is firebug.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1843?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Firebug</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1843/1254249333" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page... Firebug 1.4 requires Firefox 3.0 or higher. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>By far, without a doubt, the single most important and valuable add on for ANY web developer.  This is the one that is definitely required.  The features are too numerous to name here.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3829?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Live HTTP Headers</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3829/1245295166" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />View HTTP headers of a page and while... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Very helpful for those that don't have and use wireshark.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/2464?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FoxyProxy</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/2464/1254948830" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />FoxyProxy is an advanced proxy management tool that completely replaces Firefox's limited proxying capabilities. It offers more features than SwitchProxy, ProxyButton, QuickProxy, xyzproxy, ProxyTex, TorButton, etc. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>The most complete proxifying tool for firefox, multiple configurations possible.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/321?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">SearchStatus</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/321/1254725500" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Display the Google PageRank, Alexa rank, Compete ranking and SEOmoz Linkscape mozRank anywhere in your browser, along with fast keyword density analyser, keyword/nofollow highlighting, backward/related links, Alexa info and more. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Adds a very unobtrusive way to check the pagerank, and several other SEO statistics but only when you click a button (if configured that way) very helpful occasionally.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/201?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">DownThemAll!</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/201/1253178038" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />The first and only download manager/accelerator built inside Firefox! <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Very nice, easy, fast, and unobtrusive add-on that lets you download all files of a certain type to a certain save location, lets you use builtin filters or configure your own using basic REGEX.  Very helpful.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/1801?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Clear Cache Button</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/1801/1248704772" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Adds a clear cache toolbar button. After installing the extension, find the clear cache button in the toolbar customization... <br class="C" /></p>
    <blockquote class="publisher-comment"><p>A button you can add to your toolbar that clears your firefox cache (not cookies or history) which is invaluable for web developers.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/12006?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Wolfram Alpha Google</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/12006/1254285310" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Display Wolfram Alpha results in Google searches. No need to switch search engines when you can use both at once! <br class="C" /></p>
    <blockquote class="publisher-comment"><p>The new search is a glimpse at the future of computing.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/3895?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Personal Menu</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/3895/1253278678" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />"Menus Toolbar" item is now available in Toolbar Context Menu and you may hide it forever! <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Lets you go beyond firefox builtin menu editing and create a custom toolbar.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/7613?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Jiffy</a></h4>
    <p><img src="https://addons.mozilla.org/img/default_icon.png" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title="default icon hacking" />Adds a new panel to Firebug for displaying timing measurements for JavaScript applications. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>Adds the ability to time or profile your javascript, I usually leave disabled.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/9603?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">FireRainbow</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/9603/1248403194" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Javascript syntax highlighting for Firebug 1.3+ <br class="C" /></p>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/7684?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">Fire.fm</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/7684/1254412991" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />Fire.fm gives you access to the extensive music library on Last.fm. Last.fm gives free radio to the US, UK, and Germany, plus subscriber-based service to the rest of the world. Listen to your favorite music and discover new artists in the process. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>What would work be without free streaming music that is customizable and recommends music based on your history.  Conveniently can be added to your status bar, or your toolbar.</p></blockquote>
</div>
<hr class="C" />


<div class="item-info">
    <h4><a href="https://addons.mozilla.org/en-US/firefox/addon/138?collection_uuid=2f6fd413%26%2345%3B1146%26%2345%3Bad49%26%2345%3B1cca%26%2345%3B84102bff60fb">StumbleUpon</a></h4>
    <p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/138/1248392473" alt="Firefox Add ons for Web Developers" height="32" width="32" class="IFL" title=" hacking" />StumbleUpon discovers web sites based on your interests, learns what you like and brings you more. <br class="C" /></p>
    <blockquote class="publisher-comment"><p>StumbleUpon is great.  Very cool way to see relevant and interesting web development articles and sites.</p></blockquote>
</div>
<hr class="C" /><p><a href="http://www.askapache.com/hacking/firefox-addons-webdev.html"></a><a href="http://www.askapache.com/hacking/firefox-addons-webdev.html">Firefox Add-ons for Web Developers</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/hacking/firefox-addons-webdev.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SEO Secrets of AskApache Part 2</title>
		<link>http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html</link>
		<comments>http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html#comments</comments>
		<pubDate>Fri, 17 Oct 2008 21:44:22 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.askapache.com/?p=567</guid>
		<description><![CDATA[<p><a rel="lb" class="IFL hs hs31" href='http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html' title="Advanced SEO part 2: Search Engine Indexing and Pagerank Control"></a>This is part II of the <a href="http://www.askapache.com/seo/seo-secrets.html">Advanced SEO used on AskApache.com Series</a> and describes how to control which urls are indexed by Search Engines and how to move them higher up in Search Results.<br class="C" /></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html"></a><a href="http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html"><cite>AskApache.com</cite></a></p><p>In <a href="http://www.askapache.com/seo/seo-secrets.html">part I: SEO Secrets of AskApache.com</a> we talked about content and building a website to be your "SEO Base".  This article discusses some advanced SEO concepts to get a site indexed, move your best pages higher in search results, and controlling the pagerank/seo-juice of your site.  but relatively easy ways to control and tweak WHAT urls on your site are indexed, and HOW.  I've heard some people refer to this as "controlling pagerank flow" and "controlling pagerank juice", basically we want our best pages to rank higher in the search engine results.</p>
<p><strong>Big Picture:</strong> Going from no website to AskApache.com in less than a year can be accomplished by anyone with unique content and a resolve to avoid any shortcuts and take it one step at a time.</p>

<p class="cnote">We want what Google wants, to provide the most relevant content for someone who is doing a search.   Basically, you want every url on your site that has unique content to be included in the index.  In other words, <strong>you have to think like a search engine</strong>!</p>
<hr class="C" />

<h2>The Goal of Google</h2>
<p>Here's what I mean, Google approaches search with the overwhelming goal of bringing the content to a searcher that is the most-likely to be what that searcher is searching for.  Another way of looking at it is something I read on Google...</p>
<blockquote cite="http://www.google.com/">Google's goal is to get you off of their site as fast as possible by providing you with exactly what you are looking for.</blockquote>
<hr class="C" />



<h2>Think about SEO like this</h2>
<p>If you search for <a href="http://www.google.com/search?aq=f&amp;complete=1&amp;hl=en&amp;q=htaccess+tutorial+for+seo&amp;btnG=Search" title="Google Search for htaccess tutorial for seo">htaccess tutorial for seo</a> on Google, would you be more likely to visit a <strong>tutorial about using .htaccess for seo</strong> or <strong>a category page for htaccess articles</strong>?  AskApache.com has both of those urls included in the index, but the article ranks higher than the category page, as it very well should.</p>
<hr class="C" />

<h2>Get Your URLS Indexed</h2>
<p>Before I explain how I am able to help Google and other search engines rank my article pages higher than my category pages, we need to get the urls in the index or nothing will show up.  There are many well-discussed methods for getting included in the index, so I'll just list a few that I use.</p>
<ol>
<li>Provide High-Quality original content, people will link to it</li>
<li>Get a sitemap and use <a href="https://www.google.com/webmasters/tools/siteoverview?hl=en">Google Webmaster Tools</a></li>
<li>Publish an <a href="http://feeds.askapache.com/apache/htaccess">RSS/Atom Feed</a> and ping the net when you publish a post</li>
<li>Use robots.txt and robots meta tags</li>
</ol>

<h3>Your URLs in the index</h3>
<p>Here's how to find out which of your pages are indexed.</p>
<ul>
<li>Indexed pages in your site: <a href="http://www.google.com/search?q=site:www.askapache.com">site:</a></li>
<li>Pages that link to your site's front page: <a href="http://www.google.com/search?q=link:www.askapache.com">link:</a></li>
<li>The current cache of your site: <a href="http://www.google.com/search?q=cache:www.askapache.com">cache:</a></li>
<li>Information about your site: <a href="http://www.google.com/search?q=info:www.askapache.com">info:</a></li>
<li>Pages that are similar to your site: <a href="http://www.google.com/search?q=related:www.askapache.com">related:</a></li>
</ul>
<hr class="C" />


<h2>Break It Down</h2>
<p>Yo homeslice! I didn't mean break dance..  I mean lets simplify AskApache in the context of getting our urls indexed high/low.  Here's the stats:  <strong>1 Homepage, 206 Articles, 19 Pages, 31 Categories</strong></p>

<h3>1 Homepage</h3>
<p>This page is generally the highest ranking page in the index, it should contain links to your best urls, and provide easy navigation</p>

<h3>206 Specific Topic Articles</h3>
<p>These are the article's (like this one) of AskApache.com and are the main source of search engine traffic.  You want each url (if its a good article) to be ranked as high as possible.  Some keys are to really make each article specific to a topic by using best-practice (X)HTML.</p>

<h3>19 Static Pages</h3>
<p>Most of these are pages like the online-tools hosted on this site, or other basic pages like about, contact us, site-map, etc..  Some of these you may want to rank very high ( like the /about/ page ) and some you may not want to even be included in the index.</p>

<h3>31 Specific Topic Category Pages</h3>
<p>These are tricky because they are generally just lists of articles from each category, which isn't specific enough to get much seach-engine-traffic, but is very useful to site visitors.  I beefed up my category pages by adding additional information about the category topic in addition to excerpts of the articles.</p>
<hr class="C" />

<h2>Higher Pagerank = Higher Up in Search Results</h2>
<p>So Googlebot and other search engine robots have these crazy complicated algorithms (many patented) that SEO Industry types may get caught up in and try to technically analyze them.  I'm sure you've seen/read/heard the complicated advice that will always be pushed by many... advice like:</p>
<ul>
<li>analyze the number of words in the description/title/1st paragraph/etc.</li>
<li>Make sure your "keyword" is sprinkled throughout the text every 10-30th word..</li>
<li>Other equally unexciting technical analysis</li>
</ul>

<p>Now if you've had success with that then props to you, success is success, but I personally choose to completely ignore all that.  The number 1 thing that the top search engines advise is to design your page for a <strong>Human Visitor</strong>, not a computer.  The golden rule for me is how I would rank the page, not how some algorithm would.</p>
<hr class="C" />


<h2>Designing for a Human Visitor</h2>
<p>This is a major factor in your site being at the top vs. nowhere.   You design your HTML to be as minimal as possible (see source code for my homepage) and contain ONLY the neccessary elements.  Above all, use semantically sound XHTML markup.  (view source of <a href="http://www.w3.org/" title="World Wide Web Consortium"><acronym title="World Wide Web Consortium">W3C</acronym></a>)</p>

<h3>External CSS/Javascript</h3>
<p>Get your javascript and CSS out of your HTML and use external files (like this site) ALWAYS!  You should start with just the HTML, no css, no colors, no javascript, and THEN you add the .css and then you add the javascript.</p>

<h3>Site Accessibility</h3>
<p>Say your browser didn't have a mouse, didn't support images, css, javascript, or even colors!  Your HTML should be structured such that your page is still easily readable and easy to navigate.  You can use lynx, links, and many other terminal-based browsers to test for this... please see the <a href="http://www.w3.org/WAI/">Web Accessibility Initiative (<acronym title="Web Accessibility Initiative">WAI</acronym>)</a> for detailed info.</p>
<blockquote cite="http://en.wikipedia.org/wiki/Web_accessibility"><p><a href="http://en.wikipedia.org/wiki/Web_accessibility">Web accessibility</a> refers to the practice of making websites usable by people of all abilities and disabilities. When sites are correctly designed, developed and edited, all users can have equal access to information and functionality. For example, when a site is coded with semantically meaningful HTML, with textual equivalents provided for images and with links named meaningfully, this helps blind users using text-to-speech software and/or text-to-Braille hardware.</p></blockquote>
<hr class="C" />


<h2>Controlling a URL's Pagerank</h2>
<p>A few tools and techniques are available for controlling the "juice" or "pagerank" of your urls.</p>
<ol>
<li>Robots.txt</li>
<li>Robots Meta Tags</li>
<li>Links</li>
</ol>

<h2>Robots.txt</h2>
<p>I've done quite a bit of research and experimentation with <a href="http://www.askapache.com/search/robots.txt">robots.txt files</a>, which is a file located in the root of your website at <a href="http://www.askapache.com/robots.txt">http://www.askapache.com/robots.txt</a> that is downloaded by all legitimate search engine spiders/bots and used as a Blacklist to prevent certain urls from being indexed.  Here are a few of the articles on this site, which you may skip if you like as they don't illustrate the big-picture that I am going to discuss now.</p>
<ul>
<li><a href="http://www.askapache.com/seo/robotstxt-mattcutts-noindex.html">Control Flow of Pagerank with robots.txt and NoFollow, NoIndex</a></li>
<li><a href="http://www.askapache.com/seo/updated-robotstxt-for-wordpress.html">WordPress robots.txt</a></li>
<li><a href="http://www.askapache.com/seo/seo-with-robotstxt.html">SEO with Robots.txt</a></li>
<li><a href="http://www.askapache.com/google/adsense-robots.html">Google AdSense using robots.txt</a></li>
<li><a href="http://www.askapache.com/seo/wordpress-robotstxt-seo.html">WordPress robots.txt file optimized for SEO and Google</a></li>
</ul>

<h3>How To Use Robots.txt</h3>
<p>Even though robots.txt files are for whitelisting and blacklisting urls, I have found that they should only be used as an extreme form of blacklisting.  When you Disallow a url in your robots.txt file, that means most search engine bots won't even LOOK at the url.  As you can see in the below example, I only disallow urls that shouldn't ever be LOOKED at.  The real powertool is the <strong>robots meta tag</strong>.</p>
<pre>User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
&nbsp;
Sitemap: http://www.askapache.com/sitemap.xml</pre>
<hr class="C" />


<h2>Robots Meta Tag</h2>
<p>Ok I'm really trying to simplify, because what you should understand is the big-picture.  Every page can have a robots meta tag in the header, and this robots meta tag can tell the search-engine to index/not-index AND follow/not-follow.  Here are some examples:</p>
<pre>&lt;meta name="robots" content="index" /&gt;
&lt;meta name="robots" content="noindex" /&gt;
&lt;meta name="robots" content="noindex,follow" /&gt;
&lt;meta name="robots" content="index,nofollow" /&gt;</pre>

<h3>content="index" / noindex</h3>
<p><code>index</code> means the search engine is free to index, archive, cache, and follow the page whereas <code>noindex</code> means DO NOT include this page in the search engine results.</p>

<h3>content="follow" / nofollow</h3>
<p><code>follow</code> means the search engine is free to LOOK at the page and follow the links on the page whereas <code>nofollow</code> means DO NOT follow the links on the page.</p>
<hr class="C" />

<h3>WordPress Auto-Robots meta tag code</h3>
<p>Just add this to any plugin file and it will add the right robots meta tag to your site..  tweak to taste.</p>
<pre>function askapache_robots_header(){
 global $wpdb;
&nbsp;
 $robot = &#039;&lt;meta name="robots" content="noindex,follow,nocache,noarchive" /&gt;&#039;;
&nbsp;
 if ( is_paged() || is_search() || is_404() || is_author() || is_tag() )
   $robot = &#039;&lt;meta name="robots" content="noindex,follow" /&gt;&#039;;
 elseif ( is_home() || is_front_page() || is_single() )
   $robot = &#039;&lt;meta name="robots" content="follow,index" /&gt;&#039;;
 elseif ( is_category() || is_page() )
   $robot = &#039;&lt;meta name="robots" content="follow" /&gt;&#039;;
&nbsp;
 echo $robot . "\n";
}
add_action( &#039;wp_head&#039;, &#039;askapache_robots_header&#039; );</pre>
<hr class="C" />


<h2>Links</h2>
<p>External and Internal Links are the crux of SEO.  It's important to start FIRST on your Internal Links and linking structure... Once you are satisfied that the correct pages are indexed and ranked appropriately, then you can begin to look at external links.</p>
<ul>
<li>The fewer links on a page, generally the better.</li>
<li>If every page of your site points to the same url on your site, pagerank goes up from the number of internal links.</li>
<li>Use of the <code>rel</code>, <code>title</code>, <code>alt</code> attribute semantically is very helpful.  (next, prev, index)</li>
<li>Put your best links higher up in the XHTML, and put helpful/solid links at the end.</li>
<li>You can add <code>rel="nofollow"</code> to links that you dont want followed.</li>
</ul>
<p>The web has gotten to be so full of malicious/non-helpful SEO activity that I recommend developing your content NOT external links.  If you want to do this right and provide great content that makes search engine users happy and makes the web better, then explore this blog and develop content until the next article in this series, where I'll show you how to <strong>make your site explode</strong>.</p>

<p class="anote">Stay tuned for Part III, which will dive deeper into the pipeworks of AskApache.com</p><p><a href="http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html"></a><a href="http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html">SEO Secrets of AskApache Part 2</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/seo/seo-advanced-pagerank-indexing.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Abbr and Acronym examples</title>
		<link>http://www.askapache.com/design/abbr-acronym.html</link>
		<comments>http://www.askapache.com/design/abbr-acronym.html#comments</comments>
		<pubDate>Tue, 16 Oct 2007 03:53:03 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.askapache.com/xhtml/abbr-acronym.html</guid>
		<description><![CDATA[<p>Acronym and Abbr examples from the W3C Quality Assurance Site.</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/design/abbr-acronym.html"></a><a href="http://www.askapache.com/design/abbr-acronym.html"><cite>AskApache.com</cite></a></p><p>From pages on the <a href="http://www.w3.org/QA/">W3C Quality Assurance</a></p>

<dl>
    <dt><abbr title="Application Program Interfaces">APIs</abbr></dt>
    <dd>Application Program Interfaces</dd>
    <dt><abbr title="Composite Capability/Preference Profiles">CC/PP</abbr></dt>
    <dd>Composite Capability/Preference Profiles</dd>
    <dt><abbr title="Cascading Style Sheets">CSS</abbr></dt>
    <dd>Cascading Style Sheets</dd>
    <dt><abbr title="Cascading Style Sheets">CSS</abbr></dt>
    <dd>Cascading Style Sheets</dd>
    <dt><acronym title="Document Object Model">DOM</acronym></dt>
    <dd>Document Object Model</dd>
    <dt><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></dt>
    <dd>European Research Consortium for Informatics and Mathematics</dd>
    <dt><acronym title="Gleaning Resource Descriptions from Dialects of Languages">GRDDL</acronym></dt>
    <dd>Gleaning Resource Descriptions from Dialects of Languages</dd>
    <dt><abbr title="HyperText Markup Language">HTML</abbr></dt>
    <dd>HyperText Markup Language</dd>
    <dt><abbr title="Hypertext Transfer Protocol">HTTP</abbr></dt>
    <dd>Hypertext Transfer Protocol</dd>
    <dt><acronym title="Massachusetts Institute of Technology">MIT</acronym></dt>
    <dd>Massachusetts Institute of Technology</dd>
    <dt><acronym title="OWL Web Ontology Language">OWL</acronym></dt>
    <dd>OWL Web Ontology Language</dd>
    <dt><abbr title="Platform for Privacy Preferences">P3P</abbr></dt>
    <dd>Platform for Privacy Preferences</dd>
    <dt><acronym title="Platform for Internet Content Selection">PICS</acronym></dt>
    <dd>Platform for Internet Content Selection</dd>
    <dt><acronym title="Portable Network Graphics">PNG</acronym></dt>
    <dd>Portable Network Graphics</dd>
    <dt><acronym title="Protocol for Web Description Resources">POWDER</acronym></dt>
    <dd>Protocol for Web Description Resources</dd>
    <dt><abbr title="Quality Assurance">QA</abbr></dt>
    <dd>Quality Assurance</dd>
    <dt><abbr title="Resource Description Framework">RDF</abbr></dt>
    <dd>Resource Description Framework</dd>
    <dt><abbr title="RDF Site Summary">RSS channel</abbr></dt>
    <dd>RDF Site Summary</dd>
    <dt><acronym title="Synchronized Multimedia Integration Language">SMIL</acronym></dt>
    <dd>Synchronized Multimedia Integration Language</dd>
    <dt><abbr title="Service Modeling Language">SML</abbr></dt>
    <dd>Service Modeling Language</dd>
    <dt><acronym title="Soap">SOAP</acronym></dt>
    <dd>Soap</dd>
    <dt><acronym title="Simple Protocol and RDF Query Language">SPARQL</acronym></dt>
    <dd>Simple Protocol and RDF Query Language</dd>
    <dt><abbr title="Scalable Vector Graphics">SVG</abbr></dt>
    <dd>Scalable Vector Graphics</dd>
    <dt><acronym title="Technical Architecture Group">TAG</acronym></dt>
    <dd>Technical Architecture Group</dd>
    <dt><abbr title="Uniform Resource Identifiers">URI/URL</abbr></dt>
    <dd>Uniform Resource Identifiers</dd>
    <dt><acronym title="World Wide Web Consortium">W3C</acronym></dt>
    <dd>World Wide Web Consortium</dd>
    <dt><acronym title="Web Accessibility Initiative">WAI</acronym></dt>
    <dd>Web Accessibility Initiative</dd>
    <dt><abbr title="Web Services">WS</abbr></dt>
    <dd>Web Services</dd>
    <dt><abbr title="Web Services Choreography Description Language">WS-CDL</abbr></dt>
    <dd>Web Services Choreography Description Language</dd>
    <dt><acronym title="Web Services Description Language">WSDL</acronym></dt>
    <dd>Web Services Description Language</dd>
    <dt><abbr title="Web Computer Graphics Metafile">WebCGM</abbr></dt>
    <dd>Web Computer Graphics Metafile</dd>
    <dt><acronym title="Next Generation Web Forms">XForms</acronym></dt>
    <dd>Next Generation Web Forms</dd>
    <dt><abbr title="Extensible HyperText Markup Language">XHTML</abbr></dt>
    <dd>Extensible HyperText Markup Language</dd>
    <dt><abbr title="Extensible HyperText Markup Language">XHTML2</abbr></dt>
    <dd>Extensible HyperText Markup Language</dd>
    <dt><acronym title="XML Link">XLink</acronym></dt>
    <dd>XML Link</dd>
    <dt><abbr title="XML Protocol">XMLP</abbr></dt>
    <dd>XML Protocol</dd>
    <dt><acronym title="Extensible Stylesheet Language">XSL</acronym></dt>
    <dd>Extensible Stylesheet Language</dd>
    <dt><abbr title="Extensible Markup Language">XML</abbr></dt>
    <dd>Extensible Markup Language</dd>
    <dt><acronym title="XSL Transformations">XSLT</acronym></dt>
    <dd>XSL Transformations</dd>
</dl>

<pre>&lt;abbr title="Application Program Interfaces"&gt;APIs&lt;/abbr&gt;
&lt;abbr title="Composite Capability/Preference Profiles"&gt;CC/PP&lt;/abbr&gt;
&lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt;
&lt;acronym title="Document Object Model"&gt;DOM&lt;/acronym&gt;
&lt;acronym title="European Research Consortium for Informatics and Mathematics"&gt;ERCIM&lt;/acronym&gt;
&lt;acronym title="Gleaning Resource Descriptions from Dialects of Languages"&gt;GRDDL&lt;/acronym&gt;
&lt;abbr title="HyperText Markup Language"&gt;HTML&lt;/abbr&gt;
&lt;acronym title="Massachusetts Institute of Technology"&gt;MIT&lt;/acronym&gt;
&lt;acronym title="OWL Web Ontology Language"&gt;OWL&lt;/acronym&gt;
&lt;abbr title="Platform for Privacy Preferences"&gt;P3P&lt;/abbr&gt;
&lt;acronym title="Platform for Internet Content Selection"&gt;PICS&lt;/acronym&gt;
&lt;acronym title="Portable Network Graphics"&gt;PNG&lt;/acronym&gt;
&lt;acronym title="Protocol for Web Description Resources"&gt;POWDER&lt;/acronym&gt;
&lt;abbr title="Quality Assurance"&gt;QA&lt;/abbr&gt;
&lt;abbr title="Resource Description Framework"&gt;RDF&lt;/abbr&gt;
&lt;abbr title="RDF Site Summary"&gt;RSS channel&lt;/abbr&gt;
&lt;acronym title="Synchronized Multimedia Integration Language"&gt;SMIL&lt;/acronym&gt;
&lt;abbr title="Service Modeling Language"&gt;SML&lt;/abbr&gt;
&lt;acronym title="Soap"&gt;SOAP&lt;/acronym&gt;
&lt;acronym title="Simple Protocol and RDF Query Language"&gt;SPARQL&lt;/acronym&gt;
&lt;abbr title="Scalable Vector Graphics"&gt;SVG&lt;/abbr&gt;
&lt;acronym title="Technical Architecture Group"&gt;TAG&lt;/acronym&gt;
&lt;acronym title="World Wide Web Consortium"&gt;W3C&lt;/acronym&gt;
&lt;abbr title="Uniform Resource Identifiers"&gt;URI/URL&lt;/abbr&gt;
&lt;acronym title="Web Accessibility Initiative"&gt;WAI&lt;/acronym&gt;
&lt;abbr title="Web Services Choreography Description Language"&gt;WS-CDL&lt;/abbr&gt;
&lt;abbr title="Extensible Markup Language"&gt;XML&lt;/abbr&gt;
&lt;acronym title="Web Services Description Language"&gt;WSDL&lt;/acronym&gt;
&lt;abbr title="Web Computer Graphics Metafile"&gt;WebCGM&lt;/abbr&gt;
&lt;acronym title="Next Generation Web Forms"&gt;XForms&lt;/acronym&gt;
&lt;abbr title="Extensible HyperText Markup Language"&gt;XHTML&lt;/abbr&gt;
&lt;abbr title="Extensible HyperText Markup Language"&gt;XHTML2&lt;/abbr&gt;
&lt;acronym title="XML Link"&gt;XLink&lt;/acronym&gt;
&lt;abbr title="XML Protocol"&gt;XMLP&lt;/abbr&gt;
&lt;acronym title="Extensible Stylesheet Language"&gt;XSL&lt;/acronym&gt;
&lt;acronym title="XSL Transformations"&gt;XSLT&lt;/acronym&gt;</pre><p><a href="http://www.askapache.com/design/abbr-acronym.html"></a><a href="http://www.askapache.com/design/abbr-acronym.html">Abbr and Acronym examples</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/design/abbr-acronym.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best-practice Web Design Process</title>
		<link>http://www.askapache.com/design/best-practice-web-design-process.html</link>
		<comments>http://www.askapache.com/design/best-practice-web-design-process.html#comments</comments>
		<pubDate>Mon, 26 Mar 2007 22:59:50 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.askapache.com.com/web-design/best-practice-web-design-process.html</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/design/best-practice-web-design-process.html"></a><a href="http://www.askapache.com/design/best-practice-web-design-process.html"><cite>AskApache.com</cite></a></p><h1>Web Design Process</h1>
I have spent a considerable amount of time investing in learning best-practices for modern web-design..<hr />  (as defined by the <a href="http://www.w3.org/">World Wide Web Consortium</a>) This basically means that I can rapidly make changes to a site.


<h2>Let me break down the process</h2>

I use <strong>XHTML</strong> to structure the code on the webpage.  I then use <strong>CSS</strong> (cascading style sheets), to style the XHTML, this creates the presentation.   All that is left is for the client to supply the content that I plug into the XHTML.

<blockquote>XHTML == structure
CSS    == presentation
CONTENT == content
SCRIPTS == dynamic structure/presentation/content</blockquote>

It is a very modularized way of designing web-pages.  By using CSS, I can change 1 line of code and the effect is an instant change throughout the entire site.



<h2>Web Programming Languages</h2>
The programming languages that I use are php, unix shell scripts, perl, python, ocaml, and javascript.

I also rely and depend heavily on the open-source Apache web server.  Coming from a background of computer security and linux/unix, I am very glad to go with a non-windows Apache environment.  You can forget about worrying about virii and other attacks!  I use <a href="http://www.askapache.com/htaccess/htaccess.html">Apaches .htaccess</a> to do a number of things.  One use is automatically changing all non-www urls to www urls.   Another big thing it does is allow me to specify that pages that end in .htm will be processed as if they included php code.  Which is how I am able to call scripts to execute from within the page, all transparent to the end-user, who cannot see the php source code, only the result.



<h2>Optimizing for speed and accessiblity</h2>
I am very much concerned with optimizing web-pages for speed and accessibility. If you view the webpage with images disabled (use firefox with extension 'web developer'), you will be surprised at how the webpage still looks pretty normal.  The images I do use are mostly .png files, which are much smaller and better than any other public image format.  And they are mostly 1px wide or 1px high, and using CSS I tell that image to repeat to give the effect of a much larger image.

<h3>Traffic shaping</h3>
Using the OpenBSD-powered firewall/IDS/proxy that I have in my office, I can setup traffic shaping to slow the uplink and downlink of my connection.  So I slow it down to the speed of an old 28.8 modem connection and then I test the webpages to see how fast the page is displayed at that limited speed.

For accessiblity, I test each webpage using the browsers IE, firefox, Opera, Netscape, Mozilla, Konquerer, Lynx, Links, Dillo, w3m, and Galeon from windows and linux OS's.

The javascript I use doesn't load in the browser until a call is made to that javascript. The way I use javascript is called "unobtrusive javascript" much like AJAX.


<h2>Web Design Conclusion</h2>
Those are just some of the ways that illustrate the use of best-practice web-design.

I don't put executables or scripts anywhere other than the /cgi-bin/ directory.  File directory structure is very important to me, my experience with BSD operating systems has taught me to make sure there is a logical method of organizing files and directorys.

We'll get into all the exciting stuff once the current site is more stable.. stuff like subdomains, SSL, chatrooms, blogs, forums, livechat support, etc., etc..

Also, believe it or not I actually enjoy getting criticisms and critiques of my work, so any suggestions, recommendations, etc. are welcome and will be dealt with in a timely fashion..<p><a href="http://www.askapache.com/design/best-practice-web-design-process.html"></a><a href="http://www.askapache.com/design/best-practice-web-design-process.html">Best-practice Web Design Process</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/design/best-practice-web-design-process.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SEO in WordPress</title>
		<link>http://www.askapache.com/wordpress/seo-in-wordpress.html</link>
		<comments>http://www.askapache.com/wordpress/seo-in-wordpress.html#comments</comments>
		<pubDate>Thu, 18 Jan 2007 04:36:51 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.askapache.com.com/wordpress/seo-in-wordpress.html</guid>
		<description><![CDATA[Search Engine Optimization for WordPress]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/wordpress/seo-in-wordpress.html"></a><a href="http://www.askapache.com/wordpress/seo-in-wordpress.html"><cite>AskApache.com</cite></a></p><p><strong>WordPress as a blogging platform is ideal when it comes to SEO, the default setup is optimized for search engines.</strong></p>
<p>Its features and functions guide a search engine through the posts, pages, and categories to help the search engine crawl your site and gather the information it needs to include your site within its database.</p>
<p>Check out: <a href="http://www.askapache.com/seo/updated-robotstxt-for-wordpress.html">robots.txt</a></p>
<hr />

<h2>Top 10 SEO Factors</h2>
<ol>
    <li>Title Tag - 4.57</li>
    <li>Anchor Text of Links - 4.46</li>
    <li>Keyword Use in Document Text - 4.38</li>
    <li>Accessibility of Document - 4.3</li>
    <li>Links to Document from Site-Internal Pages - 4.15</li>
    <li>Primary Subject Matter of Site - 4.00</li>
    <li>External Links to Linking Pages - 3.92</li>
    <li>Link Popularity of Site in Topical Community - 3.77</li>
    <li>Global Link Popularity of Site - 3.69</li>
    <li>Keyword Spamming - 3.69</li>
</ol>
<p> WordPress comes with several built in search optimization tools, including the ability to use <a href="http://codex.wordpress.org/Glossary#.htaccess" title="Glossary">.htaccess</a> to create apparently static <a href="http://codex.wordpress.org/Glossary#URI_and_URL" title="Glossary">URLs</a> called <a href="http://codex.wordpress.org/Using_Permalinks" title="Using Permalinks">permalinks</a>, <a href="http://codex.wordpress.org/Glossary#Blogroll" title="Glossary">blogrolling</a>, and <a href="http://codex.wordpress.org/Glossary#PingBack" title="Glossary">pinging</a>.  There are also a number of third party <a href="http://codex.wordpress.org/Plugins" title="Plugins">plugins</a> and hacks which can be used for search engine optimization (SEO). </p>
<p> However, once you start using various <a href="http://codex.wordpress.org/Using_Themes" title="Using Themes">WordPress Themes</a> and <a href="http://codex.wordpress.org/Blog_Design_and_Layout" title="Blog Design and Layout">customizing WordPress</a> to meet your own needs, you may break some of those useful search engine friendly features.  To maintain your WordPress site's optimal friendliness towards search engine spiders and crawlers, here are a few tips: </p>
<p><a href="http://www.askapache.com/seo/seo-with-robotstxt.html" title="robots.txt for SEO">robots.txt usage for SEO boost</a><br />
<a href="http://www.askapache.com/seo/little-known-xhtml-elements-increase-seo.html">Use XHTML Phrase elements for SEO boost</a></p>
<h3>XHTML SEO friendly elements</h3>
<dl>
    <dt>EM</dt>
    <dd>Indicates emphasis.</dd>
    <dt>STRONG</dt>
    <dd>Indicates stronger emphasis.</dd>
    <dt>CITE</dt>
    <dd>Contains a citation or a reference to other sources.</dd>
    <dt>DFN</dt>
    <dd>Indicates that this is the defining instance of the enclosed term.</dd>
    <dt>CODE</dt>
    <dd>Designates a fragment of computer code.</dd>
    <dt>SAMP</dt>
    <dd>Designates sample output from programs, scripts, etc.</dd>
    <dt>KBD</dt>
    <dd>Indicates text to be entered by the user.</dd>
    <dt>VAR</dt>
    <dd>Indicates an instance of a variable or program argument.</dd>
    <dt>abbr</dt>
    <dd>Indicates an abbreviated form (e.g., WWW, HTTP, URI, Mass., etc.).</dd>
    <dt>acronym</dt>
    <dd>Indicates an acronym (e.g., WAC, radar, etc.).</dd>
</dl>
<hr />
<ul>
    <li>Good, Clean Code<br />
        Make sure your site's code <a href="http://codex.wordpress.org/Validating_a_Website" title="Validating a Website">validates</a>. Errors in your code may prevent a search engine from moving through the site successfully.</li>
    <li>Content Talks<br />
        Search engines can't "see" a site.  They can only "read" a site.  Pretty does not talk to a search engine.  What "talks" to a search engine are the words, the content, the material in your site that explains, shares, informs, educates, and babbles. Make sure you have quality <strong>word</strong> content for a search engine to examine and compare with all the parts and pieces to give you a good "score".</li>
    <li>Write Your Content with Searchers in Mind<br />
        How do you find information on the Internet? If you are writing something that you want to be "found" on the Internet, think about the words and phrases someone would use to find your information. Use them more than once as you write, but not in every sentence. Learn how search engines scan your content, evaluate it, and categorize it so you can help yourself get in good favor with search engines.</li>
    <li>Content First<br />
        A search engine enters your site and, for the most part, ignores the styles and <a href="http://codex.wordpress.org/CSS" title="CSS">CSS</a>.  It just plows through the site gathering content and information. Most WordPress Themes are designed with the content as close to the top of the unstyled page as possible, keeping sidebars and footers towards the bottom. Few search engines scan more than the first third of the page before moving on.  Make sure your Theme puts the content near the top.</li>
    <li>Keywords, Links, and Titles Meet Content<br />
        Search engines do not evaluate your site on how pretty it is, but they do evaluate the words and put them through a sifter, giving credit to certain words and combinations of words. Words found within your <a href="http://codex.wordpress.org/Meta_Tags_in_WordPress" title="Meta Tags in WordPress">meta tag keywords</a> listings and within your document are compared to words found within your links and titles.  The more that match, the better your "score."</li>
    <li>Content in Links and Images<br />
        Your site may not have much text, mostly photographs and links, but you have places in which to add textual content. Search engines look for <tt>alt</tt> and <tt>title</tt> in link and image tags.  While these have a bigger purpose of making your site more accessible, having good descriptions and words in these attributes helps provide more content for search engines to digest.</li>
    <li><p>Link Popularity<br />
        It is not how good your site is, it is how good the sites are that link to you. This still holds weight with search engine favoritism. It's about who links to you. <a href="http://codex.wordpress.org/Glossary#Blogroll" title="Glossary">Blogrolls</a>, <a href="http://codex.wordpress.org/Glossary#PingBack" title="Glossary">pingbacks</a>, and <a href="http://codex.wordpress.org/Glossary#Trackback" title="Glossary">trackbacks</a> are all built into WordPress. These help you link to other people, which gives them credit, but it also helps them link to you, connecting the "links." The number of incoming links your site has that have been recognized by Google can be checked by typing <tt>link:www.yoursite.com</tt> into Google (other search engines have similar functions).  Other ways to generate incomming links to your site include:</p>
        <ul>
            <li>Add your site's url to your signature on forum posts on other sites.</li>
            <li>Submit your site to directories (see below).</li>
            <li>Note: Leaving comments on blogs will not help with this, since all modern blogging tools use the <a href="http://codex.wordpress.org/Nofollow" title="Nofollow">rel="nofollow"</a> attribute. Don't be a <a href="http://codex.wordpress.org/Comment_Spam" title="Comment Spam">comment spammer</a>.</li>
        </ul>
    </li>
</ul>
<ul>
    <li>Good Navigation Links<br />
        A search engine crawls through your site, moving from page to page. <a href="http://codex.wordpress.org/Good_Navigation_Links" title="Good Navigation Links">Good navigational links</a> to the categories, archives, and various pages on your site will invite a search engine to move gracefully from one page to another, following the connecting links and visiting most of your site.</li>
</ul>
<a id="Search_Engine_Site_Submissions"></a>
<h2>Search Engine Site Submissions</h2>
<p> There are many resources that will "help" you submit your site to search engines. Some are free, some for a fee. Or you can manually submit your site to search engines yourself. Whatever method you choose to use, once your site has been <a href="http://codex.wordpress.org/Validating_a_Website" title="Validating a Website">checked for errors</a> and is ready to go, search engines will welcome your WordPress site. </p>
<p> Here are some tips for successful site submissions: </p>
<ul>
    <li>Make sure you have content for search engines to scan. In general, have more than 10 posts on your site to give the search engines something to examine and evaluate.</li>
    <li>Do not submit your site to the same search engine more than once a month or longer, depending upon their criteria, not your anxiousness to be listed.</li>
    <li>Have ready to type, or copy and paste, a description of your site that is less than 200 words long, the title of the site, and the categories your site may belong to in a search engine directory.</li>
    <li>Have a list of your website's various "addresses/URLs" ready. You can submit your root directory as well as specific categories and feeds to search engines, expanding your search engine coverage.</li>
    <li>Keep a list of the various search engines and directories you submit to so you do not accidentally resubmit too soon, and you can keep track of how they include you among their pages and results.</li>
</ul>
<p> <strong>Directory Sites</strong> </p>
<p> It is also useful for traffic generation and search optimization purposes to submit your site to directories. Both comprehensive directory sites and those specific to the subject or localisation of your site can be used. </p>
<p> <a href="http://www.dmoz.org" class="nofollow" title="http://www.dmoz.org">DMOZ.org</a><span>(<em>http://www.dmoz.org</em>)</span> this is the most important directory - it's content is licensed in an open fashion allowing it to be syndicated through out the web -- its content is also used directly in some fashion by almost all of the major search engines. </p>
<a id="Search_Engine_Optimization_Resources"></a>
<h2>Search Engine Optimization Resources</h2>
<p> While WordPress comes ready for search engines, the following are more resources and information you may want to know about preparing and maintaining your site for search engines' robots and crawlers. </p>
<a id="Meta_Tags"></a>
<h2> Meta Tags </h2>
<p> <a href="http://codex.wordpress.org/Meta_Tags_in_WordPress" title="Meta Tags in WordPress">Meta Tags</a> contain information that describes your site's purpose, description, and keywords used within your site.  The meta tags are stored within the <tt>head</tt> of your <tt>header.php</tt> template file.  By default, they are not included in WordPress, but you can manually include them and the article on <a href="http://codex.wordpress.org/Meta_Tags_in_WordPress" title="Meta Tags in WordPress">Meta Tags in WordPress</a> takes you through the process of adding meta tags to your WordPress site. </p>
<p> The WordPress <a href="http://codex.wordpress.org/Using_Custom_Fields" title="Using Custom Fields">custom fields</a> option can also be used to include keywords and descriptions for <a href="http://codex.wordpress.org/Write_Post_SubPanel" title="Write Post SubPanel">posts</a> and <a href="http://codex.wordpress.org/Pages" title="Pages">Pages</a>. There are also several WordPress Plugins that can also help you to add meta tags and keyword descriptions to your site found within the Codex's Plugins - Meta Tags list. </p>
<a id="Feed_Submissions"></a>
<h2>Feed Submissions</h2>
<p> WordPress comes built-in with various <a href="http://codex.wordpress.org/WordPress_Feeds" title="WordPress Feeds">feeds</a>, allowing your site to be viewed by various feed readers.  Many search engines are now accepting feed submissions, and there are many site which specialize in directories of feeds and feed services. </p>
<p> To submit your site's feeds, you need to know the link to the various feeds your site provides.  The article <a href="http://codex.wordpress.org/WordPress_Feeds" title="WordPress Feeds">WordPress Feeds</a> lists the various links of the feeds that come built into WordPress. </p>
<p> For information on customizing these links, see the article on <a href="http://codex.wordpress.org/Customizing_Feeds" title="Customizing Feeds">Customizing Feeds</a>. </p>
<ul>
    <li><a href="http://pingomatic.com/" class="nofollow" title="http://pingomatic.com/">Pingomatic</a><span>(<em>http://pingomatic.com/</em>)</span></li>
    <li><a href="http://feedshark.brainbliss.com/" class="nofollow" title="http://feedshark.brainbliss.com/">Feed Shark</a><span>(<em>http://feedshark.brainbliss.com/</em>)</span></li>
    <li><a href="http://www.masternewmedia.org/rss/top55/" class="nofollow" title="http://www.masternewmedia.org/rss/top55/">Robin Good's RSSTop55 - Best Blog Directory And RSS Submission Sites</a><span>(<em>http://www.masternewmedia.org/rss/top55/</em>)</span></li>
    <li><a href="http://www.aripaparo.com/archive/000632.html" class="nofollow" title="http://www.aripaparo.com/archive/000632.html">Ari Paparo's Big List of Blog Search Engines and Feed Services</a><span>(<em>http://www.aripaparo.com/archive/000632.html</em>)</span></li>
    <li><a href="http://www.instant-info-online.com/wordpress-compressed-all-inclusive-ping-list.html" class="nofollow" title="http://www.instant-info-online.com/wordpress-compressed-all-inclusive-ping-list.html">WordPress compressed all inclusive ping list</a><span>(<em>http://www.instant-info-online.com/wordpress-compressed-all-inclusive-ping-list.html</em>)</span></li>
</ul>
<a id="Technorati_Tags"></a>
<h2>Technorati Tags</h2>
<p> <a href="http://www.technorati.com/" class="nofollow" title="http://www.technorati.com/">Technorati</a><span>(<em>http://www.technorati.com/</em>)</span> is a "real-time search engine that keeps track of what is going on in the blogosphere ” the world of weblogs." According to the site, "Technorati tracks the number of links, and the perceived relevance of blogs, as well as the real-time nature of blogging. Because Technorati automatically receives notification from weblogs as soon as they are updated, it can track the thousands of updates per hour that occur in the blogosphere, and monitor the communities (who's linking to whom) underlying these conversations." </p>
<p> <a href="http://www.technorati.com/tag/" class="nofollow" title="http://www.technorati.com/tag/">Technorati tags</a><span>(<em>http://www.technorati.com/tag/</em>)</span> are used to categorize the different topics and information used by blogs.  Technorati uses WordPress categories as tags automatically.  You can add more tags<span>(<em>http://www.technorati.com/help/tags.html</em>)</span> by adding a <tt>rel="tag"</tt> to any link on your site.  For example: </p>
<pre>&lt;a href="http://wordpress.org/" rel="tag"&gt;WordPress&lt;/a&gt;
&nbsp;
&lt;a href="http://codex.wordpress.org/" rel="tag"&gt;Codex&lt;/a&gt;</pre>
<p> There are also several WordPress plugins for maximizing Technorati tags on the Plugins - Technorati list. </p>
<p> <strong>Note:</strong> In WordPress v1.5.x, Technorati will automatically recognize your category names as tags.  For more info, see: WordPress Categories, Technorati Tags and Search Engine Optimisation<span>(<em>http://www.tomrafteryit.net/wordpress-categories-technorati-tags-and-search-engine-optimisation/</em>)</span> </p>
<p> <strong>Note:</strong> For optimal Technorati listing, you should include the Atom feed in the header of your theme. For this you may use the following code, which you can add somewhere between the </p>
<pre>&lt;link rel="alternate" type="application/atom+xml"
title="Atom 0.3" href="&lt;?php bloginfo(&#039;atom_url&#039;);?&gt;" /&gt;</pre>
<p> Without adding the Atom feed to your header, your posts in Technorati will most likely be displayed wrongly. Which can result in the post content on Technorati duplicating the post title and listing other (meta) information, which is displayed between the post title and the real post content on your weblog. </p>
<a id="Permalinks"></a>
<h2> Permalinks </h2>
<p> <a href="http://codex.wordpress.org/Introduction_to_Blogging#Pretty_Permalinks" title="Introduction to Blogging">Permalinks</a> are enhancements to your existing URLs which can improve search engine optimization by presenting your post, page, and archive URLs as something like <tt>http://example.com/2003/05/23/my-cheese-sandwich/</tt> rather than <tt>http://example.com/index.php?p=423</tt>.  See <a href="http://codex.wordpress.org/Using_Permalinks" title="Using Permalinks">Using Permalinks</a> for more information. </p>
<p> As search engines use links and the <tt>title</tt> as part of their information gathering, links to posts and articles within your site gain importance with Permalinks. </p>
<p> See also: </p>
<ul>
    <li>Boost Search Engine Optimisation (SEO) using Permalinks<span>(<em>http://www.tomrafteryit.net/boost-search-engine-optimisation-seo-using-permalinks/</em>)</span></li>
    <li><a href="http://www.deanlee.cn/wordpress/permalinks-migration-plugin/" class="nofollow" title="http://www.deanlee.cn/wordpress/permalinks-migration-plugin/">Permalinks Migration Plugin</a><span>(<em>http://www.deanlee.cn/wordpress/permalinks-migration-plugin/</em>)</span>With this plugin, you can safely change your permalink structure without breaking the old links to your website.</li>
</ul>
<p> As an added bonus, enable the <a href="http://scott.yang.id.au/2005/05/permalink-redirect/" class="nofollow" title="http://scott.yang.id.au/2005/05/permalink-redirect/">Permalink Redirect plugin</a><span>(<em>http://scott.yang.id.au/2005/05/permalink-redirect/</em>)</span>.  This plugin "replies a 301 permanent redirect, if request URI is different from entry's (or archive's) permalink. It is used to ensure that there is only one URL associated with each blog entry." </p>
<a id="Sitemaps"></a>
<h2> Sitemaps </h2>
<p> A <em>sitemap</em> or "site map" is a single page listing of all the posts on your website. It is intended for your visitors to get a good overview on what your site is about and to find a blog post quickly but it also has great benefits in the search engines as a good link is always pointing to all your blog posts. By having a link to your sitemap on all your sites pages both visitors and search engines will easily get to it and find all your posts. </p>
<p> Here is a tutorial with three different examples of sitemaps with demos and how to set them up: </p>
<ul>
    <li><a href="http://www.jimwestergren.com/tutorial-automatic-sitemap-in-wordpress/" class="nofollow" title="http://www.jimwestergren.com/tutorial-automatic-sitemap-in-wordpress/">Tutorial: Automatic Sitemap for WordPress</a><span>(<em>http://www.jimwestergren.com/tutorial-automatic-sitemap-in-wordpress/</em>)</span></li>
</ul>
<a id="Google_Sitemaps"></a>
<h2> Google Sitemaps </h2>
<p> As of June 2005, Google is now accepting <strong>sitemaps</strong> of your site as part of their website submissions. Google needs to have this sitemap formatted in a special way using XML. You can find more information about Google's Sitemap Submissions<span>(<em>https://www.google.com/webmasters/sitemaps/login</em>)</span> from Google, and the discussion on the <a href="http://www.wordpress.org/support" class="nofollow" title="http://www.wordpress.org/support">WordPress Forum</a><span>(<em>http://www.wordpress.org/support</em>)</span> about <a href="http://wordpress.org/support/topic/35465" class="nofollow" title="http://wordpress.org/support/topic/35465">WordPress and Google Site maps</a><span>(<em>http://wordpress.org/support/topic/35465</em>)</span>. </p>
<p> Some utilities have been created to help the WordPress user to create a Google site map of their site for submission to Google.  For more information on these and Google sitemaps: </p>
<ul>
    <li><a href="http://sitemaps.blogspot.com/" class="nofollow" title="http://sitemaps.blogspot.com/">Inside Google Sitemaps (Official Google Blog)</a><span>(<em>http://sitemaps.blogspot.com/</em>)</span></li>
    <li><a href="http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final" class="nofollow" title="http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final">Google Sitemap Generator Plugin for WordPress</a><span>(<em>http://www.arnebrachhold.de/2005/06/05/google-sitemaps-generator-v2-final</em>)</span></li>
    <li><a href="http://blog.leion.net/2006/06/02/adding-human-readable-google-sitemap/" class="nofollow" title="http://blog.leion.net/2006/06/02/adding-human-readable-google-sitemap/">Make your sitemap human readable</a><span>(<em>http://blog.leion.net/2006/06/02/adding-human-readable-google-sitemap/</em>)</span></li>
    <li>Simple Sitemap Generator<span>(<em>http://andreasjuch.mywol.org/mediawiki/Google_Sitemap_Generator_for_WordPress</em>)</span></li>
    <li><a href="http://www.dicontas.co.uk/blog/google-sitemap-utw-tag-wordpress-plugin/" class="nofollow" title="http://www.dicontas.co.uk/blog/google-sitemap-utw-tag-wordpress-plugin/">Google Sitemaps - UltimateTagWarrior Tag Plugin Addon</a><span>(<em>http://www.dicontas.co.uk/blog/google-sitemap-utw-tag-wordpress-plugin/</em>)</span></li>
</ul>
<a id="Link_Relationships"></a>
<h2>Link Relationships</h2>
<p> There is some debate over whether listing the link relations actually effect search engine ranking however it is simple to implement. </p>
<ul>
    <li><a href="http://www.w3.org/TR/REC-html40/struct/links.html#h-12.1.2" class="nofollow" title="http://www.w3.org/TR/REC-html40/struct/links.html#h-12.1.2">W3</a><span>(<em>http://www.w3.org/TR/REC-html40/struct/links.html#h-12.1.2</em>)</span></li>
    <li>Linkrel Plugin<span>(<em>http://xmouse.ithium.net/essays/linkrels-another-wordpress-plugin/</em>)</span></li>
    <li>rel Plugin<span>(<em>http://boxofchocolates.ca/archives/2004/06/12/link-relationship-plugin-for-wordpressLink</em>)</span></li>
    <li>Theme Code<span>(<em>http://blog.noontide.ca/2006/03/29/wordpress-link-rel-next-prev-index/</em>)</span></li>
</ul>
<a id="More_Resources_and_Tutorials"></a>
<h2> More Resources and Tutorials </h2>
<p> There is a lot to learn about search engine optimization and site submission.  Here are just a few sites to help you learn more about how this works: </p>
<ul>
    <li><a href="http://codex.wordpress.org/WordPress_Lessons#Website_Development" title="WordPress Lessons">More WordPress Codex Articles on Website Development</a></li>
    <li><a href="http://www.searchtools.com/robots/" class="nofollow" title="http://www.searchtools.com/robots/">All About Search Indexing Robots and Spiders</a><span>(<em>http://www.searchtools.com/robots/</em>)</span></li>
    <li>Boost Search Engine Optimization (SEO) Using Permalinks<span>(<em>http://www.tomrafteryit.net/boost-search-engine-optimisation-seo-using-permalinks/</em>)</span></li>
    <li>Effectively Marketing Business Blogs<span>(<em>http://www.tomrafteryit.net/effectively-marketing-business-blogs/</em>)</span></li>
    <li><a href="http://www.cameraontheroad.com/index.php?p=193" class="nofollow" title="http://www.cameraontheroad.com/index.php?p=193">Getting Ready for Search Engine Submissions</a><span>(<em>http://www.cameraontheroad.com/index.php?p=193</em>)</span></li>
    <li><a href="http://www.cameraontheroad.com/index.php?p=168" class="nofollow" title="http://www.cameraontheroad.com/index.php?p=168">Preparation for Website Search Engine Submissions</a><span>(<em>http://www.cameraontheroad.com/index.php?p=168</em>)</span></li>
    <li>Search Engine Optimization - Step 1. Identification of Aims<span>(<em>http://www.tomrafteryit.net/search-engine-optimisation-step-1-identification-of-aims/</em>)</span></li>
    <li>Search Engine Optimization - Step 2. Benchmarking<span>(<em>http://www.tomrafteryit.net/search-engine-optimisation-step-2-benchmarking/</em>)</span></li>
    <li>Search Engine Optimization - Step 3. Keyword and Keyphrase Research<span>(<em>http://www.tomrafteryit.net/search-engine-optimisation-step-3-keyword-and-keyphrase-research/</em>)</span></li>
    <li><a href="http://www.jafsoft.com/searchengines/webbots.html" class="nofollow" title="http://www.jafsoft.com/searchengines/webbots.html">Search Engine Robots that Search Your Site </a><span>(<em>http://www.jafsoft.com/searchengines/webbots.html</em>)</span></li>
    <li>Search Engine Test-Webpage Spider and Crawler Test<span>(<em>http://www.0email.net/</em>)</span></li>
    <li><a href="http://www.searchenginewatch.com" class="nofollow" title="http://www.searchenginewatch.com">Search Engine Watch</a><span>(<em>http://www.searchenginewatch.com</em>)</span></li>
    <li><a href="http://searchenginewatch.com/webmasters/" class="nofollow" title="http://searchenginewatch.com/webmasters/index.php">Search Engine Watch Site Submission Tips and Tricks</a><span>(<em>http://searchenginewatch.com/webmasters/index.php</em>)</span></li>
    <li><a href="http://searchenginewatch.com/resources/article.php/2156511" class="nofollow" title="http://searchenginewatch.com/resources/article.php/2156511">Search Engine Watch's Tips and Articles on Optimization</a><span>(<em>http://searchenginewatch.com/resources/article.php/2156511</em>)</span></li>
    <li><a href="http://daphne.palomar.edu/TGSEARCH/" class="nofollow" title="http://daphne.palomar.edu/TGSEARCH/">How to Search the Web - Understanding How People Search</a><span>(<em>http://daphne.palomar.edu/TGSEARCH/</em>)</span></li>
    <li><a href="http://www.clickz.com/search/results/article.php/3291021" class="nofollow" title="http://www.clickz.com/search/results/article.php/3291021">Understanding Search Results Pages</a><span>(<em>http://www.clickz.com/search/results/article.php/3291021</em>)</span></li>
    <li><a href="http://www.cameraontheroad.com/index.php?p=204" class="nofollow" title="http://www.cameraontheroad.com/index.php?p=204">Website Development Step-by-Step</a><span>(<em>http://www.cameraontheroad.com/index.php?p=204</em>)</span></li>
    <li>Why is Search Engine Optimization Important?<span>(<em>http://www.tomrafteryit.net/why-is-search-engine-optimisation-important/</em>)</span></li>
    <li>WordPress Categories, Technorati Tags, and Search Engine Optimization<span>(<em>http://www.tomrafteryit.net/wordpress-categories-technorati-tags-and-search-engine-optimisation/</em>)</span></li>
    <li><a href="http://seo.blorc.com/seo/wordpress-seo-first-steps/" class="nofollow" title="http://seo.blorc.com/seo/wordpress-seo-first-steps/">WordPress SEO: First Steps</a><span>(<em>http://seo.blorc.com/seo/wordpress-seo-first-steps/</em>)</span></li>
    <li><a href="http://www.jimwestergren.com/seo-for-wordpress-blogs/" class="nofollow" title="http://www.jimwestergren.com/seo-for-wordpress-blogs/">SEO for WordPress Blogs </a><span>(<em>http://www.jimwestergren.com/seo-for-wordpress-blogs/</em>)</span></li>
    <li><a href="http://www.geek-notes.com/wordpress/25/optimize-wordpress-for-search-engines/" class="nofollow" title="http://www.geek-notes.com/wordpress/25/optimize-wordpress-for-search-engines/">How to Optimize WordPress for Search Engines (complete guide)</a><span>(<em>http://www.geek-notes.com/wordpress/25/optimize-wordpress-for-search-engines/</em>)</span></li>
    <li><a href="http://www.akamarketing.com/blog/30-wordpress-search-engine-optimization-without-code-modification.html" class="nofollow" title="http://www.akamarketing.com/blog/30-wordpress-search-engine-optimization-without-code-modification.html">WordPress search engine optimization without code modification</a><span>(<em>http://www.akamarketing.com/blog/30-wordpress-search-engine-optimization-without-code-modification.html</em>)</span></li>
    <li><a href="http://www.akamarketing.com/blog/31-using-wordpress-conditionals-for-search-engine-optimisation-purposes.html" class="nofollow" title="http://www.akamarketing.com/blog/31-using-wordpress-conditionals-for-search-engine-optimisation-purposes.html">Using WordPress conditionals for search engine optimisation purposes</a><span>(<em>http://www.akamarketing.com/blog/31-using-wordpress-conditionals-for-search-engine-optimisation-purposes.html</em>)</span></li>
    <li><a href="http://www.dicontas.co.uk/blog/google-to-yahoo-msn-sitemaps-creator-tool-page/" class="nofollow" title="http://www.dicontas.co.uk/blog/google-to-yahoo-msn-sitemaps-creator-tool-page/">Google to Yahoo MSN Sitemaps Creator Tool</a></li>
</ul><p><a href="http://www.askapache.com/wordpress/seo-in-wordpress.html"></a><a href="http://www.askapache.com/wordpress/seo-in-wordpress.html">SEO in WordPress</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/wordpress/seo-in-wordpress.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Running a Reverse Proxy in Apache</title>
		<link>http://www.askapache.com/hosting/reverse-proxy-apache.html</link>
		<comments>http://www.askapache.com/hosting/reverse-proxy-apache.html#comments</comments>
		<pubDate>Wed, 03 Jan 2007 09:48:45 +0000</pubDate>
		<dc:creator>AskApache</dc:creator>
				<category><![CDATA[Hosting]]></category>

		<guid isPermaLink="false">http://www.askapache.com.com/htaccess/56.html</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.askapache.com/hosting/reverse-proxy-apache.html"></a><a href="http://www.askapache.com/hosting/reverse-proxy-apache.html"><cite>AskApache.com</cite></a></p><p> In 2003, Nick Kew released a new module that complements Apache's
mod_proxy and is essential for reverse-proxying. Since then he gets
regular questions and requests for help on proxying with Apache. In
this article he attempts to give a comprehensive overview of the
proxying and mod_proxy_html </p>
<hr />

<p> This article was originally published at ApacheWeek in January 2004,
and moved to ApacheTutor with minor updates in October 2006. </p>
<h2>Web Proxies</h2>
<p> A proxy server is a gateway for users to the Web at large. Users
configure the proxy in their browser settings, and all HTTP requests
are routed via the proxy. Proxies are typically operated by ISPs and
network administrators, and serve several purposes: for example, </p>
<ul>
    <li>to speed access to the Web by caching pages fetched, so that
        popular pages don't have to be re-fetched for every user who views
        them.</li>
    <li>to enable controlled access to the web for users behind a
        firewall.</li>
    <li>to filter or transform web content.</li>
</ul>
<h2>Reverse Proxies</h2>
<p> A reverse proxy is a gateway for servers, and enables one web server
to provide content from another transparently. As with a standard
proxy, a reverse proxy may serve to improve performance of the web by
caching; this is a simple way to mirror a website. But the most common
reason to run a reverse proxy is to enable controlled access from the
Web at large to servers behind a firewall. </p>
<p> The proxied server may be a webserver itself, or it may be an
application server using a different protocol, or an application
server with just rudimentary HTTP that needs to be shielded from
the web at large.  Since 2004, reverse proxying has been the preferred
method of deploying JAVA/Tomcat applications on the Web, replacing
the old mod_jk (itself a special-purpose reverse proxy module). </p>
<h2>Proxying with Apache</h2>
<p> The standard Apache module mod_proxy supports both types of proxy
operation. Under Apache 1.x, mod_proxy only supported HTTP/1.0, but
from Apache 2.0, it supports HTTP/1.1. This distinction is
particularly important in a proxy, because one of the most significant
changes between the two protocol versions is that HTTP/1.1 introduces
rich new cache control mechanisms. </p>
<p> This article deals with running a reverse proxy with Apache 2. Users
of earlier versions of Apache are encouraged to upgrade and take
advantage of the altogether richer architecture and improved
application support. At the time of writing, the reason most commonly
cited for not upgrading is difficulties running PHP on Apache 2. I
cannot speak from personal experience, but several well-informed
sources tell me the difficulty lies with non-thread-safe code in PHP,
and that it works well with Apache 2 if it is built with the
non-threaded Prefork MPM. </p>
<h3>The Apache Proxy Modules</h3>
<p> So far, we have spoken loosely of mod_proxy. However, it's a little
more complicated than that. In keeping with Apache's modular
architecture, mod_proxy is itself modular, and a typical proxy server
will need to enable several modules. Those relevant to proxying and
this article include: </p>
<ul>
    <li>mod_proxy: The core module deals with proxy infrastructure and
        configuration and managing a proxy request.</li>
    <li>mod_proxy_http: This handles fetching documents with HTTP and
        HTTPS.</li>
    <li>mod_proxy_ftp: This handles fetching documents with FTP.</li>
    <li>mod_proxy_connect: This handles the CONNECT method for secure
        (SSL) tunneling.</li>
    <li>mod_proxy_ajp: This handles the AJP protocol for Tomcat
        and similar backend servers.</li>
    <li>mod_proxy_balancer implements clustering and load-balancing
        over multiple backends.</li>
    <li>mod_cache, mod_disk_cache, mod_mem_cache: These deal with managing
        a document cache. To enable caching requires mod_cache and one or
        both of disk_cache and mem_cache.</li>
    <li>mod_proxy_html: This rewrites HTML links into a proxy's address
        space.</li>
    <li>mod_headers: This modifies HTTP request and response headers.</li>
    <li>mod_deflate: Negotiates compression with clients and backends.</li>
</ul>
<p> Having mentioned the modules, I'm going to ignore caching for the
remainder of this article. You may want to add it if you are concerned
about the load on your network or origin servers, but the details are
outside the scope of this article.  I'm also going to ignore all
non-HTTP protocols, and load balancing. </p>
<h3>Building Apache for Proxying</h3>
<p> With the exception of mod_proxy_html, the above are all included in
the core Apache distribution. They can easily be enabled in the Apache
build process. For example: </p>
<pre>$ ./configure --enable-so --enable-mods-shared="proxy \
proxy_http proxy_ftp proxy_connect headers"
$ make
# make install</pre>
<p> Of course, you may want other build options too, and you could just as
well build the modules as static. </p>
<p> If you are adding proxying to an existing installation, you should use
apxs instead: </p>
<pre># apxs -c -i [module-name].c
noting that mod_proxy itself is in two source files
(mod_proxy.c and proxy_util.c).</pre>
<p> This leaves mod_proxy_html, which is not included in the core
distribution. mod_proxy_html is a third-party module, and requires a
third-party library libxml2. At the time of writing, libxml2 is
installed as standard or packaged for most operating systems. If you
don't have it, you can download it from xmlsoft.org and install it
yourself. For the purposes of this article, we'll assume libxml2 is
installed as /usr/lib/libxml2.so, with headers in
/usr/include/libxml2/libxml/. </p>
<ol>
    <li>Check libxml2 is installed. If you have a version older than
        2.5.10, then upgrade - there's a bug in earlier versions that can,
        in some particular cases, severely affect performance.</li>
    <li>Download mod_proxy_html.c from http://apache.webthing.com/</li>
    <li>Build mod_proxy_html with apxs:</li>
</ol>
<pre># apxs -c -I/usr/include/libxml2 -i mod_proxy_html.c</pre>
<h2>A Reverse Proxy Scenario</h2>
<p> Company example.com has a website at www.example.com, which has a
public IP address and DNS entry, and can be accessed from anywhere
on the Internet. </p>
<p> The company also has a couple of application servers which have
private IP addresses and unregistered DNS entries, and are inside the
firewall. The application servers are visible within the network -
including the webserver, as "internal1.example.com" and
"internal2.example.com", But because they have no public DNS entries,
anyone looking at internal1.example.com from outside the company
network will get a "no such host" error. </p>
<p> A decision is taken to enable Web access to the application servers.
But they should not be exposed to the Internet directly, instead they
should be integrated with the webserver, so that
http://www.example.com/app1/any-path-here is mapped internally to
http://internal1.example.com/any-path-here and
http://www.example.com/app2/other-path-here is mapped internally to
http://internal2.example.com/other-path-here. This is a typical
reverse-proxy situation. </p>
<h3>Configuring the Proxy</h3>
<p> As with any modules, the first thing to do is to load them in
httpd.conf (this is not necessary if we build them statically into
Apache). </p>
<pre>LoadModule  proxy_module         modules/mod_proxy.so
LoadModule  proxy_http_module    modules/mod_proxy_http.so
#LoadModule proxy_ftp_module     modules/mod_proxy_ftp.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule  headers_module       modules/mod_headers.so
LoadModule  deflate_module       modules/mod_deflate.so
LoadFile    /usr/lib/libxml2.so
LoadModule  proxy_html_module    modules/mod_proxy_html.so</pre>
<p> For windows users this is slightly different: you'll need to load
libxml2.dll rather than libxml2.so, and you'll probably need to
load iconv.dll and xlib.dll as prerequisites to libxml2 (you
can download them from zlatkovic.com, the same site that
maintains windows binaries of libxml2). The LoadFile directive is the same. </p>
<p> Of course, you may not need all the modules. Two that are not required
in our typical scenario are shown commented out above. </p>
<p> Having loaded the modules, we can now configure the Proxy. But before
doing so, we have an important security warning: </p>
<p> Do Not set "ProxyRequests On". Setting ProxyRequests On turns your
server into an Open Proxy. There are 'bots scanning the Web for open
proxies. When they find you, they'll start using you to route around
blocks and filters to access questionable or illegal material. At
worst, they might be able to route email spam through your proxy. Your
legitimate traffic will be swamped, and you'll find your server
getting blocked by things like family filters. </p>
<p> Of course, you may also want to run a forward proxy with
appropriate security measures, but that lies outside the scope of this
article. The author runs both forward and reverse proxies on the same
server (but under different Virtual Hosts). </p>
<p> The fundamental configuration directive to set up a reverse proxy is
ProxyPass. We use it to set up proxy rules for each of the application
servers: </p>
<pre>ProxyPass       /app1/  http://internal1.example.com/
ProxyPass       /app2/  http://internal2.example.com/</pre>
<p> Now as soon as Apache re-reads the configuration (the recommended way
to do this is with "apachectl graceful"), proxy requests will work, so
http://www.example.com/app1/some-path maps to
http://internal1.example.com/some-path as required. </p>
<p> However, this is not the whole story. ProxyPass just sends traffic
straight through. So when the application servers generate references
to themselves (or to other internal addresses), they will be passed
straight through to the outside world, where they won't work. </p>
<p> For example, an HTTP redirection often takes place when a user (or
author) forgets a trailing slash in a URL. So the response to a
request for http://www.example.com/app1/foo proxies to
http://internal.example.com/foo which generates a response: </p>
<pre>HTTP/1.1 302 Found
Location: http://internal.example.com/foo/
(etc)</pre>
<p> But from the outside world, the net effect of this is a "No such host"
error. The proxy needs to re-map the Location header to its own
address space and return a valid URL </p>
<pre>HTTP/1.1 302 Found
Location: http://www.example.com/app1/foo/</pre>
<p> The command to enable such rewrites in the HTTP Headers is
ProxyPassReverse. The Apache documentation suggests the form: </p>
<pre>
ProxyPassReverse /app1/ http://internal1.example.com/
ProxyPassReverse /app2/ http://internal2.example.com/</pre>
<p> However, there is a slightly more complex alternative form that I
recommend as more robust: </p>
<pre>&lt;location /app1/&gt;
ProxyPassReverse /
&lt;/location&gt;
&lt;location /app2/&gt;
ProxyPassReverse /
&lt;/location&gt;</pre>

<p> The reason for recommending this is that a problem arises with some
application servers. Suppose for example we have a redirect: </p>
<pre>HTTP/1.1 302 Found
Location: /some/path/to/file.html</pre>
<p> This is a violation of the HTTP protocol and so should never happen:
HTTP only permits full URLs in Location headers. However, it is also a
source of much confusion, not least because the CGI spec has a similar
Location header with different semantics where relative paths are
allowed. There are a lot of broken servers out there! In this
instance, the first form of ProxyPassReverse will return the incorrect
response </p>
<pre>HTTP/1.1 302 Found
Location: /some/path/to/file.html</pre>
<p> which, even allowing for error-correcting browsers, is outside the
Proxy's address space and won't work. The second form fixes this to </p>
<pre>HTTP/1.1 302 Found
Location: /app2/some/path/to/file.html</pre>
<p> which is still broken, but will at least work in error-correcting
browsers. Most browsers will deal with this. </p>
<p> If your backend server uses cookies, you may also need the
ProxyPassReverseCookiePath and ProxyPassReverseCookieDomain
directives. These are similar to ProxyPassReverse, but deal with the
different form of cookie headers.  These require mod_proxy from
Apache 2.2 (recommended), or a patched version of 2.0. </p>
<h2>Fixing HTML Links</h2>
<p> As we have seen, ProxyPassReverse remaps URLs in the HTTP headers to
ensure they work from outside the company network. There is, however,
a separate problem when links appear in HTML pages served. Consider
the following cases: </p>
<ol>
    <li>This link will be resolved by the browser
        and will work correctly.</li>
    <li>This link will be resolved by the
        browser to http://www.example.com/otherfile.html, which is
        incorrect.</li>
    <li>This link will resolve to
        "no such host" for the browser.</li>
</ol>
<p> The same problem of course applies to included content such as images,
stylesheets, scripts or applets, and other contexts where URLs occur
in HTML. </p>
<p> To fix this requires us to parse the HTML and rewrite the links. This
is the purpose of mod_proxy_html. It works as an output filter,
parsing the HTML and rewriting links as it is served. Two
configuration directives are required to set it up: </p>
<ul>
    <li>SetOutputFilter proxy-html This simply inserts the filter, to
        enable ProxyHTMLURLMap</li>
    <li>ProxyHTMLURLMap from-pattern to-pattern [flags] In its basic form,
        this has a similar purpose and semantics to ProxyPassReverse.
        Additionally, an extended form is available to enable
        search-and-replace rewriting of URLs within Scripts and
        Stylesheets.</li>
</ul>
<h3>How it works</h3>
<p> mod_proxy_html is based on a SAX parser: specifically the HTMLparser
module from libxml2 running in SAX mode (any other parse mode would of
course be very much slower, especially for larger documents). It has
full knowledge of all URI attributes that can occur in HTML 4 and
XHTML 1. Whenever a URL is encountered, it is matched against
applicable ProxyHTMLURLMap directives. If it starts with any
from-pattern, that will be rewritten to the to-pattern. Rules are
applied in the reverse order to their appearance in httpd.conf, and
matching stops as soon as a match is found. </p>
<p> Here's how we set up a reverse proxy for HTML. Firstly, full links to
the internal servers should be rewritten regardless of where they
arise, so we have: </p>
<pre>ProxyHTMLURLMap http://internal1.example.com /app1
ProxyHTMLURLMap http://internal2.example.com /app2</pre>
<p> Note that in this instance we omitted the "trailing" slash. Since the
matching logic is starts-with, we use the minimal matching pattern. We
have now globally fixed case 3 above. </p>
<p> Case 2 above requires a little more care. Because the link doesn't
include the hostname, the rewrite rule must be context-sensitive. As
with ProxyPassReverse above, we deal with that using
<code>&lt;location&gt;</code>
</p>
<pre>&lt;location /app1/&gt;
ProxyHTMLURLMap / /app1/
&lt;/location&gt;
&lt;location /app2/&gt;
ProxyHTMLURLMap / /app2/
&lt;/location&gt;</pre>
<h3>Debugging your Proxy Configuration</h3>
<p> The above is a simple case taken from mod_proxy_html version 1. With
the more complex URLmapping and rewriting enabled by Version 2, you
may need a bit of help setting up a complex ruleset, perhaps involving
a series of complex regexps, chained anc blocking rules, etc. To help
with setting up and troubleshooting your rulesets, mod_proxy_html 2
provides a "debug" mode, in which all the 'interesting' things it does
are written to the Apache error log. To analyse and fix your rulesets,
set </p>
<pre>ProxyHTMLLogVerbose On
LogLevel Info   (or LogLevel Debug)</pre>
<p> Now run your testcases through your rulesets, and examine the apache
error log for details of exactly how it was processed. </p>
<p> Do not leave ProxyHTMLLogVerbose On for normal use. Although the
effect is marginal, it is an overhead. </p>
<h3>Extended URL Mapping</h3>
<p> The previous section sets up remapping of HTML URLs, but leaves any
URL encountered in a Stylesheet or Script untouched. mod_proxy_html
doesn't parse Javascript or CSS, so dealing with URLs in them requires
text-based search-and-replace. This is enabled by the directive
ProxyHTMLExtended On. </p>
<p> Because the extended mode is text-based, it can no longer guarantee to
match exact URLs. It's up to you to devise matching rules that can
pick out URLs, just as if you were writing an old-fashioned Perl or
PHP regexp-based filter (though of course it's still massively more
efficient than performing search-and-replace on an entire document
in-memory). To help with this, ProxyHTMLExtended supports both simple
text-based and regular expression search-and-replace, according to the
flags. You can also use the flags to specify rules separately for HTML
links, scripting events, and embedded scripts and stylesheets. </p>
<p> A second key consideration with extended URL mapping is that whereas
an HTML link contains exactly one URL, a script or stylesheet may
contain many. So instead of stopping after a successful match, the
processor will apply all applicable mapping rules. This can be stopped
with the L (last) flag. </p>
<h3>Dealing with multimedia content</h3>
<p> We just set up a proxy to parse and where necessary correct HTML. But
of course, the web isn't just HTML. Surely feeding non-HTML content
through an HTML parser is at best inefficient, if not totally broken? </p>
<p> Yes indeed. mod_proxy_html deals with that by checking the
Content-Type header, and removing itself from the processing chain
when a document is not HTML (text/html) or XHTML
(application/xhtml+xml). This happens in the filter initialisation
phase, before any data are processed by the filter. </p>
<p> But that still leaves a problem. Consider compressed HTML: </p>
<pre>Content-Type: text/html
Content-Encoding: gzip</pre>
<p> Feeding that into an HTML parser is clearly broken! </p>
<p> There are two solutions to this. One is to uncompress the incoming
data with mod_deflate.
Uncompressing and compressing content radically reduces network
traffic, but increases the processor load on the proxy.  It is
worthwhile if and only if bandwidth between the proxy and the
backend is at a premium: this is common on the 'net at large,
but unlikely to be the case on a company internal network. </p>
<pre>SetOutputFilter  INFLATE;proxy-html;DEFLATE</pre>
<p> The alternative solution is to refuse to support
compression. Stripping any Accept-Encoding request header does the
job. So invoking mod_headers, we add a directive </p>
<pre>RequestHeader unset Accept-Encoding</pre>
<p> This should only apply to the Proxy, so we put it inside our <code>&lt;location&gt;</code> containers. </p>
<p> A similar situation arises in the case of encrypted (https) content.
But in this case, there is no such workaround: if we could decrypt the
data to process it then so could any other man-in-the-middle, and the
security would be worthless. This can only be circumvented by
installing mod_ssl and a certificate on the proxy, so that the actual
secure session is between the browser and the proxy, not the origin
server. </p>
<h2>The Complete Configuration</h2>
<p> We are now in a position to write a complete configuration for our
reverse proxy. Here is a bare minimum, that ignores extended
urlmapping: </p>
<pre>LoadModule proxy_module      modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule headers_module    modules/mod_headers.so
LoadFile   /usr/lib/libxml2.so
LoadModule proxy_html_module modules/mod_proxy_html.so
&nbsp;
ProxyRequests off
ProxyPass /app1/ http://internal1.example.com/
ProxyPass /app2/ http://internal2.example.com/
ProxyHTMLURLMap http://internal1.example.com /app1
ProxyHTMLURLMap http://internal2.example.com /app2
&nbsp;
&lt;location /app1/&gt;
ProxyPassReverse /
SetOutputFilter  proxy-html
ProxyHTMLURLMap  /      /app1/
ProxyHTMLURLMap  /app1  /app1
RequestHeader    unset  Accept-Encoding
&lt;/location&gt;
&nbsp;
&lt;location /app2/&gt;
ProxyPassReverse /
SetOutputFilter proxy-html
ProxyHTMLURLMap /       /app2/
ProxyHTMLURLMap /app2   /app2
RequestHeader   unset   Accept-Encoding
&lt;/location&gt;</pre>
<p> Of course, there's more than one way to do it. Our configuration would
actually have been simpler if we'd used Virtual Hosts for each
application server. But that takes you beyond the realm of Apache
configuration and into DNS. If you don't fully understand that (or if
you think "why can't I see my domain" is a webserver question), then
please don't try using virtual hosts for this. </p>
<h2>Further topics</h2>
<h4>Caching</h4>
<p> We haven't dealt with caching in this article. In a company-intranet
situation, the connection from the proxy to the application servers is
the local LAN, which is probably fast and has ample capacity. In such
cases, caching at the proxy will have little effect, and can probably
be omitted. </p>
<p> If we want to cache pages, we can of course do so with mod_cache But
that is beyond the scope of this article. </p>
<h4>Content Transformation</h4>
<p> Another powerful use for a proxy is to transform the content
on-the-fly according to the user's preferences. This author's flagship
mod_accessibility product (from which mod_proxy_html is a spinoff)
serves to transform HTML and XHTML on-demand to enhance usability and
accessibility. </p>
<h4>Filtering and Security</h4>
<p> A reverse proxy is not the natural place for a "family filter", but is
ideal for defining access controls and imposing security restrictions.
We could, for example, configure the proxy to recognise a custom
header from an origin server and block content based on it. This
delegates control to the application servers. </p>


<h2>Questions and Answers</h2>
<dl>
<dt>(Q) Where can I get the software?</dt>
<dd>(A) Most of it from the obvious place,
    http://httpd.apache.org/ mod_proxy_html is available from
    http://apache.webthing.com/ libxml2 is available from
    http://xmlsoft.org/. Windows users should read libxml2.dll
    for libxml2.so, and can obtain it together with the
    prerequisites iconv.dll and zlib.dll from Igor Zlatkovic's site.</dd>
<dt>(Q) Can I get a binaries of software ?</dt>
<dd>(A) If there's no link at the websites above, ask the provider
    of your operating system or distribution. The author can
    compile it on different platforms but does not provide a free
    compilation service.</dd>
<dt>(Q) What is httpd.conf? My apache has different configuration files.</dt>
<dd>(A) Some distribution packagers mess about with the Apache
    configuration. If this applies to you, the details should be
    documented by your distributor, and have nothing to do with
    Apache itself! Substitute your distributions choice of
    configuration file for httpd.conf in the above discussion, or
    create your own proxy.conf file and Include it.</dd>
<dt>(Q) You mentioned apxs and apachectl. Where do I find them?</dt>
<dd>(A) They're part of a standard Apache installation (except on
    Windows). If you don't have them or can't find them, that's a
    problem with your installation. The easiest solution is
    probably to download a complete Apache from
    httpd.apache.org.</dd>
<dt>(Q) Does mod_proxy_html deal with Javascript links?</dt>
<dd>(A) From mod_proxy_html 2.0, yes!</dd>
<dt>(Q) The proxy appears to change my HTML?</dt>
<dd><p>(A) It doesn't really, but it may appear to. Here are the possible causes:</p>
    <ol>
    <li>
        <p>Changing the FPI (the  <code>&lt;!DOCTYPE ...&gt;</code> line) may affect some browsers. FIX: set the doctype explicitly if this bothers you.</p>
    </li>
    <li>
        <p>mod_proxy_html has the side-effect of transforming content to
        utf-8 (Unicode) encoding. This should not be a problem: utf-8
        is well-supported by browsers, and offers comprehensive
        support for internationalisation. If it appears to cause a
        problem, that's almost certainly a bug in the application
        server, or possibly a misconfigured browser. FIX: filter
        through mod_charset_lite to your chosen charset.</p>
    </li>
    <li>
        <p>mod_proxy_html will perform some minor normalisations. If
        your HTML includes elements that are closed implicitly, it
        will explicitly close them. In other words:</p>
<pre>&lt;body&gt;
&lt;p&gt;Hello, World!
&lt;/body&gt;</pre>
<p>will be transformed to</p>
<pre>&lt;body&gt;
&lt;p&gt;Hello, World!&lt;/p&gt;
&lt;body&gt;</pre>
<p> If this affects the rendition in your browser, it almost
certainly means you are using malformed HTML and relying on
error-correction in a browser. FIX: validate your HTML! The
online Page Valet service will both validate and show your
markup normalised by the DTD, while a companion tool
AccessValet will show markup normalised by the same parser
used in the proxy, and highlight other problems. Both are
available at http://valet.webthing.com/</p>
</li>
</ol>
</dd>
<dt>(Q) I need a customised solution.</dt>
<dd>(A) The author is available for development and consultancy.</dd>
</dl><p><a href="http://www.askapache.com/hosting/reverse-proxy-apache.html"></a><a href="http://www.askapache.com/hosting/reverse-proxy-apache.html">Running a Reverse Proxy in Apache</a> originally appeared on <cite>AskApache.com</cite> </p>]]></content:encoded>
			<wfw:commentRss>http://www.askapache.com/hosting/reverse-proxy-apache.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

