什么是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。

Node.js的url模块简介的更多相关文章

  1. node.js 的url模块

    var URL = require('url');  var testUrl = "http://www.baidu.com:8080/index.php?content=abc" ...

  2. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  3. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  4. node.js获取url中的各个参数

    实例代码test.js var http=require('http'); var url=require('url'); var querystring=require('querystring') ...

  5. 利用Node.js的Net模块实现一个命令行多人聊天室

    1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...

  6. Node.js的Formidable模块的使用

    今天总结了下Node.js的Formidable模块的使用,下面做一些简要的说明. 1)     创建Formidable.IncomingForm对象 var form = new formidab ...

  7. Node.js入门:模块机制

    CommonJS规范      早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...

  8. Node.js的net模块

    net模块提供了一个异步网络包装器,用于TCP网络编程,它包含了创建服务器和客户端的方法 创建TCP服务器 net.createServer方法 创建客户端去连接服务器 net.connect方法 简 ...

  9. node.js中net模块创建服务器和客户端(TCP)

    node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...

随机推荐

  1. vue如何实现热更新

    我们都知道,对于node来说,前端vue代码的迭代节奏是很快的,可能一周要迭代几次,但是node的迭代却没那么平凡,可能一周更新一次甚至更久,那么为了node服务的稳定,减少node服务的发布次数,是 ...

  2. iview Upload组件多个文件上传

    使用  iview Upload 上传组件 手动上传 包括单个文件和多个文件 思路:创建一个数组 把需要上传的文件 push到这个数组里面 1.引用组件 2.手动上传,根据官方文档 设置:before ...

  3. python GIL全局解释器锁与互斥锁 目录

    python 并发编程 多线程 GIL全局解释器锁基本概念 python 并发编程 多线程 GIL与Lock python 并发编程 多线程 GIL与多线程

  4. Android Studio 如何获取 text文本内容

    1.找到目录的main先建立assets格式的文件夹 2.再把需要读取的txt 文件放入到该文件夹下(名字随意),这里取 list.txt. 文件内容 格式如下 3.读取文本内容 工具代码 /** * ...

  5. HDU1846 Brave Game 题解

    题面 本题是一道有向图博弈问题: 该题便是著名的巴什博弈: 我们可以发现,当n=0的时候后手必胜(设其为P态),n=1~m这几种状态由于先手可以一次全部取完导致先手必胜(设其为N态). 接着当n=m+ ...

  6. python正则表达式re 中m.group和m.groups的解释

    转载:http://www.cnblogs.com/kaituorensheng/archive/2012/08/20/2648209.html 先看代码instance: >>> ...

  7. CentOS7下载与安装错误全记录

    这篇文章记录安装CentOS7过程错误全记录,供大家和自己参考 起因:笔记本用的win10系统,开启热点的时候,总是10分钟就自动关闭.于是折腾linux系统,平时用win10系统,也切换到linux ...

  8. IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(Application.StartupPath + "\\temp", 0); 报:异常来自 HRESULT:0x80040228

    原因:未添加License. 解决办法:在窗体中添加LicenseControl即可.如下图,License图标运行时不会显示.

  9. 编写python爬虫采集彩票网站数据,将数据写入mongodb数据库

    1.准备工作: 1.1安装requests: cmd >> pip install requests 1.2 安装lxml: cmd >>  pip install lxml ...

  10. 深入理解java虚拟机(3)垃圾收集器与内存分配策略

    一.根搜索算法: (1)定义:通过一系列名为"GC Roots"的对象作为起点,从这些起点开始向下搜索,搜索走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连的时 ...