关于URL编码

作者: baiying | 来源:发表于2017-08-09 17:00 被阅读37次

URL:统一资源定位符
标准格式:
scheme://host[:port#]/path/.../[;url-params][?query-string][#anchor]

scheme //有我们很熟悉的http、https、ftp以及著名的ed2k,迅雷的thunder等。
host   //HTTP服务器的IP地址或者域名
port#  //HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如tomcat的默认端口是8080 http://localhost:8080/
path   //访问资源的路径
url-params  //所带参数
query-string    //发送给http服务器的数据
anchor //锚点定位

为什么要进行URL编码

一个东西如果需要编码,说明它自身是不适合传输的
具体看一下哪些情况要进行URL编码
1.会引起歧义:比如在URL中我们以键值对的格式携带参数,每对键值对之间用&分隔,加入我们的参数中本身含有&,那么在解析的时候显然会出错
2.非法字符:URL采用的是ASCII编码,所以非ASCII编码出现在URL中也会导致解析错误,例如中文

编码的几种方式

  • escape():这个方法不同于后两种方法,它是对字符串进行编码,
    此方法现在几乎被淘汰,此不赘述
  • encodeURI():这个方法是真正对URL进行编码的,它着眼于整个URL进行编码,不会对 ASCII字母 、数字 、 ~ ! @ # $ & * ( ) = : / , ; ? + ' 进行编码.
    例如:
encodeURI("http://www.cnblogs.com/season-huang/some other thing");
//"http://www.cnblogs.com/season-huang/some%20other%20thing";

此处对空格进行了编码,而不会对其他ASCII码进行编码
对应解码函数:decodeURL()

  • encodeURIComponent()着眼于对单个的参数进行编码,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码
    对应解码函数:decodeURLComponent()

相关文章

  • URL编码

    JS关于URL编码 url的三个js编码函数escape(),encodeURI(),encodeURICompo...

  • 关于URL编码

    URL:统一资源定位符标准格式:scheme://host[:port#]/path/.../[;url-para...

  • 关于URL编码

    阮一峰老师的文章

  • 关于URL编码

    关于URL编码 一、问题的由来 URL就是网址,只要上网,就一定会用到。 一般来说,URL只能使用英文字母、阿拉伯...

  • 关于 URL 编码

    对于 URL 来说,之所以要进行编码,是因为 URL 中有些字符会引起歧义。 不同的操作系统、不同的浏览器、不同的...

  • ROR(47)url编码与Base64编码的区别

    URL 编码 Base64 编码的区别 1 url编码 1.1 什么是 url 编码 型如/url/?%E5%B9...

  • 关于url、Unicode编码

    今天思考了一个问题,为什么网站要进行url编码,查阅了资料说是一种规范,但个人还是比较理解的一个原因就是一个URL...

  • 服务器与浏览器之间的编码问题

    服务器与浏览器之间的编码问题 url编码 URL编码 1. 什么是url 2. 什么是url编码 2.1 在因特网...

  • Web 相关编码和转义

    常用编码 URL 编码 HTML 编码 JS 编码 URL编码 一般来说,URL只能使用英文字母(a-zA-Z)、...

  • 关于URL编码 沉浸式写作神器——Markdown 认识与入门 Markdown How TO - Scroll ...

网友评论

    本文标题:关于URL编码

    本文链接:https://www.haomeiwen.com/subject/atdqrxtx.html