当前位置:编程学习 > C#/ASP.NET >>

url参数上加随机数干什么?

我看很多网站的url上都加 Math.random();干什么用的? --------------------编程问答-------------------- 你怎么确认是Math.random()产生的,有可能是个标识,比如用户id --------------------编程问答-------------------- 其实是按钮随机分配的坐标,不是random

当然要看情况
有一些随机字符串,其实是加密防止恶意查询提交用的 --------------------编程问答-------------------- 参数吧..........难道是抽奖网站么...... --------------------编程问答--------------------
引用 2 楼 fei2yun 的回复:
其实是按钮随机分配的坐标,不是random

当然要看情况
有一些随机字符串,其实是加密防止恶意查询提交用的

想知道一下如何用这个随机字符串进行恶意查询提交 --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
你怎么确认是Math.random()产生的,有可能是个标识,比如用户id

js的Math.random 不是后台写的`我看的js源码`每个提交连接都有 v=abc+Math.random 这个参数`我看好多网站都有`所以问问`不知道干什么的 --------------------编程问答--------------------
引用 4 楼 yaoyuchicc 的回复:
引用 2 楼 fei2yun 的回复:

其实是按钮随机分配的坐标,不是random

当然要看情况
有一些随机字符串,其实是加密防止恶意查询提交用的

想知道一下如何用这个随机字符串进行恶意查询提交


和验证码一样的原理,其实这个不是随机的,而是一个密码一样的东西。只是他表现出来了而已

比如说,你取回密码,那个地址上,就肯定有一个是类似这样的地址。而你看到的地址,可能就是这样的东西
当然,更加变态的像淘宝,可能他就是分类的编号和查询的内容,只是他加密了而已

另外,随机数字还有个经常用到的方法,那就是防止IE缓存,因为随机地址的存在,可以确保每次访问的URL都不会被缓存起 --------------------编程问答--------------------
引用 2 楼 fei2yun 的回复:
其实是按钮随机分配的坐标,不是random

当然要看情况
有一些随机字符串,其实是加密防止恶意查询提交用的


确实都是查询按钮上都有 --------------------编程问答--------------------
引用 5 楼 yaoyuchicc 的回复:
引用 1 楼 bdmh 的回复:

你怎么确认是Math.random()产生的,有可能是个标识,比如用户id

js的Math.random 不是后台写的`我看的js源码`每个提交连接都有 v=abc+Math.random 这个参数`我看好多网站都有`所以问问`不知道干什么的

如果是这样的话,那就是出于缓存去考虑的可能性大一点 --------------------编程问答--------------------
引用 6 楼 fei2yun 的回复:
引用 4 楼 yaoyuchicc 的回复:

引用 2 楼 fei2yun 的回复:

其实是按钮随机分配的坐标,不是random

当然要看情况
有一些随机字符串,其实是加密防止恶意查询提交用的

想知道一下如何用这个随机字符串进行恶意查询提交


和验证码一样的原理,其实这个不是随机的,而是一个密码一样的东西。只是他表现出来了而已

比如说,你取回密码,那个地址……

我说的不是地址`是js源码 v=abc+Math.random() --------------------编程问答-------------------- 防止缓存 --------------------编程问答--------------------
引用 8 楼 fei2yun 的回复:
引用 5 楼 yaoyuchicc 的回复:

引用 1 楼 bdmh 的回复:

你怎么确认是Math.random()产生的,有可能是个标识,比如用户id

js的Math.random 不是后台写的`我看的js源码`每个提交连接都有 v=abc+Math.random 这个参数`我看好多网站都有`所以问问`不知道干什么的

如果是这样的话,那就是出于缓存去考虑的可能性大一点……

开始我自己合计是跟搜索引擎有关系 --------------------编程问答-------------------- 如果同样参数请求一个页面,第一次响应,第二次就不会响应了,所以在url中加入随机参数,表示该请求与上一次不相同。当然js的Math.random()这种做法很不成熟,如果用GetDate()会不会好一点呢``
给分吧·· --------------------编程问答--------------------
引用 12 楼 gaonan_100924 的回复:
如果同样参数请求一个页面,第一次响应,第二次就不会响应了,所以在url中加入随机参数,表示该请求与上一次不相同。当然js的Math.random()这种做法很不成熟,如果用GetDate()会不会好一点呢``
给分吧··

赞成!


PS:SEO用这样的方法的话,绝对完蛋。 --------------------编程问答--------------------
引用 13 楼 fei2yun 的回复:
引用 12 楼 gaonan_100924 的回复:

如果同样参数请求一个页面,第一次响应,第二次就不会响应了,所以在url中加入随机参数,表示该请求与上一次不相同。当然js的Math.random()这种做法很不成熟,如果用GetDate()会不会好一点呢``
给分吧··

赞成!


