limitations.xhtml 7.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. h t t :: / / t /
  4. h t t :: // // t //
  5. h ttttt ttttt ppppp sssss // // y y sssss ttttt //
  6. hhhh t t p p s // // y y s t //
  7. h hh t t ppppp sssss // // yyyyy sssss t //
  8. h h t t p s :: / / y .. s t .. /
  9. h h t t p sssss :: / / yyyyy .. sssss t .. /
  10. <https://y.st./>
  11. Copyright © 2016 Alex Yst <mailto:copyright@y.st>
  12. This program is free software: you can redistribute it and/or modify
  13. it under the terms of the GNU General Public License as published by
  14. the Free Software Foundation, either version 3 of the License, or
  15. (at your option) any later version.
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. GNU General Public License for more details.
  20. You should have received a copy of the GNU General Public License
  21. along with this program. If not, see <https://www.gnu.org./licenses/>.
  22. -->
  23. <!DOCTYPE html>
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <base href="https://y.st./en/URI_research/limitations.xhtml" />
  27. <title>Format-specific URI limitations &lt;https://y.st./en/URI_research/limitations.xhtml&gt;</title>
  28. <link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
  29. <link rel="stylesheet" type="text/css" href="/link/basic.css" />
  30. <link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
  31. <script type="text/javascript" src="/script/javascript.js" />
  32. <meta name="viewport" content="width=device-width" />
  33. </head>
  34. <body>
  35. <nav>
  36. <p>
  37. <a href="/en/">Home</a> |
  38. <a href="/en/a/about.xhtml">About</a> |
  39. <a href="/en/a/contact.xhtml">Contact</a> |
  40. <a href="/a/canary.txt">Canary</a> |
  41. <a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
  42. <a href="/en/opinion/">Opinions</a> |
  43. <a href="/en/coursework/">Coursework</a> |
  44. <a href="/en/law/">Law</a> |
  45. <a href="/en/a/links.xhtml">Links</a> |
  46. <a href="/en/URI_research/limitations.xhtml.asc">{this page}.asc</a>
  47. </p>
  48. <hr/>
  49. </nav>
  50. <header>
  51. <h1>Format-specific <abbr title="Uniform Resource Identifier">URI</abbr> limitations</h1>
  52. <p>Some valid <abbr title="Uniform Resource Identifier">URI</abbr>s aren&apos;t available in every context.</p>
  53. </header>
  54. <p>This page is still in its infancy, as I haven&apos;t done much research on standard limitations on <abbr title="Uniform Resource Identifier">URI</abbr>s just yet.</p>
  55. <h2>Sitemaps</h2>
  56. <p>The <a href="http://www.sitemaps.org/protocol.html#xmlTagDefinitions">Sitemap</a> format defines the <code>&lt;loc/&gt;</code> tag as containing a <abbr title="Uniform Resource Identifier">URI</abbr> that is not more than 2047 characters in length. Read carefully; it says <q>less than 2,048 characters</q>, not <q>less than or equal to 2,048 characters</q>. Furthermore, this limitation is only placed on <code>&lt;loc/&gt;</code> tags within a Sitemap file, not within a Sitemap index file.</p>
  57. <h2>Onion addresses</h2>
  58. <p>While <abbr title="Internet Assigned Numbers Authority">IANA</abbr> did <a href="https://www.iana.org./assignments/special-use-domain-names/special-use-domain-names.xhtml">reserve the <q>onion.</q> <abbr title="Top Level Domain">TLD</abbr> for use with <abbr title="The Onion Router">Tor</abbr></a>, they don&apos;t require that <abbr title="The Onion Router">Tor</abbr> used <abbr title="Domain Name System">DNS</abbr> to implement these names. In fact, the <abbr title="Request for Comments">RFC</abbr> says that <a href="https://tools.ietf.org./html/rfc7686#section-1">these names are to be resolved outside of <abbr title="Domain Name System">DNS</abbr></a>. Essentially, the <abbr title="Request for Comments">RFC</abbr> just validates <abbr title="The Onion Router">Tor</abbr>&apos;s use of onion addresses and specified that applications that are not <abbr title="The Onion Router">Tor</abbr>-aware should reject these names without without attempting to look them up, instead returning an error. It also says that <abbr title="Domain Name System">DNS</abbr> servers should return NXDOMAIN responses instead of attempting to resolve them. <abbr title="The Onion Router">Tor</abbr>-aware applications are required to either access the resource directly without a lookup or use a proxy to do so, using the tor-rendezvous protocol, which is defined by <abbr title="The Onion Router">Tor</abbr> itself. <abbr title="The Onion Router">Tor</abbr> doesn&apos;t handle the trailing dot on onion addresses, unlike <abbr title="Domain Name System">DNS</abbr> names. However, because <abbr title="The Onion Router">Tor</abbr> doesn&apos;t allow resolution of onion addresses with trailing dots and the proper handling of onion addresses is defined as whatever <abbr title="The Onion Router">Tor</abbr> does, rejecting onion addresses with a trailing dot is actually the correct behavior. If the <code>//onion.</code> <abbr title="Top Level Domain">TLD</abbr> is used, the trailing dot should be omitted every time. It&apos;s worth mentioning the one mention of an onion address&apos;s <a href="https://gitweb.torproject.org./torspec.git/tree/rend-spec.txt#n1017">format</a> though:</p>
  59. <blockquote><pre>Valid onion addresses contain 16 characters in a-z2-7 plus
  60. &quot;.onion&quot;, and valid auth cookies contain 22 characters in
  61. A-Za-z0-9+/. The service name is only used for internal purposes,
  62. e.g., for Tor controllers; nothing in Tor itself requires or uses
  63. it.</pre></blockquote>
  64. <p>It makes no mention of trailing dot being valid or invalid. Furthermore, it doesn&apos;t mention use of subdomains being valid, though the <abbr title="Request for Comments">RFC</abbr> explicitly give permission to use subdomains.</p>
  65. <hr/>
  66. <p>
  67. Copyright © 2016 Alex Yst;
  68. You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
  69. If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
  70. My address is in the source comments near the top of this document.
  71. This license also applies to embedded content such as images.
  72. For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
  73. </p>
  74. <p>
  75. <abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
  76. This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2FURI_research%2Flimitations.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2FURI_research%2Flimitations.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
  77. </p>
  78. </body>
  79. </html>