Normalmente, quando vejo //
, geralmente segue algum prefixo de protocolo como http:
ou ftp:
. Eu nunca o vi colocado em outro lugar. Por exemplo,
http://www.google.com/
é um URL típico.
No entanto, encontrei as duas sintaxes a seguir para gerar versões diferentes do mesmo site,
Eu teria pensado que //
qualquer outro lugar que não fosse a especificação do protocolo seria inválido. Para minha surpresa, eu estava errado. O que há no final de //
uma versão diferente do mesmo site?
EDITAR:
Alguém nesse site deve ter percebido o outro, porque agora os dois links estão na mesma página.
///
ou////
no final da URL resultou no mesmo local que/
onde//
fez resultar em algo diferente.\\HostName[@Port]\SharedFolder\Resource
Respostas:
O líder
//
faz parte da sintaxe da URL. O inventor da Internet pediu desculpas por esse erro .Quanto à trilha
//
, não é realmente uma barra dupla. A primeira barra separa o nome do host do caminho. A última barra é o caminho. Um servidor da Web pode, se quiser, tratar um caminho/
diferente de um caminho vazio, e aparentemente o weather.com o faz. Quanto a isso ser acidental ou intencional, você teria que perguntar sobre isso.fonte
http://example.com
pode ser tratado de forma diferentehttp://example.com/
? Não achei que fosse o caso da primeira barra..htaccess
regras. Mas você provavelmente não deveria.http://example.com
diferente dehttp://example.com/
um servidor Web, pois os dois têm um caminho vazio. Você pode tratá-los de maneira diferente em um navegador.GET / HTTP/1.1
: tools.ietf.org/html/rfc2616.html#section-3.2.3Mais recentemente, pode-se argumentar que a barra dupla faz ter um papel. O Google recomenda (para evitar chamar acidentalmente conteúdo inseguro de uma página segura, por exemplo) omitir o protocolo de recursos incorporados (folhas de estilo, js etc.), como este
Portanto, agora é aparente que esse URL sem protocolo é um URL totalmente qualificado e não um URL relativo (que começaria com uma única barra).
fonte
Para efectivamente responder à questão, a especificação original deu o protocolo
http:
(ou possivelmenteftp:
,gopher:
,mailto:
,news:
,telnet:
,wais:
,file:
ouprospero:
), em seguida, um//
para indicar que a sintaxe Uniform Resource Locator (URL) estava a ser utilizado, em seguida, o alojamento (opcionalmente com o prefixouser:password@
), em seguida, endereço início adequado com outro/
. Isso foi proposto na RFC 1738 .À medida que a internet evoluiu,
http:
tornou-se o protocolo dominante, e agora os navegadores assumem que um prefixo dehttp://
deve ser adicionado se não estiver lá.fonte
//
indicar que estava em uso ... É isso?isbn:1-23-456789-12-3
. Na prática, ohttp:
define que o restante será uma URL. As RFCs são apenas propostas e geralmente permitem extensões que nunca se materializam. Em um ponto, Tim Berners-Lee disse que//
era para uma 'sub-rede' (por exemplohttp:/govnet/whitehouse.gov
). Essa idéia nunca foi usada, mas '//' permanece o tanto de código que agora espera e verifica.http://www.google.com/
ehttp:%/74.125.225.97/
tanto para ser válido e//
indicar um nome de host, enquanto outra coisa como%/
indicar um endereço IP?Gostaria de acrescentar à resposta aceita de David:
Apesar das desculpas do inventor da web, acho que a sintaxe de barra dupla serviu a um propósito importante: destacar-se visualmente. As barras duplas permitiam uma distinção visual fácil de URLs em um texto sem hiperlinks. Quando você viu barras duplas, imediatamente pensou que poderia ser inserido em uma janela do navegador, semelhante à forma como você pensava que um texto contendo
@
pode ser usado para enviar um email. Foi especialmente crucial durante a fase de transição para a Web, onde os protocolos daquela época (ftp, telnet, gopher) tinham sua própria noção estranha de representar endereços de servidor ou caminhos de recursos, raramente ambos. A maioria dos problemas associados às barras duplas ainda existiria, porque as barras duplas são a parte menos enigmática de uma URL, pense em números de porta, porcentagem de codificação e distinção entre maiúsculas e minúsculas. Mas ter um URL como http: something.com poderia ser facilmente confundido com o meu exemplo aqui: something.com. Veja http: // por outro lado, como brilha como um diamante. Barras duplas têm sido uma parte importante do simbolismo da Web e acredito que acelerou sua taxa de adoção também, mesmo que não fosse intencional.Eles também podem ter facilitado o trabalho do AmigaOS de diferenciar nomes de arquivos e URLs, já que o AmigaOS usava a sintaxe do caminho do arquivo
volume:path/to/destination
. :)fonte