论坛首页 Java企业应用论坛

淘宝网的搜索关键字的编码与解码

浏览 77068 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-12-04  
淘宝架构师不也在这个坛子混的么?验证下。
0 请登录后投票
   发表时间:2008-12-04  
楼主有意思的。。。强汗
0 请登录后投票
   发表时间:2008-12-04  
这样有什么意义呢。。
不过那一堆的------------是干嘛的。。不也很影响url的美观啊。
每次加密加密的不也浪费么。。
谁解释下这个到底什么意图呢。不就是一个搜索关键字。
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
TAOBAO的工程师今天估计要开始加班讨论他们各个环节的安全方案是否有问题了,真是好强啊,楼主你。
0 请登录后投票
   发表时间:2008-12-04  
敬仰如滔滔江水,你干脆把他们的URl加密规则都研究出来,搞清楚他们的服务器上各种资源存放的规律,搞不好有点意外收获呢。

宁外,小马哥说不定给你打电话,哈哈哈
0 请登录后投票
   发表时间:2008-12-04  
-_-# 研究型人才啊,
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
我觉得,首先,为什么不用普通的参数,我想是这样,淘宝的服务器压力很大,对应用的性能要求应该很苛刻,搜索的时候你看起来你输入只是一个关键字,实际上远远不止,有几十个参数,如果用一组事先约定好位置的数据来表示各种参数,服务器不用解析那么多的字符串,不用处理那么多的参数名=参数,虽然开发维护起来会增加一些工作量,但是服务器压力会小一些,流量会小一些。
至于编码方式,回应楼上某位同学的话,base64编码不是淘宝自己搞出来的,是email刚出现时特殊历史时期的产物,具体的可以google一下,base64编码后数据量比urlencode少60%左右 
0 请登录后投票
   发表时间:2008-12-04   最后修改:2008-12-04
6位都已经是无奈之举了,还要用5位,那不是对现有资源的浪费吗,在不增加url长度的情况下充分提高效率,6位编码是最佳的。如果可以任意的饿牺牲url长度,可以把0-9全部拿出来当做标记位,0-9不会单独出现,这样一共有10*26 + 26 = 286 种可能还不包括小写字母,此外还有=,+,-什么的至少256可以编码8位的字节了,这样处理效率就提高了
0 请登录后投票
   发表时间:2008-12-04  
LZ确实很厉害。我觉得TB好像习惯对URL进行BASE64。URL有保密信息的话会再来个BF加密。使用BASE64怕非英文的URL解码后会产生服务器操作的命令。BASE64的编码快,解码也快。
0 请登录后投票
   发表时间:2008-12-04  
楼上有几位提出了url中/和=以及空格这种问题,不写了,引用一段搜索来的:

  然而,标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
  为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“*”和“-”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics