可以在URL正文中使用http://吗?

时间:2012-08-27 12:22:59

标签: http url

据我了解,URL包含以下字段:

  • 协议(http,https,ftp等)
  • 用户名
  • 用户密码
  • 主机地址(IP地址或DNS FQDN)
  • 端口(可暗示)
  • 服务器文档根目录
  • 中文档的路径
  • 一组参数和值
  • 文件部分(#)

作为

protocol://user:password@host:port/path/document?arg1=val1&arg2=val2#part

但我刚刚在路径部分中遇到了一个使用“http://”的示例:有一个重定向服务(显示广告并为您通过它路由的流量付费),它只添加了一个目标URL(在完整形式,“http://”)。从标准的角度来看它是否正常?它不会破坏任何东西吗?通常情况下,我永远不会期望在有效的URL中遇到“//”双斜杠,冒号或“#”,但是在上面示例中的位置上。

1 个答案:

答案 0 :(得分:1)

不,从标准的角度来看,这是不对的。

根据Section 3.3 Path Component in RFC-2396,路径不能包含以下字符 - "/", ";", "=", and "?"

通常,浏览器在发出http请求之前对这些格式错误的URI进行编码,这就是它在实践中有效的原因。