HTTP处理程序的URI部分中的第一个字符是否始终为正斜杠?

时间:2012-10-21 12:37:55

标签: http url sinatra uri nancy

我们正在项目中实现HTTP请求处理程序子系统。 HTTP RFC表示绝对路径不能为空;如果原始URI中不存在,则必须以“/”(服务器根目录)给出。

问题:

这是否意味着这两个浏览器请求可以保证产生相同的http请求动词,uri和主机?

浏览器请求1:

http://www.foo.com/

浏览器请求2:

http://www.foo.com

Http请求(未经测试,但我认为是这种情况):

GET / HTTP/1.1
Host: www.foo.com

跟进问题:

如果上述假设是正确的,那么正斜率是否保证在正确的HTTP请求中始终是路径的第一个字符?

最后一个问题:在像Ruby Sinatra这样的框架中,如果说用户应该始终使用前导斜杠开始他或她的处理程序,这是一个安全的假设吗?

1 个答案:

答案 0 :(得分:0)

跟进问题:

据我所知:

http://www.foo.com/path

http://www.foo.com/path/

是两个不同的网址

Sinatra的路线:

/路径

不会映射到具有尾随/

的URL请求

然而,在Nancy中,是否存在尾随斜杠并不重要。


问题:

如果您为

创建路线

路径

它将以相同的方式从基本URL映射

/路径

将映射。

基本上两者都是相同的。

然而,我个人的偏好是始终拥有领先的前锋,因为它就像是说“根网址后跟我定义的路线”。