PS:SEO用这样的方法的话,绝对完蛋。

我说错了`其实不是提交页面`只是获得动态的js而已
http://js.40017.cn/cn/public/js/search/search_car.js?v=abc" + Math.random() --------------------编程问答--------------------
引用 13 楼 fei2yun 的回复:
引用 12 楼 gaonan_100924 的回复:

如果同样参数请求一个页面,第一次响应,第二次就不会响应了,所以在url中加入随机参数,表示该请求与上一次不相同。当然js的Math.random()这种做法很不成熟,如果用GetDate()会不会好一点呢``
给分吧··

赞成!


PS:SEO用这样的方法的话,绝对完蛋。

他这到点是伪连接还是真的.js 还是在后台创建的js数据response.write出来的? --------------------编程问答-------------------- 一般在Ajax请求处理的时候会加Math.random() --------------------编程问答--------------------
引用 16 楼 gaonan_100924 的回复:
一般在Ajax请求处理的时候会加Math.random()

加他做什么 --------------------编程问答-------------------- 防止缓存 --------------------编程问答-------------------- 防止IE缓存该URL --------------------编程问答-------------------- 我觉的应该是防止缓存吧 --------------------编程问答-------------------- 防止缓存作怪。特别在 AJAX 里多
--------------------编程问答-------------------- 看具体情况,各种需求不一样。。一般就是防止缓存的吧,JS的话在验证码里也很多window.href='';这样的是为了刷新验证码用。。。 --------------------编程问答--------------------
引用楼主 yaoyuchicc 的回复:
我看很多网站的url上都加 Math.random();干什么用的?

防止浏览器缓存... --------------------编程问答-------------------- 我感觉也是防止缓存问题。 --------------------编程问答-------------------- 加随机数识别或者其他,
多数是为了不读取页面缓存,
两次请求的URL一样,会读缓存的。 --------------------编程问答-------------------- 防止浏览器缓存.. --------------------编程问答-------------------- 一般都是防止缓存的 --------------------编程问答-------------------- 防止浏览器缓存 --------------------编程问答-------------------- 专门给万恶的IE用的。
因为如果访问同一个地址,可能会被之前的访问缓存下来。后面加个随便的参数,假装新的访问,确保每次数据都是最新的(不然还需要在IE里面设置,不过哪儿有那么多高端用户啊。) --------------------编程问答-------------------- 防止IE缓存请求 --------------------编程问答-------------------- 可能是标识,也有可能是防止缓存的。。。。具体的搞不清楚 --------------------编程问答-------------------- 现代的浏览器为了提高浏览速度,都会大量的使用页面缓存,有些实时性要求较高的页面就不能使用缓存,添加上
这样的参数可以使浏览器的缓存失效。
在IE浏览器中,有用模态窗体来显示一个链接的应用场合,如果不添加随机Url,则每次显示模态窗体都是使用缓存中的数据。 --------------------编程问答-------------------- 防止缓存 --------------------编程问答-------------------- 防止缓存页面,可以刷新页面。例如当有验证码的时候可以通过加个随机数防止验证码不更新。 --------------------编程问答--------------------       刷新页面缓存,如果你不在URL后面加随机数的话页面就不会提交, --------------------编程问答-------------------- 确实是防止缓存的,GET请求,尤其是IE游览器,但第一次请求后,如果没有随机数,就不会在请求了,他会认为你请求的还是上次的页面,就不给你请求了, 火狐到还没事 --------------------编程问答-------------------- 你难道没做过 验证码么????  --------------------编程问答-------------------- --------------------编程问答-------------------- 其实主要的作用都是防止缓存的,有的是用随机用,有的是用当前系统时间。
--------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
你怎么确认是Math.random()产生的,有可能是个标识,比如用户id

sessionid
或者是为了刷新页面每次都更新本地页面也这么做。
--------------------编程问答-------------------- 防止缓存 ! --------------------编程问答-------------------- 这个很多页面加上这个是为了防止缓存,比如你在做ajax验证的时候,时常会发现第一次有效果,然后就没有了,这是因为缓存的原因。加上math就可以了。 --------------------编程问答-------------------- random的话只是防止IE缓存加的一个参数标示,这样就能ajax请求返回最新的。如果说是一个字符串的话,有可能是为了防止程序模拟提交访问做的一个令牌。 --------------------编程问答-------------------- 防止客户端cache。 --------------------编程问答-------------------- 防止有缓存 每次都请求新的页面  --------------------编程问答-------------------- 防止缓存,当使用Frame打开页面时,如果是同一URL,那么浏览器可能会从缓存中读取页面,而不是重新发送一个请求,URL后边加入随机数,保证每次请求的URL都不同,避免缓存 --------------------编程问答-------------------- url加随机数很明显的目的是每次访问的URL都有所不同,这样可以防止页面缓存! --------------------编程问答--------------------
引用 10 楼 tptptp00 的回复:
防止缓存

