【问题标题】:How to shorten the value of Url query parameter?如何缩短 Url 查询参数的值?
【发布时间】:2015-08-11 10:32:41
【问题描述】:

有一个类似的问题被问到: How can I shorten the URL query paramters?
但是这里的查询参数是单一的,它的值是逗号分隔的长ID列表。

Eg. http://example.com/page?q='111100000123,111100000234,11134423213,238418249,823481293,841298472384,89234798124,981248923,24982134983'

将此值编码为类似

htp://example.com/page?q='cdw,erw,ere...'

htp://example.com/page?q=asfjeoren

然后在服务器端将其解码回原始值。

【问题讨论】:

    标签: rest url decode encode


    【解决方案1】:

    假设您希望 id 的编码版本为 use alphanumeric characters,并且如果您的 id 都是 12 位(或更少),那么每个 id 最多需要 6 个编码字符 - 您不会减少到 3如您的示例中的字符,根本没有足够的字母数字字符组合能够唯一地表示每个 id。

    我会质疑是否真的值得按照您的建议去做 - 您的网址中有多少个 ID?您是否证明过长的网址确实会导致问题,或者您是否进行了预优化?

    【讨论】:

    • 我的 ID 最长为 19 位,ID 数量不限,但 90% 约为 50。不想将长 URL 发送到服务器
    • 好的,19 位数字意味着您需要 11 个字母数字字符。为什么不想向服务器发送长 URL?仅仅是因为“感觉不对”还是你证明它会导致某种问题?
    • 您是如何想出 19 位数字所需的 11 个字母数字字符的?为了表示 19 位可以存储在 base 10 中的最大值,我认为 base 36 中需要 12 位?
    • 从头开始 - 检查比手背式方法更可靠的来源。 13 19 个以 10 为基数的数字需要字母数字
    • @ricky116 我假设他会同时使用大写/小写字母 - 实际上以 62 为基数
    猜你喜欢
    • 2010-10-23
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多