Estou perguntando isso, porque sempre que passo o mouse sobre um link para uma página inicial (por exemplo http://www.example.com)
, percebo que uma barra final é sempre adicionada (como observado na barra de status do navegador) se o link da página inicial contém um atributo href que termina com uma barra ou não, mas sempre que estou na página inicial, o URL em exibição não tem uma barra final.
Tentei inserir uma barra no URL na barra de URL. E com o Firebug ativado, percebo que o site sempre retorna um status 200 OK. Um artigo aqui discutindo isso afirma que ter uma barra no final evitará um redirecionamento 301. Mas não estou vendo nenhum redirecionamento, mesmo nesta página.
Esse recurso do navegador pode ser acrescentado à barra?
?
na URL), que é muito boba.Respostas:
Sim, todos os navegadores convencionais "acrescentam uma barra" à solicitação HTTP ao solicitar uma URL de domínio simples (por exemplo, a página inicial). Isso é realmente necessário para validar a solicitação HTTP, que
http://example.com/
é:Observe a
/
(barra) na primeira linha - este é o URL que está sendo solicitado. Não é válido não ter nada aqui. De RFC 2616 :Você precisa examinar a solicitação HTTP que o navegador faz para o servidor. O URL exibido na "barra de status do navegador" ou mesmo o URL na barra de endereço pode ser diferente - mais fácil de usar. O Google Chrome não anexa a barra à direita na barra de status, embora a barra esteja presente na solicitação.
Nenhum redirecionamento 301 ocorre se você especificar
http://example.com
(sem barra) porque o navegador corrige a solicitação HTTP antes de ser feita.Observe que isso é diferente das barras adicionadas ao final dos URLs quando existe um caminho / diretório. por exemplo.
http://example.com/directory/
. O artigo ao qual você vincula parece tratar da mesma forma e não parece ser IMO totalmente correto. Se você solicitouhttp://example.com/directory
(sem barra), o navegador não anexa uma barra e sim, a maioria dos servidores 301 será redirecionada parahttp://example.com/directory/
(barra) - mas isso depende do servidor; poderia simplesmente quebrar! No Apache, por exemplo, isso depende daDirectorySlash
diretiva que está sendo definidaon
.fonte
example.com
ouexample.com/
ambos exige exatamente a mesma solicitação ao servidor.