href: 准备解析的完整的 URL,包含协议和主机(小写)
'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'protocol: 请求协议, 小写
'http:'slashes: 协议要求的斜杠(冒号后)
true 或 falsehost: 完整的 URL 小写 主机部分,包含端口信息
'host.com:8080'auth: url 中的验证信息
'user:pass'hostname: 域名中的小写主机名
'host.com'port: 主机的端口号
'8080'pathname: URL 中的路径部分,在主机名后,查询字符前,包含第一个斜杠
'/p/a/t/h'search: URL 中的查询字符串,包含开头的问号
'?query=string'path: pathname 和 search 连在一起
'/p/a/t/h?query=string'query: 查询字符串中得参数部分,或者使用 querystring.parse() 解析后返回的对象
'query=string' or {'query':'string'}hash: URL 的 “#” 后面部分(包括 # 符号)
'#hash'URL方法
URL模块包含分析和解析 URL 的工具。调用 require(‘url’) 来访问模块
var url = require('url');
/*
{ parse: [Function: urlParse],
resolve: [Function: urlResolve],
resolveObject: [Function: urlResolveObject],
format: [Function: urlFormat],
Url: [Function: Url] }
*/
console.log(url);
url.parse(urlStr[, parseQueryString][, slashesDenoteHost])输入 URL 字符串,返回一个对象
第二个参数parseQueryString(默认为false),如为false,则urlObject.query为未解析的字符串,比如author=%E5%B0%8F%E7%81%AB%E6%9F%B4,且对应的值不会decode;如果parseQueryString为true,则urlObject.query为object,比如{ author: ‘小火柴’ },且值会被decode
第三个参数slashesDenoteHos(默认为false),如果为true,可以正确解析不带协议头的URL,类似//foo/bar里的foo就会被认为是hostname;如果为false,则foo被认为是pathname的一部分
var url = require('url');
var str = 'http://user:pass@host.com:8080/p/a/t/h?author=%E5%B0%8F%E7%81%AB%E6%9F%B4#hash';
/*
Url {
protocol: 'http:',
slashes: true,
auth: 'user:pass',
host: 'host.com:8080',









