精华内容
下载资源
问答
  • 计算机中URL是指什么

    千次阅读 2021-07-21 02:20:59
    满意答案ringfan推荐于 2017.11.25采纳率:42%等级:10已帮助:719人统一资源定位符(URL,英语Uniform Resource Locator的缩写)也被称为网页地址,是因特网上标准的资源的地址。它最初是由蒂姆·伯纳斯-李发明用来...

    满意答案

    02ae427d08e371d7e90d5b995e828d6d.png

    ringfan

    推荐于 2017.11.25

    02ae427d08e371d7e90d5b995e828d6d.png

    采纳率:42%    等级:10

    已帮助:719人

    统一资源定位符(URL,英语Uniform Resource Locator的缩写)也被称为网页地址,是因特网上标准的资源的地址。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。

    是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。

    Internet上的每一个网页都具有一个唯一的名称标识,通常称之为URL地址,这种地址可以是本地磁盘,也可以是局域网上的某一台计算机,更多的是Internet上的站点。简单地说,URL就是Web地址,俗称“网址”。

    URI 方案集,包含如何访问 Internet 上的资源的明确指令。

    URL 是统一的,因为它们采用相同的基本语法,无论寻址哪种特定类型的资源(网页、新闻组)或描述通过哪种机制获取该资源。

    对于 Internet 服务器或万维网服务器上的目标文件,可以使用“统一资源定位符 (URL)”地址(该地址以“ http://”开始)。Web 服务器使用“超文本传输协议 (HTTP)”,一种“幕后的”Internet 信息传输协议。例如, http://www.microsoft.com/ 为 Microsoft 网站的万维网 URL 地址。

    URL的一般格式为(带方括号[]的为可选项):

    protocol :// hostname[:port] / path / [;parameters][?query]#fragment

    00分享举报

    展开全文
  • 问题背景接收客户端传入参数,base64解码失败,经过排查发现原因是参数上传前字符串有+,但是PHP接收后,发现+变成了空格,导致base64解码失败。测试验证访问一个测试的接口 /internal/testcurl '...

    问题背景

    接收客户端传入参数,base64解码失败,经过排查发现原因是参数上传前字符串中有+,但是PHP接收后,发现+变成了空格,导致base64解码失败。

    测试验证

    访问一个测试的接口 /internal/test

    curl 'http://127.0.0.1/internal/test?a=abc+def'

    验证1:

    简单输出$_GET

    public function test() {

    var_dump($_GET);

    }

    结果:

    array(1) {

    ["a"]=>

    string(7) "abc def"

    }

    结论:可以看到直接接收GET参数,+变成了空格

    +变成空格的原因

    经过一顿查资料,首先我们要知道URL编码是什么

    URL编码

    一个例子

    我们常见的一个URL,例如CSDN搜索功能的一个URL(https://so.csdn.net/so/search/s.do?q=PHP基于字典树算法实现搜索联想功能&t=&u=),当你从浏览器中复制出来的时候,这个URL长下面这样子 https://so.csdn.net/so/search/s.do?q=PHP%E5%9F%BA%E4%BA%8E%E5%AD%97%E5%85%B8%E6%A0%91%E7%AE%97%E6%B3%95%E5%AE%9E%E7%8E%B0%E6%90%9C%E7%B4%A2%E8%81%94%E6%83%B3%E5%8A%9F%E8%83%BD&t=&u=

    这就是URL被编码了,这里编码是将中文转换成了%开头的两个十六进制数。

    为什么URL会被编码呢?

    URL中的参数部分是由一个个key=value的参数对组成,而如果&=/?等在URL具有一定功能的特殊字符出现在key或者value中时,就会导致语义出现不一致的情况,例如参数q的值是a&b,那么当出现q=a&b&f=s这样一个参数对时,是表示q的值是a&b,还是q的值是a,而b的值为空呢?

    因此需要对URL进行编码,这样被编码过的字符就不再会有歧义,上面例子中的q=a&b&f=s会被编码成q=a%26b&f=s,你看这样是不是就不会混乱了。

    如何对URL进行编码呢?

    URL如何进行编码由RFC标准进行规定,

    在RFC-1738对URL进行说明的各项标准中,提出了要对URL中不安全的字符进行编码,编码方式即使用%和紧跟的两个十六进制数字表示,注意在该标准中空格被编码成+

    在升级版RFC-2396对URI进行说明的各项标准中,再次提到了对参数进行编码,注意在在该标准中空格被编码成%20

    在再次升级版的RFC-3986标准中,对Url的编解码问题做出了更加详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。

    回头来研究下一开始的问题

    通过以上的资料,我们可以看出来+被变成了空格的原因,正是按照RFC-1738标准进行的反编码,也就是.PHP接收$_GET参数遵循的是的是RFC-1738标准。

    所以直接读取$_GET时,+就反过来被解码成了空格

    怎么解决这个问题

    那我们怎么让PHP不按照RFC-1738标准进行解码,而是按照升级版的RFC-3986标准进行解码呢?

    最简单的办法当然是让+以正确的方式进行编码,也就是在客户端请求接口时,按照RFC-3986标准进行对URL进行编码。此时+被编码成%2b,当PHP接收参数时,将%2b解码成+,大功告成。

    验证结果

    对URL进行正确的编码

    curl 'http://127.0.0.1/internal/test?a=abc%2bdef'

    此时可以看到接口输出

    array(1) {

    ["a"]=>

    string(7) "abc+def"

    }

    PHP语言里还有别的坑吗?

    除了接收$_GET参数外,PHP中还有对URL参数处理的两个常用的函数urlencode和urldecode。

    注意这两个函数也是遵循RFC-1738进行编码和解码,从官网的说明可以看到

    This differs from the » RFC 3986 encoding (see rawurlencode()) in that for historical reasons, spaces are encoded as plus (+) signs.

    做个试验

    先对字符串abc def进行编码

    $str = 'abc def';

    echo urlencode($str);

    输出结果

    abc+def

    然后对字符串a=abc+def进行解码

    $str = 'a=abc+def';

    echo urldecode($str);

    输出结果

    a=abc def

    可以看出确实空格被编码成了+,而+则被解码成空格

    怎么解决呢?

    那PHP里面有没有使用RFC-3986标准进行编码的呢,有的,是rawurlencode和rawurldecode,PHP官方是这么写的

    rawurlencode — URL-encode according to RFC 3986

    再来做个试验

    先对字符串abc def进行编码

    $str = 'abc def';

    echo rawurlencode($str);

    输出结果

    abc%20def

    可以看到空格被编码成%20,然后对字符串a=abc+def进行解码

    $str = 'a=abc+def';

    echo rawurldecode($str);

    输出结果

    a=abc+def

    可以看到+解码后还是+,没有变成空格

    结论

    所以最符合标准,并且比较容易实现的方案就是让客户端or前端在请求服务端接口时遵循RFC-3986标准进行正确的URL编码

    展开全文
  • 在HTML,常见的 URL有多种表示方式:相对URL:example.phpdemo/example.php./example.php../../example.php/example.php绝对URL:...

    在HTML中,常见的 URL有多种表示方式:

    相对URL:

    example.php

    demo/example.php

    ./example.php

    ../../example.php

    /example.php

    绝对URL:

    http://dancewithnet.com/example.php

    http://dancewithnet.com:80/example.php

    https://dancewithnet.com/example.php

    同时HTML中有大量的元素属性值为URL,一般利用JavaScript获取这些URL属性值有两种方法:

    此时页面绝对URL是http://dancewithnet.com/

    var oA = document.getElementById('example-a');

    oA.href == 'http://dancewithnet.com/example.php';

    oA.getAttribute('href') == 'example.php';

    我们希望通过直接访问属性的方式得到完整绝对URL,通过getAttribute方法得到其原始的属性值,实际上这是一个比较理想的结果,在所有 的A级浏览器中,能顺利得到这个结果的只有Firefox和IE8,其他浏览器都或多或少特殊情况,具体哪些元素的属性存在什么样的情况请看演示实例。

    在大部分浏览器中存在的问题是,两种方式都返回的是原始属性值,而实际应用中往往需要的是其绝对的URL,《Dealing with unqualified HREF values》中的解决方案太过于复杂,这 里提供一种相对简单的解决方案,如果不考虑区别浏览器代码会非常简单:

    此时页面绝对URL是http://dancewithnet.com/

    var oForm = document.getElementById('example-form');

    //IE6、IE7、Safari、Chrome、Opera

    oForm.action == 'example.php';

    oForm.getAttribute('action') == 'example.php';

    //获取绝对URL的通用解决方案

    getQualifyURL(oForm,'action') == 'http://dancewithnet.com/example.php';

    getQualifyURL = function(oEl,sAttr){

    var sUrl = oEl[sAttr],

    oD,

    bDo = false;

    //是否是IE8之前版本

    //http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/

    //http://msdn.microsoft.com/en-us/library/7kx09ct1%28VS.80%29.aspx

    /*@cc_on

    try{

    bDo = @_jscript_version <5.8 ?true : @false;

    }catch(e){

    bDo = false;

    }

    @*/

    //如果是Safari、Chrome和Opera

    if(/a/.__proto__=='//' || /source/.test((/a/.toString+''))

    || /^function \(/.test([].sort)){

    bDo = true;

    }

    if(bDo){

    oD = document.createElement('div');

    /*

    //DOM 操作得到的结果不会改变

    var oA = document.createElement('a');

    oA.href = oEl[sAttr];

    oD.appendChild(oA);

    */

    oD.innerHTML = [''].join('');

    sUrl = oD.firstChild.href;

    }

    return sUrl;

    }

    在IE6和IE7这两个史前的浏览器身上还有一些更有意思的事情,两种方法在HTML元素A、AREA和IMG获取的属性值都是绝对URL,幸好微软为getAttribute提供了第二个参数可以解决这个问题,同时还可以对IFEAM和LINK元素解 决前面提到的两种方法都返回原始属性的问题:

    此时页面绝对URL是http://dancewithnet.com/

    var oA = document.getElementById('example-a'),

    oLink = document.getElementById('example-link');

    oA.href == 'http://dancewithnet.com/example.php';

    oA.getAttribute('href') == 'http://dancewithnet.com/example.php';

    oA.getAttribute('href',2) == 'example.php';

    oLink.href == 'example.php';

    oLink.getAttribute('href') == 'example.php';

    oLink.getAttribute('href',4) == 'http://dancewithnet.com/example.php';

    来自:随网之舞

    展开全文
  • url中传递url参数|url中特殊字符&、?、=无法解析问题1、微信小程序报错:SyntaxError: Unexpected end of JSON input2、错误场景复现3、错误原因及解决方案3.1 错误原因解析3.2 解决方案4、参考文献 1、微信小...

    1、微信小程序报错:SyntaxError: Unexpected end of JSON input

    思路:起因是需要用url传递json对象,无法直接传递。因此将json对象转换为String以url方式传递,然后在target页面进行解析。例如:

    http://127.0.0.1:8080/myWeb?type=isLogin&url=http://localhost:8080/shop/admin?order_id=17347001822420000002&is_timeout=&is_history=no&staffId=123

    // 1、转换成string
    let stuffObj = JSON.stringify(stuff);
    console.log(stuffObj);
    
    wx.navigateTo({
      url: '../updateOrDelProducts/index?stuffObj=' + stuffObj
    });
    
    // 2、解析string
    let stuff = JSON.parse(options.stuffObj);
    

    then…
    在这里插入图片描述

    2、错误场景复现

    stuff对象中有一个img数组,是存放url的数组。

    img: [
            'https://656e-env-9eb476-1258886794.tcb.qcloud.la/images/tx4.jpg?sign=9817258738b68c534b35fbfc04bde928&t=1553372736',
            'https://656e-env-9eb476-1258886794.tcb.qcloud.la/images/tx2.jpg?sign=6e1e8eec2c2fc497e3b2ac03b367e770&t=1553372700',
            'https://656e-env-9eb476-1258886794.tcb.qcloud.la/images/tx3.jpg?sign=32821196ccfd12115af3d64dc7d67132&t=1553372724'
          ],
    

    3、错误原因及解决方案

    3.1 错误原因解析

    URL参数中是不能出现+ % # & = ? /等特殊字符的,因为这些字符在URL中有默认的含义,比如&在URL中表示参数间的分隔符,如果不将&转义而直接放在url里,后端的Tomcat就会以这个&为分隔符将参数拆分掉。
    如果要传递这些特殊字符给后端,需要将它们转义。转码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 +号的编码值是"%2B"。
    下表中列出了一些URL特殊符号及编码:

    特殊字符在url中默认含义转义码
    +URL 中+号表示空格%2B
    空格%20
    /分隔目录和子目录%2F
    ?分隔实际的 URL 和参数%3F
    %指定特殊字符%25
    #表示书签%23
    &URL中指定的参数间的分割符%26
    =URL中指定参数的值%3D

    3.2 解决方案

    // ? -> %3F 
    // = -> %3D
    // & -> %26
    let urls = item.img;
    if(urls != undefined && urls != ''){
      for(let i=0;i<urls.length;i++){
        urls[i] = urls[i].replace(/\?/g,"%3F");
        urls[i] = urls[i].replace(/\=/g,"%3D");
        urls[i] = urls[i].replace(/\&/g,"%26");
      }
      console.log(urls);
    }
    let stuffObj = JSON.stringify(stuff);
    

    再解析成json对象:

    let stuff = JSON.parse(options.stuffObj);
    // console.log(options);
     // console.log(stuff);
     let urls = stuff.img;
     if(urls != undefined && urls != ''){
       for(let i=0;i<urls.length;i++){
         urls[i] = urls[i].replace(/\%3F/g,"?");
         urls[i] = urls[i].replace(/\%3D/g,"=");
         urls[i] = urls[i].replace(/\%26/g,"&");
       }
       console.log(urls);
     }
    
     this.setData({
       stuff:stuff
     });
    },
    

    4、参考文献

    展开全文
  • 下列关于JDBC驱动的说法,正确的是()【填空题】【多选题】下面选项,关于 DriverManager.getConnection( String url,String user,String pwd)方法的描述正确的有( )【单选题】LCD1602模块的RS=1,R/W=1,表示( ...
  • url格式是什么

    2021-01-30 03:14:54
    url格式的英文全称是Uniform Resource Locator,是指网络地址;在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL,它是WWW的统一资源定位标志。 推荐:《编程视频》 url格式的英文全称是Uniform ...
  • A:< caption >< /capt答案查看答案在HTML文档中,用于表示页面标题的标记对...【单选题】当请求URL中有参数q=010时,以下关于HTTP请求参数说法正确的是______。【单选题】< hr color=red >表示_____...
  • 【单选题】下面选项,用于在web.xml配置监听器的元素是(5.0分)【填空题】Cookie技术用于将会话过程的数据保存到( ),...(5.0分)【单选题】下面关于setMaxAge(int expires)方法参数默认值的描述,正确的是(5....
  • 以下英文缩写和中文名字的对照中正确的是()。A.URL——用户报表清单B.CAD——计算机辅助设计C.USB——不更多相关问题检验溶液的酸碱性常用______;粗略测定溶液的酸碱度常用______.下列常见物质,pH大于7的()...
  • URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。表单里提交时也是如此,当包含非西欧字符的字符串时,系统也会将这些字符转换成application/x-...
  • 表格语法格式:...........border边框宽度默认值为0,既没有边框cellspacing表格单元格的边距大小,默认值为两个像素cellpadding表格单元格之间的间距大小,默认值为两个像素tr元素语法格式:....align属性对齐...
  • 下表列出了一些URL特殊符号及编码十六进制值1.+URL +号表示空格%2B2.空格URL中的空格可以用+号或者编码%203./分隔目录和子目录%2F4.?分隔实际的 URL 和参数%3F5.%指定特殊字符%256.#表示书签%237.&URL ...
  • 计算机的地址是表示

    千次阅读 2021-07-25 08:51:25
    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。计算机的地址指的是URL。...URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。它最初是由蒂姆・伯纳斯・李发明...
  • web地址的URL一般格式为

    千次阅读 2021-06-13 06:06:42
    为Web地址的URL的一般格式为协议名://计算机域名地址[路径[文件名]]什么是URL?它的格式是什么?URL的定义 统一资源定位符(URL,英语Uniform Resource Locator的缩写),它的英文简称叫做URL。也被称为网页地址,是...
  • 前言,在做一个登录的过程,发现个别账号验证通不过,仔细排查后发现是接收的参数进行了urldecode处理,使得某些特殊字符如加号’+‘变成了空格,以至于影响到了后面的数据。下面来看看代码。get 方法代码function...
  • URL中的特殊字符

    2021-04-23 19:09:05
    URL出现了有+,空格,/,?,%,#,&...+ URL +号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的URL和参数 %3F % 指定特殊字符 %25 # 表示书签
  • url中的特殊字符问题

    2020-12-20 12:18:56
    在 使用url进行参数传递时,经常会传递一些中文名(或含有特殊字符)的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312, 而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。...
  • URL 是一个网页地址。 URL可以由字母组成,如"runoob.com",或互联网协议(IP)地址: 192.68.20.50。大多数人进入网站使用网站域名来访问,因为 名字比数字更容易记住。 Web浏览器通过URL从Web服务器请求页面。 ...
  • HTTP之URL详解

    千次阅读 2021-05-12 10:41:02
    URL(Uniform Resource Locator,统一资源定位器)是因特网的万维网服务程序上用于指定信息位置的表示方法。在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL,它是WWW的统一资源定位标志,就是指...
  • Java 如何处理URL

    2021-03-06 14:24:55
    表示为互联网上的资源,如网页或者FTP地址。本文我们将介绍Java是如处理URL的。URL可以分为如下几个部分。protocol://host:port/path?query#fragmentprotocol(协议)可以是 HTTP、HTTPS、FTP 和 File,port 为端口号...
  • url简介详解

    2021-11-11 13:27:26
    URL是对互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址。URL它具有全球唯一性,正确URL应该是可以通过浏览器打开此网页的,但如果您访问外网,会提示网页无法打开,这并不能说明这...
  • url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好?解决办法将这些字符转化成服务器...+ URL +号表示空格 %2B空格 URL中的空格可以用+号或者编码 %20/ ...
  • 【单选题】关于HttpSessionListener接口方法,HttpSession对象被销毁时将调用的方式( )【多选题】下面选项,能够用于监听绑定到HttpSession域对象状态的事件监听器的是( )(多选)【判断题】在实际开发时会使用...
  • URL的英文全称

    千次阅读 2021-06-17 10:04:01
    URL的英文全称|URL是什么意思URL(英文全称是Uniform Resoure Locator:统一资源定位器)是WWW页的地址,它从左到右由下述部分组成 internet资源类型(scheme):指出WWW客户程序用来操作的工具。如“http://”表示WWW...
  • 【判断题】使用 动作标记,可以使用表达式或者字符串为 Bean 的属性赋值【单选题】在 HTML ,要... 标记描述正确的是 ()【判断题】在 HTML 文档流, 默认是块元素【单选题】给定以下 JSP代码片段,有2个客户依次浏...
  • url通用格式 <协议>://<用户名>:<密码>@<主机域名或者ip地址>:<端口号>/<路径>;<参数>?<查询>#<片段> 其中最重要的是<协议><主机域名>&...
  • parse_url函数原型:parse_url ( string $url [, int $component = -1 ] )说明:parse_url() 函数可以解析一个字符串的URL,并返回一个包含URL 各种组成部分关联数组。如果缺少了其中的某一个,则不会为这个组成部分...
  • 今天我在访问thinkphp方法是发现,路径,方法名都正确,但就是访问不了。经过仔细观察对比,路径没有错,再对路径输入大小写对比,发现URL的字母对大小写敏感。问题发现了,看一下解决方法1、到核里包的配置文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 258,325
精华内容 103,330
关键字:

url表示方法中正确的是