如果一个请求地址没有变化的话,浏览器有可能会去读缓存 --------------------编程问答-------------------- 防止缓存 --------------------编程问答-------------------- 防止本地缓存 --------------------编程问答--------------------
引用 50 楼 bobby1556 的回复:
防止本地缓存

正解
+1
--------------------编程问答-------------------- 防止缓存 --------------------编程问答-------------------- 这主要是预防IE浏览器的, 因为ie浏览器的缓存很厉害, 在IE下 , 如果同一个路径访问过, 第二次还继续访问, 如果url一样的话,就不会进行请求, 所以加一个随机数, 主要是为了让请求路径多变   保证每次都不一样、 --------------------编程问答--------------------
引用 47 楼 lsc19890723 的回复:
url加随机数很明显的目的是每次访问的URL都有所不同,这样可以防止页面缓存!


+1 --------------------编程问答--------------------
引用 21 楼 heddaz 的回复:
防止缓存作怪。特别在 AJAX 里多

+1 --------------------编程问答-------------------- 最好加个  date.getTime()什么的  ,随机数有可能会重复 --------------------编程问答-------------------- 不错的问题,学习了 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 55 楼 huayy 的回复:
引用 21 楼 heddaz 的回复:
防止缓存作怪。特别在 AJAX 里多

+1
++ --------------------编程问答-------------------- 防止缓存。... --------------------编程问答-------------------- 应该是验证用的随机数 --------------------编程问答-------------------- 这是为了防止浏览器缓存页面的 --------------------编程问答-------------------- 用于显式发送新的url,换一种表达是:唯一标识一个url

用随机数?靠谱么??
我用guid

比如说:获取验证码图片(页面没有刷新,而图片可以多次获取) --------------------编程问答-------------------- 为了防止缓存,每次都是一个新的Url --------------------编程问答-------------------- 解决缓存问题~ --------------------编程问答--------------------
引用 5 楼 yaoyuchicc 的回复:
js的Math.random 不是后台写的`我看的js源码`每个提交连接都有 v=abc+Math.random 这个参数`我看好多网站都有`所以问问`不知道干什么的


从机制上来说,只有服务器端下载html时在消息头上特意设置了网页时间,那么浏览器端才会在随后的重复请求时也提交这个时间,这样服务器端才可能告诉浏览器“请使用你自己的缓存”而不去重复下载html。

对于asp.net网页来说,默认地,从来也不设置网页时间。那么正常的浏览器根本不会去搞什么“客户端缓存”。

但是如果web服务器端是以其它工具开发的,或者asp.net页面的开发人员就是特意在页面中设置了客户端缓存参数。这也有可能。这时候才需要什么“随机干扰”的数字来干扰服务器端判断。

其实这个时候应该判断一下是否有设计问题,根据网站的服务器端设计来决定客户端是否要改变。随便给个随机数,这种胡乱的代码很可能是网站的性能杀手。 --------------------编程问答-------------------- 主要的工作还是保证你的请求每次都是新的,不会用到客户端的缓存 --------------------编程问答-------------------- 基本都是用来防缓存的。 --------------------编程问答-------------------- --------------------编程问答-------------------- 一般都是关联iD 有的则是加密字符 无需在乎这个 --------------------编程问答-------------------- Math.random()产生的东东都是用来防止缓存的,这种是数字串。那种加密的情况是后台返回的有关session的东西,一般是base64编码,包含数字和字母以及等号。两种情况明显不一样。 --------------------编程问答-------------------- 反正我用这个办法防止缓存 --------------------编程问答-------------------- 恩,对的,解决缓存和重复提交问题 --------------------编程问答--------------------
引用 2 楼 fei2yun 的回复:
其实是按钮随机分配的坐标,不是random

当然要看情况
有一些随机字符串,其实是加密防止恶意查询提交用的
 很多网站都是根据随机数来生成 验证码的。。有可能页面使用验证码了。。 --------------------编程问答-------------------- 防止读缓存 --------------------编程问答-------------------- 防缓存的

ajax应用请求数据时候

绝对能体现出这点用处。 --------------------编程问答--------------------
引用 29 楼 sunzongbao2007 的回复:
专门给万恶的IE用的。
因为如果访问同一个地址,可能会被之前的访问缓存下来。后面加个随便的参数,假装新的访问,确保每次数据都是最新的(不然还需要在IE里面设置,不过哪儿有那么多高端用户啊。)


赞成 --------------------编程问答-------------------- 直接百度有很多答案,还有,这个不仅仅防止IE浏览器缓存,其他浏览器也一样。 --------------------编程问答-------------------- 只有验证码我才加 其他的 感觉都是装B的 根本没意义.

谁还能动不动就去修改服务器上的JavaScript啊...
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,