Se você quer definir um Well-Known URI
(mnot.net)- Quando o cliente já conhece o site e precisa localizar com eficiência informações sobre o site inteiro, o Well-Known URI é a opção mais adequada
- Colocar políticas em um local central, como
robots.txt, pode reduzir verificações repetidas, mas também pode servir para abrir interações de alcance geral no site, comochange-password - Se um protocolo que poderia transmitir a URL real usa Well-Known URI, o serviço e o site ficam presos em uma relação 1:1, deixando implantação e roteamento mais rígidos
- Ao aplicar isso a mecanismos de descoberta ou metadados de conteúdo, é preciso avaliar primeiro a estrutura operacional, como nome do host inicial, local de busca, redirecionamentos e sites com vários publicadores
- Para migrar de caminhos fixos já existentes na raiz, é necessário um plano de transição, e especificar esquemas além de
httpehttpsaumenta as chances de sucesso no registro
Situações em que o Well-Known URI se encaixa bem
- Mark Nottingham, um dos autores da Well-Known URI specification e Designated Expert do registry, compartilhou critérios práticos sobre quando faz sentido usar Well-Known URI
- Esses critérios não são todos requisitos formais de registro; estão mais próximos de boas práticas
- Uma localização Well-Known é apropriada quando o cliente já conhece o site e precisa descobrir algo ou interagir com algo referente ao site inteiro
- Aqui, site significa tecnicamente a origin, isto é, a tupla
(scheme, host, port)
- Aqui, site significa tecnicamente a origin, isto é, a tupla
- robots.txt já existia antes do RFC, mas foi um dos principais motivos para reservar o espaço Well-Known
- Crawlers precisam conhecer a política de acesso do site
- Colocar a política em um ponto central evita ter de verificar cabeçalhos e conteúdo em todas as respostas
- Uma localização Well-Known não precisa conter apenas políticas
- Se for um mecanismo em que o cliente já conhece o site e precisa aprender algo sobre ele ou interagir com ele de forma abrangente, isso pode ser um candidato
- A localização Well-Known
change-passwordpermite que o cliente altere a senha do site
Quando isso vira a ferramenta errada
- Alguns designs especificam uma localização Well-Known não por causa de um problema real, mas porque parece que deveria ser assim
- O fato de um item entrar no espaço de registro não garante legitimidade nem adoção
- Uma localização Well-Known resolve um problema específico: “o cliente conhece o site e precisa de algo referente ao site inteiro”
- Se o protocolo não tem esse problema, o registro pode criar um problema novo e não levar à adoção esperada
- Algumas propostas usam a localização Well-Known praticamente como um encurtador de URL
- O protocolo não transmite a URL completa, apenas o site relacionado
- A localização Well-Known completa o restante do caminho
- Esse padrão fixa serviço e site em uma relação 1:1
- Se a implantação exigir vários serviços, será preciso criar outros sites
- Também passa a ser necessário algum método separado para enviar o usuário ao site correto
- Se o protocolo realmente só consegue transmitir o nome do host, usar uma localização Well-Known pode ser justificável
- Se a URL real puder ser usada, em geral é melhor não recorrer a uma localização Well-Known; escolhê-la por conveniência ou por parecer mais oficial torna a implantação desnecessariamente rígida
Armadilhas em mecanismos de descoberta
- Muitos protocolos tentam usar localizações Well-Known em mecanismos de descoberta com base na premissa de que “o usuário já conhece o site”
- Na prática, o escopo da interação atual do usuário e o lugar onde a descoberta acontece podem não coincidir
- Se o cliente começou em
login.example.com, surge a dúvida se a localização Well-Known deve ser procurada nesse site ou emexample.com - Também é preciso decidir se redirecionamentos de um para o outro devem ser seguidos
- Pode não ficar claro em qual site o publicador deve oferecer a localização Well-Known para garantir interoperabilidade
- Se o cliente começou em
- Isso é especialmente importante quando o protocolo não lida de fato com o website em si, mas usa HTTP para outro objetivo
- Pode parecer desejável especificar que a localização Well-Known de um nome de domínio registrável fique no apex, mas isso pode ser operacionalmente difícil em alguns ambientes
- Protocolos dessa categoria precisam considerar ao mesmo tempo o que está sendo descoberto e de onde o usuário começa
- É necessário definir como encontrar com confiabilidade o nome de host correto sem assumir demais sobre a arquitetura da web
Os trade-offs ao usar isso para metadados de conteúdo
- Alguns protocolos tentam usar localizações Well-Known para aprender sobre o conteúdo de um site
/robots.txtfunciona assim, mas esse padrão não se adapta facilmente a todo tipo de metadado de conteúdo- Muitos sites representam vários publicadores
- Um exemplo é a antiga convenção
/~username/
- Um exemplo é a antiga convenção
- Colocar metadados de conteúdo em um ponto central cria dois problemas
- O mecanismo pode se tornar praticamente inutilizável para usuários individuais
- O administrador pode precisar construir uma infraestrutura complexa para permitir e supervisionar o controle dos usuários
- Essas implantações expõem um trade-off entre conveniência e granularidade
- Pode surgir a necessidade de criar um mecanismo paralelo de metadados em cabeçalhos de resposta HTTP ou no próprio conteúdo
- Também será preciso organizar as diferentes formas de anexar metadados
- Isso não significa que localizações Well-Known não possam ser usadas para metadados de conteúdo, mas o trabalho necessário pode ser muito maior do que o esperado
- Protocolos que usam localizações Well-Known para metadados de recurso precisam levar em conta a variedade de estruturas de sites na web
Pontos a considerar no registro e na transição
- Algumas propostas já definiram localizações fixas na raiz
- É o caso de situações como
/robots.txt, em que a ideia de localização Well-Known veio depois
- É o caso de situações como
- Nesses casos, é necessário um plano de transição para as implantações existentes
- Proponentes tendem a focar demais na base de implantação atual
- Com um bom plano de transição por um período razoável, é possível gerenciar a migração para uma localização Well-Known
- Muitas propostas assumem implicitamente URLs
httpehttps - Como localizações Well-Known também se aplicam a outros esquemas de URL, é preciso enumerar explicitamente os esquemas relevantes
- Localizações Well-Known precisam ser registradas
- Esse link traz orientações sobre quando registrar e como escolher um nome
- Diferentemente dos conselhos anteriores, essas diretrizes de registro afetam de fato as chances de sucesso no registro
1 comentários
Comentários do Hacker News
Eu gostaria que adotassem essa abordagem em vez de continuar criando novos padrões no namespace raiz. Por exemplo, llms.txt
Já passou da hora de parar de poluir a raiz do domínio
https://llmstxt.org/
Discordo. Este texto, de qualquer forma, não ajuda muito. Quase não tem conteúdo e só parece dizer obviedades
Sem exemplos que levem a recomendações práticas, a suposta expertise do autor também não serve para muita coisa
https://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol#Save_418_movement
~userEste texto pode levar esse pessoal a usar uma solução melhor. E, se ainda tiverem certeza de que precisam de uma URL well-known, ele também fornece o link para o processo de registro
robots.txt, não deveria simplesmente colocá-lo ali de forma arbitrária; é preciso dizer onde ele estáNão entendo por que isso é tão específico. Em vez de
password-reset, não dava para ter uma árvore de links mais genérica?Até a verificação de domínio do Discord poderia usar uma lista dinâmica em
domain-verifications; isso parece perda de tempo. Para o meu uso, eu provavelmente definiria minha própria especificação fora de well-knownO endpoint well-known
password-reseté usado para que gerenciadores de senha mostrem um botão "Change password..." na UI e levem direto para a página de troca de senha indicada naquele arquivo well-knowndiscord domain verificationé um problema do Discord. Não está no registro da IANA: https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtmlSobre a parte de transformar
password-resetem uma árvore de links mais genérica, respondi com mais detalhes em uma thread irmã: https://news.ycombinator.com/item?id=48596286Seja com
.well-known, registros DNS ou DNS over HTTP, acho importante tornar isso autodetectável com base na confiança ancorada no domínioA Cloudflare já parece ter adicionado bastante observabilidade de produto nessa área, e eu também estou investigando: https://instagrate-me.sudoscience.dev/
À medida que os usos agentivos aumentarem, provavelmente vai crescer tanto o número de serviços que precisam disso quanto a quantidade necessária por organização.
auth.mdtambém parece ser um exemplo recente usando.well-known“Este site precisa de um navegador mais moderno para funcionar com segurança. Atualize seu navegador.”
Como alternativa, funciona sem SNI
https://web.archive.org/web/20260619061625if_/https://mnot.net/blog/2026/well_known_uris
Por isso é ótimo
O registro
change-passwordé realmente usado? Nem sei se bots usam issoNos meus sites, nunca vi bots consultando a URL
.well-known/change-password. Parece bom como lugar para colocar configuração pública, mas não como mecanismo de descobertaEsse recurso se baseia em
.well-known/change-password.well-knowncomeçou de forma organizada, mas silenciosamente virou a gaveta da bagunça da raiz da web.security.txt, ACME,app-site-associatione outros continuam se acumulandoParece que muita gente ignora com frequência o fato de que pode haver vários itens well-known em um mesmo domínio
O título fala em URI, mas o texto trata apenas de URL, que é um tipo de URI
Mas afinal, quão well-known essas URIs são de verdade? :-\
.well-known, e não achei nenhumJá li um no passado enquanto trabalhava com GitHub OIDC, e na época foi bem útil
Não entendo por que documentação técnica explica conceitos tão a fundo com tanta verborragia e ainda assim não dá um único exemplo. E não é a primeira vez que vejo isso
Falando sério, o nome é contraditório.
/index.htmlé literalmente uma URL bem conhecida, e a maioria dos desenvolvedores web a conhece. Mas criar um monte de URLs com significado pré-definido e colar nelas o rótulo “well-known” não faz com que elas realmente se tornem famosas