URL的长度也是有限制的,至于限制多少 要看用的是什么浏览器。
一个完整的URL包括以下几部分:
1.协议部分:
以前用的是HTTP协议,而后应为不安全,就该用https协议,安全的通道。有的网站没有HTTPS证书:由于此网站没有证书,因此信息(如密码或信用卡)不会安全地发送到此网站,并且可能被其他人截获或看到。
2.域名部分:
一个URL中,也可以使用IP地址作为域名使用
3.端口部分:
跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口。
4.虚拟目录部分:
从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。
5.文件名部分:
从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。
6.锚部分:
从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分。
7.参数部分:
从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
URL特殊字符需转义
字符 | 含义 | 16进制值编码 |
---|---|---|
+ | URL 中 + 号表示空格 | %2B |
空格 | URL中的空格可以编码为 + 号或者 %20 | %20 |
/ | 分隔目录和子目录 | %2F |
? | 分隔实际的 URL 和参数 | %3F |
% | 指定特殊字符 | %25 |
# | 表示书签 | %23 |
& | URL 中指定的参数间的分隔符 | %26 |
= | URL 中指定参数的值 | %3D |
Python实现编码与解码
Python 的标准库urllib.parse
模块中提供了用来编码和解码的方法,分别是 urlencode() 与 unquote() 方法。