考虑这两个网址:
www.g.com/flow;a=1
www.g.com/flow?a=1
分号和问号之间有什么区别?
a=1
两者的含义是否相同?
答案 0 :(得分:3)
?
分隔URL的查询部分,而在这种情况下,;
会考虑路径本身的参数。
大多数图书馆都不公开这个。表面上它是路由请求的一部分(因为路径是整个资源位置的一部分),而不是查询部分(它影响查询的处理)。
我见过的唯一常见的是Java Servlet容器,它使用JSESSIONID
参数限定路径。
在这种情况下你可以看到这是有道理的:
http://www.example.com/context;JSESSIONID=12345?query_param1=ABC
从servlet容器POV,JSESSIONID在路由阶段将内部会话绑定到请求,但处理逻辑不知道这一点,只看到查询参数和路径的其余部分。
我实际上不知道路径参数是否完全暴露在Servlet容器中,也许如果你得到整个URL,但是内部Java URL类没有路径参数的概念,所以我不能说。 / p>