Why does ipfs node in browser use dns api for name.resolve method

When using ipfs.name.resolve method in ipfs npm module

for await (const name of testnode.name.resolve("/ipns/k51qzi5uqu5djwz75h0a2n16akumsm4kscnf64hoq4r6tzdcemd408gg1ssrxo")) {
  console.log(name)
}

makes following http request which fails with 500 error
https://ipfs.io/api/v0/dns?nocache=false&recursive=true&arg=k51qzi5uqu5djwz75h0a2n16akumsm4kscnf64hoq4r6tzdcemd408gg1ssrxo

but using ipfs.name.resolve with same ipns address using ipfs-http-client uses resolve http api correctly.

for await (const name of testclient.name.resolve("/ipns/k51qzi5uqu5djwz75h0a2n16akumsm4kscnf64hoq4r6tzdcemd408gg1ssrxo")) {
  console.log(name)
}

https://ipfs.io/api/v0/name/resolve?stream=true&arg=%2Fipns%2Fk51qzi5uqu5djwz75h0a2n16akumsm4kscnf64hoq4r6tzdcemd408gg1ssrxo

What is the reason for using dns api in ipfs browser node and why it is different than ipfs http client