请教一下关于URL中的查询字符串


https://www.baidu.com/?a=222

https://www.baidu.com/?a=333
这两个URL中的查询字符串不同,但访问的都是百度首页。

有两个问题请求大家帮忙解惑(我已经在网上查了,但是这方面的资料好像比较少,现在还是不懂):
第一个,请问一下,这个“ 查询字符串 ”应该怎么去理解?
第二个,为什么查不到某个东西(比如ajax中,用t= Math.random()来清除缓存,这个t每次都是随机小数),URL还能正常工作呢?
谢谢各位!

http url JavaScript

ティッシュ姫 9 years, 8 months ago

其实去学一点简单的后端知识就明白了……

作为前端只能简单答一下,不一定完全对,不过不会差太多……

  1. 一般在向服务器发起get请求的时候?后面的字符串会被解析为查询字符串,格式一般是 ?key=value&key2=value2 ,后端服务会解析这些字符串,转为一系列的值键对
    当然你用传统表单的get方法,使用默认行为也会向action的url发送 ?name=val 的请求,这些应该来说是约定俗成的。

  2. 如前面所说url中 ? 后面的字符串会被服务端路由解析为查询字符串,所以只要 ? 之前的路径正确,就能解析到对应的路由上去。至于为什么会更新,应该是浏览器发现请求的url和之前的不相同,所以判断本地缓存的资源已经过时了,需要重新向服务器请求新的资源,这样就达到了刷新的效果。

星星魔力。 answered 9 years, 8 months ago

Your Answer