Http 路径部分中带有//的URL有效吗?
我有一个关于URL的问题: 我已经阅读了,但仍然有一个关于一个URL的问题: 如果URI包含权限组件,则路径组件Http 路径部分中带有//的URL有效吗?,http,url,cookies,session-cookies,rfc3986,Http,Url,Cookies,Session Cookies,Rfc3986,我有一个关于URL的问题: 我已经阅读了,但仍然有一个关于一个URL的问题: 如果URI包含权限组件,则路径组件 必须为空或以斜杠(“/”)字符开头。如果一个URI 不包含权限组件,则路径无法开始 带有两个斜杠字符(“/”)。此外,URI引用 (第4.1节)可以是相对路径参考,在这种情况下, 第一个路径段不能包含冒号(“:”)字符。ABNF 需要五条单独的规则来消除这些情况的歧义,其中只有一条 它将匹配给定URI引用中的路径子字符串。我们 使用通用术语“路径组件”来描述URI子字符串 由解析器匹
必须为空或以斜杠(“/”)字符开头。如果一个URI 不包含权限组件,则路径无法开始
带有两个斜杠字符(“/”)。此外,URI引用
(第4.1节)可以是相对路径参考,在这种情况下,
第一个路径段不能包含冒号(“:”)字符。ABNF
需要五条单独的规则来消除这些情况的歧义,其中只有一条 它将匹配给定URI引用中的路径子字符串。我们 使用通用术语“路径组件”来描述URI子字符串
由解析器匹配到这些规则之一 我知道,
//server.com:80/path/info
是有效的(它是一个与架构相关的URL)
我也知道http://server.com:80/path//info
无效
但我不确定以下说法是否有效:
http://server.com:80//path/info
我问题背后的问题是,cookie没有发送到http://server.com:80//path/info
,由URI创建时http://server.com:80/path/info
限制为/path
请参见和
共识:浏览器将按原样执行请求,不会更改请求。/
字符是路径分隔符,但路径段定义为:
path-abempty = *( "/" segment )
segment = *pchar
表示http://example.com/
可以直接后跟另一个斜杠,无限大。服务器可能会忽略它,但浏览器不会,正如您所了解的那样
短语:
如果URI不包含授权组件,则路径无法开始
带有两个斜杠字符(“/”)
允许,但特别说明在这种情况下,可能不存在权限(server.com:80
)
所以:是的,它是有效的,不,不要使用它