【问题标题】:How long can a hyperlink be?超链接可以多长?
【发布时间】:2011-08-11 06:58:41
【问题描述】:

在我的网站上,用户可以在文本输入字段中插入超链接。然后,这个链接(一个字符串)被存储在我的数据库中。

在 MySQL 上,包含超链接字符串的字段是 TEXT 类型,但我认为它对于此类信息来说太长了。此外,VARCHAR(255) 有时太短。

存储超链接的最佳类型/长度是多少?很高兴知道链接可以有多长。

【问题讨论】:

  • 当我正在做的一个项目面临同样的问题时,我们采用了两层方法——限制为 4K,但标准化 URL 并将 URL 记录的 ID 存储在其他表中.在我们的应用程序中,URL 经常重复,所以规范化对我们来说是有意义的。
  • 按照规范化方法,您可以选择存储地址的 bit.ly URL...API 位于code.google.com/p/bitly-api/wiki/ApiDocumentation
  • 超链接的限制是作为 URL 的意义所在。许多网络服务器会很乐意接受 16kB,但当然这样的事情完全是疯了。自己决定什么是理智的。 URL 应该是人类可读、可用和可记忆的。在我看来,拥有超过 60-80 个字符的 URL 已经很麻烦了,但是使用超过 100-120 个字符(亚马逊,嗯?)的 URL 的人是彻头彻尾的疯狂或完全无知。问问自己谁将输入一个 200 个字符的字符串,或者想象一下在电话上拼写一个 300 个字符的 URL。因此,如果您使用 VARCHAR(255) 绝对安全。
  • 是的,我想我会放 varchar(255),并在服务器端检查字符串是否超过 255(否则我会删掉)。 255就够了:)

标签: mysql html hyperlink


【解决方案1】:

超链接的长度没有限制。浏览器限制了 GET 请求可以通过超链接发送的数据量,但对实际链接本身的长度没有限制。

标准的 TEXT 字段可以很好地存储链接(与 VARCHAR(255) 字段类型相比,使用该字段不会对性能造成影响,也不会使用额外的内存,所以真的没有理由不使用它。)

【讨论】:

    【解决方案2】:

    见:What is the maximum length of a URL in different browsers?

    如果你想要一个下限,你可以使用VARCHAR(2048)。不过,就空间而言,使用TEXT 并没有错。在这两种情况下,它们只使用与文本一样多的空间加上几个字节来表示长度。详情请见Data Type Storage Requirements

    至于是否应该选择VARCHARTEXT,请参阅:MySQL: Large VARCHAR vs. TEXT?

    【讨论】:

    【解决方案3】:

    HTTP 对 URL 的长度没有任何限制。但是,网络服务器和浏览器可能会有所限制。

    我猜一些旧的 IE 版本的限制只有大约 250 个字符。

    【讨论】:

    猜你喜欢
    • 2011-02-27
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 2016-07-17
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多