20

在这个网址中:

http://www.subdomain.domainname.abc.xyz.com.us/directory/filename.extension
  1. 每个部分的名称是什么?
  2. 每个部分的最大长度是多少?例如子域、域名、顶级域……</li>
4

3 回答 3

29
于 2012-10-31T09:42:49.750 回答
9

要回答问题 1:

一个简单的 URI 看起来像:

http://www.mywebsite.com

从右到左更容易解释:

  • com 是顶级域 (TLD)
  • mywebsite 是域,但在描述时通常会包含 TLD,例如 mywebsite.com
  • www 是一个子域
  • http:// 是用于访问资源的协议

只是为了让事情变得更加混乱,许多顶级域实际上是 2 个域,例如 .co.uk

所以,另一个例子是:

https://aaa.bbb.ccc.mywebsite.co.uk
  • co.uk 是顶级域名
  • mywebsite 是域
  • ccc 是一个子域
  • bbb 是一个子域,或者你可以说是 ccc.mywebsite.co.uk 的一个子域
  • aaa 是一个子子域,或者您可以说是 bbb.ccc.mywebsite.co.uk 的子域

TLD 之后但文件名之前的任何内容都称为路径,例如:

https://www.mywebsite.com/this/is/a/path/to/resource/filename.txt

在上面的示例中,filename.txt 通常称为资源(尽管有些人会说整行都是资源,因为您并不总是有文件名)。

于 2014-02-02T15:19:44.013 回答
4

TLDR - 名字

鉴于,根据RFC3986foo://example.com:8042/over/there?name=ferret#nose (2005 年 1 月) ,您的组件可以分解如下...

     foo://subdomain.example.com:8042/over/there?name=ferret#nose
     \_/  \________/                /\_________/ \_________/ \__/
      |       |                          |            |        |
          \___|_____________________/
   scheme   label       authority       path        query   fragment
   (AKA:                (AKA:
   protocol)            (domain)

TLDR - 最大长度

  • 标签/子域:63最多字符数。
  • 域:253最多字符
  • 总网址:2,000最多字符

细节

现在,让我们分解一下给定 URL 的替代版本http://www.subdomain.domainname.com/directory/filename.extension?name=ferret#nose

协议

  • http://: 方案或协议。
    • 最大长度:没有强加限制,但这些通常由 IETF 创建,因此最长的 RFC 方案将是最大值,我将其视为prospero字符8然而! 您可以制定自己的协议并使其具有任何合理的长度,尽管我可能不会超过255字符。例如,file:/在 Chrome 中会显示文件,samba:/在 Linux 中会启动 Samba 应用程序并访问资源等等。
    • 来源:RFC1738(1994 年 12 月)
    • 引用:“以下是特定协议的注释。涵盖的方案有:ftp、http、gopher、mailto、news、nntp、telnet、wais、file、prospero。”

子域

  • www, subdomain:www只是一个流行的子域,今天是多余的。
    • 最大长度:63字符
    • 来源:RFC1035(1987 年 11 月)
    • 引用:“标签不得超过 63 个字符。”

领域

  • domainname.com:您的“域”,不是它的任何级别,而是完整的域。
    • 最大长度:253如果您关心电子邮件,则为字符( toSMTP 中字段的最大限制是255字符,让您a@(253-char-domain)在电子邮件中保留尽可能长的域;255如果您不介意电子邮件不起作用
    • 来源:RFC2821(2008 年 10 月)、RFC5321(2008 年 10 月)、RFC821(1982 年 8 月)
    • 引用:

域名或号码的最大总长度为 255 个字符。(RFC2821、RFC5321)

[电子邮件地址格式为]<mailbox> ::= <local-part> "@" <domain> (RFC821)

二级域名

  • domainname: 你的二级域名。
    • 与子域相同的限制和来源。

顶级域

  • com: 您的顶级域 (TLD)。这也可能包含一个句点,例如co.uk.
    • 最大长度:这些是由 IETF 的 RFC 建立的。最大长度将是存在的最长 TLD。例如,RFC6927.XN--MGBERP4A5D4AR为沙特阿拉伯保留了该域。
    • 来源:RFC920(1984 年 10 月)
    • 引用:“最初的顶级域名是:ARPA、GOV、EDU、COM、MIL、ORG。”

小路

  • directory/filename.extension: 这是你的路。
    • Max Length: Infinite但在实践中,请坚持使用不超过2,000字符的 URL ,因为并非所有浏览器都能理解无限的概念。
    • 来源:RFC3986(2005 年 1 月)、RFC2616(1999 年 6 月)、RFC7230
    • 引用:

“服务器必须能够处理它们所服务的任何资源的 URI,并且应该能够处理无限长度的 URI……”(RFC2616);

“本规范不限制资源的范围......”(RFC3986);

*“建议所有 HTTP 发送方和接收方至少支持 8000 个八位字节的请求行长度。” (RFC7230)

查询和分片

  • name=ferret: 这是一个GET参数,形式为field=value
  • #nose:这是片段,可用于使用 HTML 锚定到 HTML 文档的特定部分<a name="nose" />
    • Max:如上面关于路径的部分所述,总路径、查询和片段不应超过2,000字符。
    • 来源:RFC3986(2005 年 1 月)
    • 引用:

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

于 2021-03-16T17:50:21.250 回答