Uma tag de âncora vem antes ou depois da string de consulta?

52

Não estou claro se uma marca de âncora deve vir antes ou depois de uma string de consulta.

http://www.domain.com/search?query=hello#name

ou

http://www.domain.com/search#name?query=hello

Ou isso importa?

whoacowboy
fonte
1
Teste-o. Apenas um deles funciona, então isso importa. Quando tentei ancorar primeiro, então ele pensa que? faz parte do fragmento "#" e, portanto, não pula para a âncora correta (já que não existe um que tenha? em seu nome ...) e provavelmente não incluiria nenhuma informação se eu tivesse verificado a sequência de consulta em PHP. O último que eu não testei.
Julix 21/09

Respostas:

62

A melhor prática é acrescentar a âncora nomeada no final. O nome técnico é um identificador de fragmento e a sintaxe está no RFC 3986.

A seção RFC está aqui: http://tools.ietf.org/html/rfc3986#section-4.1

relativa-ref = parte relativa ["?" consulta] ["#" fragmento]

Wikipedia realmente cobre bem:

O identificador de fragmento introduzido por uma marca de hash # é a última parte opcional de uma URL para um documento

iivel
fonte
Cheers @iivel! A seção 3 foi mais útil para mim (a seção 4.1 parece específica para os URIs relativos) enquanto eu debatia isso com alguém.
Eebbesen 19/05
E o servidor da web, ele precisa lidar com isso durante a exibição da página?
Behrouz.M
1
Os fragmentos de URL do @raypixar não são enviados para o servidor
Juan Mendes