当前位置: 首页 > 编程日记 > 正文

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。

转载于:https://www.cnblogs.com/samve/p/10808614.html

相关文章:

python游戏结束显示分数代码_当游戏循环在Python中运行时,多线程来显示游戏分数?...

我想根据比赛时间的推移得分。为此,我想让两个循环同时运行。游戏循环和得分循环,每1.5秒加1。当我运行程序时,分数不会出现。我是否正确使用多线程?这是最好的办法吗?为了简单起见,我只发布了相关代码。谢…

NOIP2015解题报告 By ljt12138

Day1t1 幻方 练过的一道题,简单模拟,用二维数组存储,ij两个游标记录横纵坐标,利用题目条件改变坐标直到填入n个数即可。复杂度O(n^2) AC Day2t2 图的最小环 首先抽象出图论模型。每个人对应点,传输对应边。因为自己…

设计模式笔记——Adapter

适配器模式Adapter 将一个类的接口转换成用户希望的另外一个接口。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用的环境要求不一样的情况。 package adapter.pattern; /*** * author Real H LI**/ public class Existed {public void OldRequest(){Sy…

iOS12-crash错误-reason: 'UITableView failed to obtain a cell from its dataSource'

错误原因: cellForRowAtIndexPath函数返回了nil override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {let cell tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: in…

with as python_python - with as的用法

摘自:http://www.cnblogs.com/DswCnblog/p/6126588.htmlWith 是什么?有一些任务可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取…

wcf系列学习5天速成——第四天 wcf之分布式架构(转载)

今天是wcf系列的第四天,也该出手压轴戏了。嗯,现在的大型架构,都是神马的, nginx鸡群,iis鸡群,wcf鸡群,DB鸡群,由一个人作战变成了群殴....... 今天我就分享下wcf鸡群,高…

检测jQuery.js是否已加载的判断代码

转载自http://www.jb51.net/article/27185.htm 测类、方法、变量或属性是否已存在,这是Javascript编程基础知识。在这里我们就是要检测jQuery()或$()函数是否存在 当然,该方法不局限于jQuery的检测,对与任何Javascript变量或函数都是通用的。…

Java中常见的锁简述

在Java的应用中,或多或少的都会接触到一些锁,那么问题就来了,在Java中,常见的锁有哪些,都有什么样的作用?? 这里给大家简单的简述一下这些学常见的锁。 本文件所涉及到的锁: 1.公平锁…

加了好友怎么还掉血_微信聊天窗口出现风险提醒,无法添加好友解决办法

再更,你想马上解封,你得有朋友。没有朋友,你就等个十天半个月!更新一下 帖子浏览人挺多的,有问题可以在评论里相互交流,下面是原文:先让我说一句脏话:傻x微信风控系统 终于特么的聊天…

[小明爬坑系列]AssetBundle原理介绍

一.简介 Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中,提供了封装与解包的方法使用起来很便利。 二.移动平台特点 Assetbundle是可以把预制,文件以及场景都打包到Assetbundle中去的,但是在移动平台…

Ubuntu16.04菜单栏侧边栏不显示

2019独角兽企业重金招聘Python工程师标准>>> (1)只有桌面上显示一些原有的文档或图片。但打开文档或者图片后也是没有窗口菜单栏,这样连关闭都没法点,快捷AltF4也没有反应。而且鼠标点击拖动不了…

C 语言中的 strtok 调用小技巧

1 #include <stdio.h>2 #include <string.h>3 4 char *my_strtok(char *buf, char *delims)5 {6 static int first 1;7 if(first){ //8 first 0; // 互斥操作&#xff0c;确保后面代码仅在本次调用执行9 return strtok(buf, delims); 10…

powershell连接数据库_PowerShell 连接SQL Server 数据库

PowerShell 通过ADO.NET连接SQL Server数据库&#xff0c;并执行SQL脚本。工作中整理的一小段脚本&#xff0c;后来没有用上&#xff0c;先记录在这里&#xff1a;建立数据库连接查询返回一个DataTatble对象执行一条SQL语句通过事物执行多条SQL语句## 建立数据库连接.#function…

GDB调试进阶

GDB 调试 ------------------------------------------------------------------------------- gdb 帮助文档 help -- 查看 gdb 的命令种类 help <CmdType> -- 查看 CmdType 种类的 gdb 命令 apropos <keyWord> -- 查看关键字 keyWord 的相关命令 info <keyWord…

RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass

安全研究人员在官方的 RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass。该工具的下载量高达 2800 万次&#xff0c;但这并不意味着下载的所有版本都存在后门&#xff0c;受影响的版本是 v3.2.0.3&#xff0c;研究人员呼吁用户尽可能快的更新&#xff0c;认为可能有数…

读大叔深入理解javascript(2)

Module模式的应用&#xff1a; var Caculator function(eqt){var box document.getElementById(eqt);return {add:function(x,y){return xy;}} }; var a new Caculator(11); a.add(1,3); // return 4 这种方式每次都需要new 一下&#xff0c;也就是说每个实例在内存里都是一…

android 无法接收广播_别告诉我你不认识Android中广播接收者(二)

前面我们了解了什么是广播接收者与广播接收者的创建&#xff0c;这一次我们要接着继续去了解广播接收者的相关知识&#xff0c;这些知识包括广播接收者的注册、自定义广播与广播的类型。当我们学习完广播接收者之后&#xff0c;该如何才能让它起到作用呢&#xff1f;还有广播接…

jQuery中$(function(){})与(function($){})(jQuery)的区别

首先&#xff0c;这两个函数都是在页面载入后执行的函数&#xff0c;其中两者的区别在于&#xff1a; 在jQuery中$(function(){})等同于jQuery(function(){})&#xff0c;另一个写法为jQuery(document).ready(function(){ })&#xff0c;在DOM加载完成之后立即执行&#xff0c;…

UITableView注意点

在iOS应用中&#xff0c;UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、 Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影&#xff0c;可见它的重要性。然而在使用第三方应用时&#xff…

083、Prometheus架构(2019-05-05 周日)

参考https://www.cnblogs.com/CloudMan6/p/7692765.htmlPrometheus 是一个非常优秀的监控工具&#xff0c;准确的说&#xff0c;应该是监控方案。Prometheus 提供了监控数据搜集、存储、处理、可视化和告警一整套的解决方案。Prometheus 重要组件的架构如下&#xff1a;Prometh…

自动获取mysql建表语句_脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明...

常规建表语句&#xff1a;CREATE TABLE test_table (id int(11) NOT NULL,name char(64) NOT NULL,password char(64) NOT NULL,PRIMARY KEY (name,id)) ENGINEInnoDB DEFAULT CHARSETutf8 COMMENTtest;解析脚本代码&#xff1a;# coding:utf-8import redeftable_design_transf…

对云风 cstring 第二次解析

前言 从明天起 关心粮食和蔬菜 我有一所房子 面朝大海 春暖花开 本文前提条件 1.了解 posix 线程 2.了解 原子操作 3.具备简单C基础,或者 你也敲一遍. 如果上面不太清楚,你可以翻看我以前的博客,或者百度搜索. 结论 1.云风前辈的 玩具 cstring 有点坑, 内存管理很随意(也可能时…

C# 获取当前路径方法

//获取包含清单的已加载文件的路径或 UNC 位置。 public static string sApplicationPath Assembly.GetExecutingAssembly ( ).Location; //result: X:\xxx\xxx\xxx.dll (.dll文件所在的目录.dll文件名) //获取当前进程的完整路径&#xff0c;包含文件名(进程名)。 string st…

土地档案管理系统需求分析

土地档案管理系统需求分析 1 项目背景 随着国土大面积调查工作的全面展开和城镇地籍管理工作得以日趋细化&#xff0c;各种野外调查数据&#xff0c;不同比例尺图件资料急剧增加。特别是城市建设的空前发展以及土地有偿使用法规的实施&#xff0c;使得地籍变更日益频繁、地籍信…

mysql8.0 服务移除_Linux下彻底删除Mysql 8.0服务的方法

观看本文前最好有一定的Linux命令基础&#xff0c;具体为centos7.3环境中清除使用yum安装的Mysql卸载前请先关闭Mysql服务service mysql stop使用 rpm 命令的方式查看已安装的mysqlrpm -qa|grep mysql开始卸载Mysql服务使用yum安装需要先进行清除服务等yum remove mysql mysql-…

老李推荐:第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 1...

老李推荐&#xff1a;第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 在初始化HierarchyViewer的实例过程中&#xff0c;HierarchyViewer会调用自己的成员方法setupViewServer来把ViewServer装备好&#xff0c;那么我们这里先看下这个方法…

泛型详解 高级进阶

泛型详解 高级进阶 转载于:https://www.cnblogs.com/thiaoqueen/p/10830499.html

vim 的中文编码问题

在vim编辑的时候会出现中文编码问题&#xff0c;我们可以这样解决在/usr/share/vim/的目录下有一个vimrc文件打开这个文件&#xff0c;你可能要用sudo打开然后在最后输入这行代码保存即可&#xff1a;$> sudo vim /usr/share/vim/vimrc set fileencodingsutf-8,gb2312,gbk,g…

mysql回表_到底什么情况下mysql innodb会发生回表操作?

谢邀MySQL innodb的主键索引是簇集索引&#xff0c;也就是索引的叶子节点存的是整个单条记录的所有字段值&#xff0c;不是主键索引的就是非簇集索引&#xff0c;非簇集索引的叶子节点存的是主键字段的值。回表是什么意思&#xff1f;就是你执行一条sql语句&#xff0c;需要从两…

经验分享:CSS浮动(float,clear)通俗讲解

很早以前就接触过CSS&#xff0c;但对于浮动始终非常迷惑&#xff0c;可能是自身理解能力差&#xff0c;也可能是没能遇到一篇通俗的教程。 前些天小菜终于搞懂了浮动的基本原理&#xff0c;迫不及待的分享给大家。 写在前面的话&#xff1a; 由于CSS内容比较多&#xff0c;小菜…