博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js中的URL
阅读量:6693 次
发布时间:2019-06-25

本文共 1860 字,大约阅读时间需要 6 分钟。

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,例如

·

 
123
url.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

 
12
var url = require('url');var addr = 'http://www.baidu.com';console.log(url.parse(addr));

运行结果为:

 
1234
D:\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/' }

转载于:https://www.cnblogs.com/chris-d-nerd/p/5182560.html

你可能感兴趣的文章
[案例]网易云音乐的个性化推荐
查看>>
《QTP自动化测试权威指南(第二版)》—第2章2.3节搜索标签(Search Tab)
查看>>
数据结构
查看>>
王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
查看>>
【hibernate框架】一对一双向外键关联(Annotation实现)
查看>>
Android热修复简单总结
查看>>
CSS 火焰?不在话下
查看>>
设计模式--适配器模式(Adapter Pattern)
查看>>
谈谈我理解的Android组件化
查看>>
史上最清晰易懂的babel配置解析
查看>>
spring boot2.x 整合Mybatis
查看>>
我的前端那些事 --less进阶
查看>>
面试总结1
查看>>
Python pymysql数据库之建库建表、增删改查
查看>>
webpack打包多页面的方式
查看>>
如何学习游戏开发?游戏开发如何入门?Unity3D好学吗?怎么学习,学习路线是什么?...
查看>>
2018/12/29
查看>>
postgresql中的查询(query)二
查看>>
yii2控制台执行
查看>>
height()内容自适应,超出显示滚动条
查看>>