http - 可以使用http ://inside an URL body?吗

标签 http url

据我了解,URL 由以下字段组成:

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

作为

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

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

最佳答案

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

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

通常,浏览器会在发出 http 请求之前对此类格式错误的 URI 进行编码,这就是它在实践中起作用的原因。

关于http - 可以使用http ://inside an URL body?吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141922/

相关文章:

c - 在 C 中解析日期 Http header 的简单方法是什么?

python - urllib 下载的文件与我手动下载的文件不同

php - 如何处理 SEO 友好 url 中的#(哈希)字符?

x之后y之前的不同长度的MYSQL子字符串

ruby-on-rails - 多个用户的 Rails http 基本身份验证?

security - 与仅用于登录的 SSL 的安全通信?

javascript - 如果 AngularJS 匹配一个值,它会在加载时更改单个 URL 参数

python - 将 URL 转换为 HTML 链接

http - 如何将 CAFile 添加到我们的证书中

http - 使用 wxHtmlWindow 在后台下载网页