首页 > 网站url问题,参数传递原理

网站url问题,参数传递原理

http://db.house.qq.com/index.php?mod=search&city=zz#LUNBXy1hbGxfLXN0XzAtTkFfLUNHXzQtc2hvd3R5cGVfMS1wYWdlXzEtQ0ExXzEyOjEwODgkMTA4OC1OQTFfNTAwMTo3MDAwJDEzNS1DRjFfNDUkNDU=

类似这种url,和普通的传递的url参数方式有些不太一样,这处是将许多字符连接在一起传递的.参数之间减小了?符号.不清楚原理是怎么回事的?后端如何进行参数名和参数值的分析


BASE64嘛。#后边解开之后是:

-CA_-all_-st_0-NA_-CG_4-showtype_1-page_1-CA1_12:1088$1088-NA1_5001:7000$135-CF1_45$45

当然这个字符串后边的东西还需要进一步分析。

这种URL编码方式是利用了#后边的东西虽然包含在URL中,但并不算做http request的一部分的特点。主要用于重AJAX依赖的页面。

在示例URL中,页内点击各种筛选条件的链接时,由于URL部分不变只是#后边有变化,所以浏览器仍然认为是同一页面,点击后地址栏的网址更新,但网页内容无跳转无刷新。内容更新的实际操作由js捕获并执行之。这样既实现了无跳转更新数据,又能让从地址栏copy下来的网址与网页实际内容良好对应,克服了AJAX技术早期常有的“网址copy给别人,别人看到的内容不一样”的毛病。

回复H.....y: 其实这里用BASE64的目的,更多的在于以最简单的方法,克服一切特殊字符的影响。网址长度的增加,只要做好计划能够承受,就没有问题。

【热门文章】
【热门文章】