python url空格_编码空格字符的URL:+或%20?

本文详细解析了URL的组成部分及其编码规则,强调了不同部分的保留字符差异,并给出了具体实例说明。

这种混乱是因为URL至今仍被“破坏”。采取“http://www.google.com“例如,这是一个URL。URL是一个统一的资源定位器,实际上是一个指向网页的指针(在大多数情况下)。自1994年第一个规范以来,URL实际上有一个非常明确的结构。+---------------+-------------------+

|      Part     |      Data         |

+---------------+-------------------+

|  Scheme       | http              |

|  Host         | www.google.com    |

+---------------+-------------------++-------------------+---------------------+

|        Part       |       Data          |

+-------------------+---------------------+

|  Scheme           | https               |

|  User             | bob                 |

|  Password         | bobby               |

|  Host             | www.lunatech.com    |

|  Port             | 8080                |

|  Path             | /file;p=1           |

|  Path parameter   | p=1                 |

|  Query            | q=2                 |

|  Fragment         | third               |

+-------------------+---------------------+

https://bob:bobby@www.lunatech.com:8080/file;p=1?q=2#third

\___/   \_/ \___/ \______________/ \__/\_______/ \_/ \___/

|      |    |          |          |      | \_/  |    |

Scheme User Password    Host       Port  Path |   | Fragment

\_____________________________/       | Query

|               Path parameter

Authority每个部分的保留字符是不同的。

对于HTTPURL,路径片段部分中的空格必须编码为“%20”(不是,绝对不是“+”),而路径片段部分中的“+”字符可以保留未编码。

现在,在查询部分中,空格可以编码到“+”(为了向后兼容性:不要试图在URI标准中搜索它)或“%20”,而“+”字符(由于这种歧义的结果)必须转义到“%2B”。

这意味着“蓝色+浅蓝”字符串必须在路径和查询部分中进行不同的编码:

从这里可以推断,如果没有对URL结构的语法感知,就不可能对完整构造的URL进行编码。

这归结为:

你应该%20在?和+之后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值