Node.js中的URL
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对象中的函数
url.format(urlObj) 将一个URL对象转化成格式化的URL地址
url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) 将一个URL地址解析为一个URL对象,第二个参数传入布尔值,表示是否解析查询字符串,(第三个参数传入布尔值,表示pathname是否去除host,这个官方文档说明没有完全看明白,后面测试一下)
url.resolve(from, to) 将from指向的URL转换到to,例如
·
1
2
3url.resolve('/one/two/three', 'four') // '/one/two/four'
url.resolve('http://example.com/', '/one') // 'http://example.com/one'
url.resolve('http://example.com/one', '/two') // 'http://example.com/two'
通过代码测试
测试环境:node.js 4.2.4
经测试,第二和第三个参数无效。
代码为URLTest.js
1
2var url = require('url');var addr = 'http://www.baidu.com';
console.log(url.parse(addr));
运行结果为:
1
2
3
4D:\MyHTML\MyJS\URLTest>node URLTest.jsUrl { protocol: 'http:', slashes: true,
auth: null, host: 'www.baidu.com', port: null, hostname: 'www.baidu.com',
hash: null, search: null, query: null, pathname: '/', path: '/',
href: 'http://www.baidu.com/' }
Node.js中的URL的更多相关文章
- node.js中的url.parse方法使用说明
node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...
- node.js中的路由(url)初步
1.建立n4_root.js var http = require('http'); var url = require('url'); //这是node.js中自带的var router = req ...
- node.js (01http 模块 url 模块)
// 引入 http 模块-->Node.js 中的很多功能都是通过模块实现. var http = require('http'); // http.createServer() 方法创建服务 ...
- node.js中使用http模块创建服务器和客户端
node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...
- Node.js之HTPP URL
几乎每门编程语言都会包括网络这块,Node.js也不例外.今天主要是熟悉下Node.js中HTTP服务.其实HTTP模块是相当低层次的,它不提供路由.cookie.缓存等,像Web开发中不会直接使用, ...
- node.js中http通讯模块
创建一个服务器 首先建立一个js文件,命名为app.js写入内容: const http=require('http'); http.createServer((request,response)=& ...
- Node.js中的不安全跳转如何防御详解
Node.js中的不安全跳转如何防御详解 导语: 早年在浏览器大战期间,有远见的Chrome认为要运行现代Web应用,浏览器必须有一个性能非常强劲的Java引擎,于是Google自己开发了一个高性能的 ...
随机推荐
- java IO 实例分析
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见 ...
- Flume 1.4.0 User Guide
Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregatin ...
- [转载] 关于“淘宝应对"双11"的技术架构分析”
微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.
- FlowPlayer 参数说明
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> & ...
- 3.2 GUN as汇编(本文内容大部分引用原文,非原创)
as86汇编仅仅用于编译内核中的boot/bootsect.s引导扇区程序和实模式下的设置程序boot/setup.s.内核中其余所有汇编语言程序(包括C语言产生的汇编程序)均使用gas来编译,并与C ...
- nginx-301重定向开始
日常工作中使用301重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变.SEO优化.等等,301重定向可以很方便的使页面实现跳转. 参考 URL重写模块 一.首先更改配置 ...
- Css溢出隐藏
display: -webkit-box;-webkit-line-clamp: 2; /*多少行数之后显示为省略...*/word-wrap: break-word;word-break: ...
- fabric自动化部署django
使用fabric部署django应用 使用fabric部署django应用 本文是我的网站易读中文网自动化部署的脚本实现,以下代码在ubuntu和debian中测试通过 由于网站使用的是python技 ...
- jQuery 中的事件绑定与取消绑定
1:在jQuery中使用bind方法进行事件的绑定,bind方法有两个参数,第一个参数是事件的类型例如click,change,keyup,keydown,blur,focus等.第二个参数是一个回调 ...
- Xtrabackup 对MYSQL进行备份还原
在操作MYSQL中注意两个概念: 干什么都记得 flush privileges; grant all on *.* to root@'localhost' identified by 'passwo ...