首页 > URL中是search在前还是hash在前?

URL中是search在前还是hash在前?

如题,在url中,是search在前面还是hash在前面?

我看网上很多解释URL格式是这样的,也就是search在前
http://domain.com/?search=a#hash

但是在angular中,确实hash在前?

那么我想问一下,到底是hash在前还是search在前?


在URL里面,当然是search在前,hash在后。

只是在location对象中,hash属性在search属性前面。

http://domain.com/?search=a#hash

最后,'?search=a' 整个地是location.search,'#hash'整个地才是location.hash


对Angular.js了解不多,没太搞懂hash怎么在search前了……关于URI的格式是由RFC 3986规定的。

其中?search=a这种叫query#hashfragment
* query的规定是以第一个?开始,至行尾或#结束。
* fragment#为开始,行尾为结束。
也就是说query必须在fragment之前。

另外根据queryfragment字符限定的规定,两者中都可以含有/?,但不可以含有#。(还有其它的限制,这里是简要的说法,因为我们此处要讨论以?#开头的字串)所以Angular.js中出现的http://example.com/#/some/path?search=a#hash实际上是不符合RFC规定的。但是此处是为了给不支持HTML5的浏览器提供兼容支持,也是无奈之举。


这个在前后有什么关系吗??难道url中的参数还会影响取值?


hash的部分是不会传到服务器的,即正常请求的话,#后面的部分服务器是接收不到的

当然js检测hash然后发起不同的请求另说.

这个不存在什么规范的问题吧,看自身怎么架构的吧

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