<?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>Rafael Marin &#187; HTTP</title>
	<atom:link href="http://rafaelmarin.com.br/category/http/feed/" rel="self" type="application/rss+xml" />
	<link>http://rafaelmarin.com.br</link>
	<description>User experience designer, user interface designer, ux, ui</description>
	<lastBuildDate>Sun, 10 Jan 2010 17:07:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Faça seu site funcionar sem WWW</title>
		<link>http://rafaelmarin.com.br/faca-seu-site-funcionar-sem-www/</link>
		<comments>http://rafaelmarin.com.br/faca-seu-site-funcionar-sem-www/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 00:57:50 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[HTTP]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/faca-seu-site-funcionar-sem-www/</guid>
		<description><![CDATA[[update] O Emanuel fez uma consideração importantíssima: se o servidor/DNS não está preparado a receber determinado site sem o www, o endereço será visto como inválido e, logo, não funciona a solução abaixo. Alguém tem uma solução, ou sabe a origem exata dessa questão de alguns sites funcionarem sem o prefixo e outros não? O Emanuel começou um post muito interessante, defendendo a não utilização de www no início dos endereços. E ele está certíssimo. Quer um bom motivo? Por padrão, os browsers atuais já reconhecem o protocolo HTTP como o padrão. Isso quer dizer que quando o browser faz a requisição ao servidor, já inclui o http://, e o www é apenas um subdomínio, indicando redundantemente o propósito da [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[update] </strong>O Emanuel fez uma consideração importantíssima: se o servidor/DNS não está preparado a receber determinado site sem o <em>www</em>, o endereço será visto como inválido e, logo, não funciona a solução abaixo. Alguém tem uma solução, ou sabe a origem exata dessa questão de alguns sites funcionarem sem o prefixo e outros não?</p>
<p>O <a href="http://emanuelfelipe.net/blog/no-me-faa-digitar-www/" rel="external">Emanuel</a> começou um post muito interessante, defendendo a <strong>não utilização de <em>www</em></strong> no início dos endereços. E ele está certíssimo. Quer um bom motivo?</p>
<p>Por padrão, os browsers atuais já reconhecem o protocolo HTTP como o padrão. Isso quer dizer que quando o browser faz a requisição ao servidor, já inclui o <samp>http://</samp>, e o <em>www</em> é apenas um subdomínio, indicando redundantemente o propósito da requisição.  Seria o mesmo que incluir um subdomínio em um endereço de e-mail como <em>rafael@mail.rafaelmarin.net</em>.</p>
<p>Digitar, então, o <em>www</em> no início é apenas uma perda de tempo. Muitos sites funcionam sem que o <em>www</em> seja digitado, mas outros ainda são inacessíveis sem este prefixo. O Emanuel preferiu não trazer nenhuma solução prática para resolver este problema. Mas eu trouxe.</p>
<h2>Ora bolas, o que fazer?</h2>
<p>O objetivo é criar um redirecionamento, onde sites digitados sem <em>www</em> funcionem da mesma maneira. Em geral, alguns servidores permitem isso automaticamente (teste o seu).  Caso não funcione, no seu arquivo <em>.htaccess</em>, acrescente as seguintes linhas de código:</p>
<p><code>RewriteEngine On</code></p>
<p><code>RewriteCond %{HTTP_HOST} ^www\.dominio\.com$ [NC]</code></p>
<p><code>RewriteRule ^(.*)$ http://dominio.com/$1 [R=301,L]</code></p>
<p>Não esqueça de que o <em>mod_rewrite</em> deve estar habilitado para que esta alteração faça efeito.</p>
<p>Se temos direito de ir e vir, por que não teríamos o de escolher entre digitar <em>www</em> ou não? É pura perda de tempo. Ah, e existe até o site <a href="http://no-www.org/" rel="external">No-WWW</a>, que valida seu site e sustenta uma campanha contra o uso do <em>www</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/faca-seu-site-funcionar-sem-www/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Negociação de conteúdo</title>
		<link>http://rafaelmarin.com.br/negociacao-de-conteudo/</link>
		<comments>http://rafaelmarin.com.br/negociacao-de-conteudo/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 22:10:28 +0000</pubDate>
		<dc:creator>Rafael Marin</dc:creator>
				<category><![CDATA[HTTP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XHTML & HTML]]></category>

		<guid isPermaLink="false">http://rafaelmarin.com.br/2007/04/03/negociacao-de-conteudo/</guid>
		<description><![CDATA[Embora o XHTML devesse ser servido com o MIME application/xhtml-xml, nem todos os browsers estão aptos a entender este MIME Type. Neste contexto, técnicas de negociação de conteúdo &#8211; ou content negotiation em inglês &#8211; podem ser utilizadas para enviar ao agente de usuário diferentes MIME Types, de acordo com o que cada um deles aceita. A esmagadora maioria utiliza o MIME Type text/html para servir documentos XHTML, embora não seja a maneira correta. De acordo com a nota não-normativa da W3C, XHTML Media Types, &#8216;application/xhtml+xml&#8217; SHOULD be used for serving XHTML documents to XHTML user agents. Authors who wish to support both XHTML and HTML user agents MAY utilize content negotiation by serving HTML documents as &#8216;text/html&#8217; and XHTML [...]]]></description>
			<content:encoded><![CDATA[<p>Embora o <abbr title="eXtensible HiperText Markup Language">XHTML</abbr> devesse ser servido com o <acronym title="Multipurpose Internet Mail Extensions">MIME</acronym>  <code>application/xhtml-xml</code>, nem todos os browsers estão aptos a entender este MIME Type. Neste contexto, técnicas de negociação de conteúdo &#8211; ou <em>content negotiation</em> em inglês &#8211; podem ser utilizadas para enviar ao agente de usuário diferentes MIME Types, de acordo com o que cada um deles aceita.  A esmagadora maioria utiliza o MIME Type <code>text/html</code> para servir documentos XHTML, embora não seja a maneira correta. De acordo com a nota não-normativa da W3C, <a href="http://www.w3.org/TR/xhtml-media-types/" rel="external">XHTML Media Types</a>,</p>
<blockquote cite="http://www.w3.org/TR/xhtml-media-types/"><p> &#8216;application/xhtml+xml&#8217; SHOULD be used for serving XHTML documents to XHTML user agents.  Authors who wish to support both XHTML and HTML user agents MAY utilize content negotiation by serving HTML documents as &#8216;text/html&#8217; and XHTML documents as  &#8216;application/xhtml+xml&#8217;.</p></blockquote>
<p>Ou seja, o autor que deseja dar suporte tanto para user agents XHTML quanto para HTML, deve utilizar negociação de conteúdo para servir documentos com o MIME Type adequado a situação.  Um simples script em PHP resolve o problema:</p>
<p><code>&lt;?php<br />
if (stristr($_SERVER[HTTP_ACCEPT], "application/xhtml+xml") ||<br />
stristr($_SERVER["HTTP_USER_AGENT"], "W3C Validator")) {<br />
header("Content-Type: application/xhtml+xml; charset=iso-8859-1");<br />
header("Vary: Accept");<br />
echo("&lt;?xml version=\"1.0\" encoding=\"iso-8859-1\" ?&gt;\n");<br />
} else {<br />
header("Content-Type: text/html; charset=iso-8859-1");<br />
header("Vary: Accept");<br />
}<br />
?&gt;<br />
</code></p>
<p>O script verifica se o agente de usuário suporta o <code>application/xhtml+xml</code>, ou se o agente de usuário é o <a href="http://validator.w3.org" rel="external">W3C Validator</a>. Caso um deles seja verdadeiro, o documento é servido como <code>application/xhtml+xml</code>, caso contrário, ele é servido como <code>text/html</code>. Além disso, se um deles for verdadeiro, o documento recebe a declaração XML.</p>
<p>O cabeçalho <code>Vary: Accept</code> é enviado para que agentes intermediários de cache, como proxy servers, saibam que o MIME Type varia, de acordo com o suporte que o agente de usuário oferece.</p>
<p>O benefício disso tudo é que em browsers como Firefox e Mozilla, que suportam o MIME Type <code>application/xhtml+xml</code>, o código XHTML é tratado como XML no que se refere a intolerância a erros. Ou seja, se um documento XHTML, com MIME Type <code>application/xhtml+xml</code> possuir erros de sintaxe, estes browsers não irão mostrá-lo, assim como acontece com o XML inválido. Somente serão exibidos os documentos assim que os erros de sintaxe estiverem corrigidos. Assim, nem o W3C Validator é necessário para apontar erros.</p>
<h2>Veja também</h2>
<ul>
<li><a href="http://www.456bereastreet.com/archive/200408/content_negotiation/" rel="external">Content negotiation &#8211; 456 Berea Street</a></li>
<li><a href="http://www.456bereastreet.com/archive/200409/content_negotiation_adsense_and_comments/" rel="external">Content negotiation, AdSense, and comments &#8211; 456 Berea Street</a></li>
<li><a href="http://www.japs.etc.br/2006/03/content-negotiation/" rel="external">Content negotiation &#8211; Japs.etc.br</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafaelmarin.com.br/negociacao-de-conteudo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

