HTTP协议中url和uri的区别。

每个url都是uri,但是不是每个uri都是url。

URI:是统一资源的标识符,web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个URI来定位的。URI的三个组成部分:

  1. 访问资源的命名机制
  2. 存放资源的主机名
  3. 资源自生的名称,由路径表示,着重强调于资源。

URL:统一资源的定位符。在internet上用来描述信息资源的字符串,主要用在各种www客户程序和服务程序上,特别是Mosaic。采用URL可以用一种统一的格式来描述各种信息资  源,包括文件、服务器的地址和目录等。URL的三个组成部分:

  1. 协议(或者称为服务方式)
  2. 存有该资源的主机IP地址,有时也包括端口号
  3. 主机资源的具体地址,如目录和文件名。

接下来学习一下nodejs中URL的三个方法:

在nodejs中URL很重要,只要是涉及到网络请求的接收,路径参数的处理,非常方便的解析出url的组成部分,从而来识别请求的类型,以及来判断如何来返回数据。

1. 首先在命令行输入node进入node环境。(注意:第一次学习cmd命令的时候,以为$也是命令,后来才发现原来他只是一个标识,命令的标识。)

$ node

2. 命令行中查看url的方法。

$ url

3. 首先验证url.parse()这个方法

用法1:不加true参数
$ url.parse('https://promotion.aliyun.com/ntms/act/season.html?utm_campaign=season&utm_medium=images&utm_source=cnblog&utm_content=m_42835')

用法2:追加一个true参数
$ url.parse('https://promotion.aliyun.com/ntms/act/season.html?utm_campaign=season&utm_medium=images&utm_source=cnblog&utm_content=m_42835',true)

参数说明:

  1. protocol:底层使用的协议(http或者ftp等)
  2. slashes:是否有协议的双斜线//
  3. auth:
  4. host: IP地址或者域名
  5. port: 端口 默认是80
  6. hostname: 主机名
  7. hash:嘻哈值 一般对应的是页面上的某个锚点
  8. search: 查询字符串参数
  9. query: 发送给HTTP的一个数据,被等号分割开的键值叫做参数串
  10. pathname: 访问资源路径名
  11. path:路径
  12. href: 没被解析的完整的路径

4. url.format() 方法:将参数合并成合法的url地址,如下图所示

5. url.resolve()方法:拼接

nodejs-url网址解析的好帮手的更多相关文章

  1. url网址解析的好帮手

    接下来进入node的重点,也就是介绍nodejs主要api的功能和如果使用,由于nodejs逐渐能满足这种高并发和大规模的场景.他才被更多的公司所采用 无论什么资源,一定要有明确的地址才有意义,在互联 ...

  2. node.js基础 1之 URL网址解析的好帮手

    URL和URI的区别: URL是统一资源定位符 URI是统一资源标识符 URL是URI的子集(URL一定是URI,但URI不一定是URL) node中的URL中的url.parse protocol: ...

  3. phpcms V9 MVC模式 与 URL访问解析

    [1]URL访问解析 观察访问网页时的网址,可以得出模块访问方法,如下示例: http://www.abcd.com.cn/phpcms/index.php?m=content&c=index ...

  4. Json文件/网址解析

    // // main.m // OC8-Json文件解析 // // Created by qianfeng on 15/6/23. // Copyright (c) 2015年 qianfeng. ...

  5. phpcms(1)phpcms V9 MVC模式 与 URL访问解析(转)

    [1]URL访问解析 观察访问网页时的网址,可以得出模块访问方法,如下示例: http://www.abcd.com.cn/phpcms/index.php?m=content&c=index ...

  6. Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式

    Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...

  7. 巨蟒python全栈开发django4:url反向解析图解&&模板渲染

    第一部分: 1.(1)知识点回顾: django回顾: ()下载安装 输入网址,a,form表单get post,爬虫 (请求)==>django项目服务端的url(r"index/& ...

  8. nodejs模块xml2js解析xml的坑

    在一个项目中,用到nodejs模块xml2js解析xml,xml的数据如下: <xml> <MsgId>6197906553041859764</MsgId> &l ...

  9. django的url反向解析

    目的:防止页面中url地址改变,其他与这个URL地址有关联的都要改,减少耦合度 使用:主要分为在html中和视图函数中的使用 HTML中的使用: 如果我们在项目的url文件中通过include导入了应 ...

随机推荐

  1. APP性能测试(CPU)

    获取数据 :adb shell dumpsys cpuinfo | grep packagename result = os.popen("adb shell dumpsys cpuinfo ...

  2. R+大地图时代︱ leaflet/leafletCN 动态、交互式绘制地图(遍地代码图)

    好久没有学习R的新包了,甚是想念啊! 昨天.今天看到两个极好.不得不学的packages+早上被AWS的服务器整得郁闷ing-于是就来点颜色看看~ 本篇受Lchiffon老师的github启发,对两个 ...

  3. php5.3命名空间内使用 php内置类的时候

    在命名空间内使用内置类库的时候,需要使用 \ 比如 $zip =new \ZipArchive;

  4. STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以

    我用串口精灵发送数据没有问题,但是接收数据没反应. 串口接受的时候必须要用中断的,你发送只靠单一的标志位是可以判断的,但是接受的时候,你是一直停留在while里面,我们判断接受是否完成,通过检测是否收 ...

  5. HI3531由DMA 发起PCIe 事务

    Hi3531 PCIe 控制器内含DMA 控制器,DMA 控制器包含有两个DMA 通道(一个 DMA 读通道和一个DMA 写通道).PCIe 控制器内包含的DMA 控制器用于大数据量 的存储器读写事务 ...

  6. 利用MD5加密字符串

    private static string MD5E(string temp) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] source=Sy ...

  7. CF AIM Tech Round 3 (Div. 2) D - Recover the String

    模拟 首先可以求出 0 和 1 的个数 之后按照01 10 的个数贪心安排 细节太多 错的都要哭了 #include<bits/stdc++.h> using namespace std; ...

  8. 零基础6个月学好java月薪1w+看看他是怎么学好java的

    21世纪进入信息时代,信息科技给人类的生产和生活方式带来了深刻的变革,信息产业已成为推动国家经济发展的主导产业之一,Java作为含金量极高的一门IT技术,很多人希望从事这个行业,那么想学好Java,要 ...

  9. C#技术点--修改系统时间

    C#的System.DateTime类提供了对日期时间的封装,用它进行时间的转换和处理很方便,但是我没有在其中找到任何可以用来修改系统时间的成员.用过VC.VB等的朋友可能知道,我们可以调用Win32 ...

  10. 我也不知道什么是"莫比乌斯反演"和"杜教筛"

    我也不知道什么是"莫比乌斯反演"和"杜教筛" Part0 最近一直在搞这些东西 做了将近超过20道题目吧 也算是有感而发 写点东西记录一下自己的感受 如果您真的 ...