↑↓ 选择 · ↵ 打开 · 共索引 374 篇

    URL编码简析

    URL编码简析,rfc1738协议

    ARCHIVE 这篇写于 2016 年,距今 10 年多了。里面的版本、链接和做法可能都已经过时,看的时候留个心眼。

    URL,每个人都不陌生,即便是非专业人士,也能懂。

    或者我换个名词,你肯定能动了。

    URL,就是网址。

    URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字或符号。这个在RFC1738协议中有明确要求的。

    http://www.ietf.org/rfc/rfc1738.txt

    关于URL中存在汉字的情况,阮一峰大神在很早之前有写一篇博文-关于URL编码,我在这里不再陈述。

    URL还可能出现+,空格,/,?,%,#,&,=等特殊符号,我们要改如何是好呢?

    答案就是URL Encode,它的编码的格式是:一个百分号,后面跟对应字符的ASCII(16进制)码值。

    URL字符转义

    • URL 中+号表示空格 %2B
      空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F
      ? 分隔实际的URL和参数 %3F
      % 指定特殊字符 %25

    表示书签 %23

    & URL 中指定的参数间的分隔符 %26
    = URL 中指定参数的值 %3D

    更多相关知识,我也不再陈述了。

    tips

    接下来了,我给大家分享一个实际使用小技巧。

    如果你使用过七牛的图片处理功能imageView2,那你应该能深有体会。

    http://developer.qiniu.com/resource/gogopher.jpg?imageView2/1/w/200/h/200

    如果imageView2参数没有统一处理的话,就会存在一种情况是:每个使用图片的地方都按照自己所需进行了处理。

    如果客户端和服务器都做了处理呢?

    可能就得到了

    http://developer.qiniu.com/resource/gogopher.jpg?imageView2/1/w/200/h/200?imageView2/1/w/100/h/100

    很显然我们知道,上面的链接是会报错的。

    {“error”:“invalid argument”}

    如果我们要让该图片按照我们自己控制的方式来显示,那么我们只需要在最前面URL后拼接imageView2,然后再带上#,得到如下URL:

    http://developer.qiniu.com/resource/gogopher.jpg?imageView2/1/w/200/h/200#?imageView2/1/w/100/h/100

    就这样很巧妙的解决了。