zoukankan      html  css  js  c++  java
  • Node.js的url模块简介

    什么是URL

    URL是Uniform Location Resource的缩写,翻译为“统一资源定位符”,也就是描述资源位置的固定表示方法。被URL描述的资源可以位于互联网上,也可以位于本地。

    URL的组成结构

    基本URL包含模式(或者成为协议),服务器名(或IP地址),路径和文件名。

    第一部分:协议

    通过协议,可以获取打开URL的方式,最常见的协议是http,从网上查到的协议如下:

    http 超文本传输协议

    https 用安全套接字层传送的超文本传输协议

    ftp 文件传输协议

    mailto 电子邮件地址

    ldap 轻型目录访问协议搜索

    file 本地文件

    news Usenet新闻组

    gopher Gopher协议

    telnet Telnet协议

    第二部分:地址与路径

    文件所在的服务器名称+端口号/用户名密码+文件的路径+文件本身的名称

    当URL没有给出对应的文件名是,一般访问默认的文件名,例如index.html或default.html

    Nodejs中的URL

    URL对象的成员

    URL对象中的成员如下:

    href 被传入的未经解析的URL地址,包含协议(protocol)、主机名(host)等,都表示为小写

    protocol:请求的协议名称,表示为小写,如‘http:’

    slashes:冒号后的斜线,值为true或false

    host:主机及端口的全部信息,例如‘host.com:8080’

    auth:身份验证信息,例如‘user:pass’

    hostname:主机名,例如‘host.com’

    port:端口号,例如‘8000’

    pathname:路径名,在主机名之后,查询语句之前的地址部分,包含‘/’,例如‘/p/a/t/h’

    search:URL地址的查询部分,包括开头的问号,例如‘?query=string’

    path:路径名与查询的串联,没有经过解码,例如‘/p/a/t/h?query=string’

    query:查询部分的参数,或者解析后的查询字符串,例如‘query=string’或者{'query':'string'}

    hash:URL地址中‘#’字符后的片段

    URL对象中的函数

    1、url.format(urlObj) :

    将一个URL对象转化成格式化的URL地址。

    url.format({
        protocol:"http:",
        host:"182.163.0:60",
        port:"60"
    });
    /*
    返回值:
    'http://182.163.0:60'
    */

    2、url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) :

    将一个URL地址解析为一个URL对象,第二个参数传入布尔值,表示是否解析查询字符串,第三个参数传入布尔值,表示pathname是否去除host。示例:

    url.parse只传一个参数的情况:

    var url = require('url');
    console.log(url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash"));

    返回值:

    {
       protocol: 'http:',
       slashes: true,
       auth: 'user:pass',
       host: 'host.com:8080',
       port: '8080',
       hostname: 'host.com',
       hash: '#hash',
       search: '?query=string',
       query: 'query=string',
       pathname: '/p/a/t/h',
       path: '/p/a/t/h?query=string',
       href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
    }
    //没有设置第二个参数为true时,query属性为一个字符串类型

    url.parse第二个参数为true的情况:

    url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash",true);
    /*
    返回值:
    {
    protocol: 'http:',
    slashes: true,
    auth: 'user:pass',
    host: 'host.com:8080',
    port: '8080',
    hostname: 'host.com',
    hash: '#hash',
    search: '?query=string',
    query: { query: 'string' },
    pathname: '/p/a/t/h',
    path: '/p/a/t/h?query=string',
    href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
    }
    返回的url对象中,query属性为一个对象
    */

    3、url.resolve(from, to) :

    将from指向的URL转换到to。

  • 相关阅读:
    vs2015 系统找不到指定的文件(异常来自HRESULT:0x80070002)问题的解决方法
    Quartz定时任务和IIS程序池闲置超时时间冲突解决方案
    怎样设置IIS6.0的闲置超时时间
    C#窗体如何通过keybd_event()函数模拟键盘按键(组合键)产生事件
    安装完DevExpress14.2.5,如何破解它呢?
    IIS6.0发布后对路径“D:xxxxxxxweb.config”的访问被拒绝问题的解决方法
    CentOS7 nginx+tomcat实现代理访问java web项目让项目支持jsp和php
    col-xs , col-sm , col-md , col-lg是什么意思?什么时候用?
    Linux 防火墙命令的操作命令CentOS
    Linux(centos)新建,删除,移动,重命名文件夹和文件的命令
  • 原文地址:https://www.cnblogs.com/samve/p/10808614.html
Copyright © 2011-2022 走看看