什么是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. Java 并发编程:核心理论(一)

    前言......... 并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能.它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰.思维缜密,这样才能写出高效.安全.可 ...

  2. 2019JAVA第六次实验报告

    Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.10.18 评分等级 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获 ...

  3. SpringMvc 整合mybatis项目搭建

    1.使用idea创建maven项目 2.在项目src目录下 添加java文件夹 并设置类型为sources,添加resource文件夹 设置为resources 4.修改pom文件 添加引用 < ...

  4. CDH日常运维

    1/ 作业有问题: 查log,没log再跑一次查log. 如果没有log的情况,比如hiveserver2挂了,查strr. 2/ 查集群名字 #看hdfs集群的名字,在cdh的hdfs配置中查:na ...

  5. Hbase的几个关键问题(转自log.csdn.net/javastart/article/details/43772575)

    什么是HBase?何时用HBase?与Hive.Pig的区别?HBase的结构为何HBase速度很快?HBase常用的操作有哪些?HBase的一些配置和监控 什么是HBase? HBase,是Hado ...

  6. python接口、抽象类与抽象方法

    接口: -url -数据类型,python不存在 class 类名 1.类中的方法可以写任意多个 2.如果想要对类中的方法做约束,就需要写接口 接口中定义一个方法f1,可以约束继承他的子类 class ...

  7. kafka工作原理

    https://blog.csdn.net/qq_29186199/article/details/80827085 https://www.jianshu.com/p/4bf007885116 ht ...

  8. HTML-简单动画

    简单动画 (1)简单动画通常称之为“过渡transition” Transition-property:需要过渡的属性,但是并非所有的属性都支持过渡. Transition-duration:过渡的时 ...

  9. jQuery中outerWidth()方法

    截图自:菜鸟教程https://www.runoob.com/jquery/html-outerwidth.html

  10. express-handlebars

    https://www.npmjs.com/package/express-handlebars