前言
原文: https://blog.imlete.cn/article/Parse-get-url-string.html
封装开源地址: Body-Data
当你使用querystring.parse()
或者是url.parse()
时会得到一个警告@deprecated — since v11.0.0 - Use the WHATWG URL API.
由于 url.parse()
方法使用一种宽松的非标准算法来解析网址字符串,因此可能会引入安全问题
具体来说,已经确定了主机名欺骗以及用户名和密码处理不当的问题
url.parse()
在v11.0.0
开始被打上@deprecated
注解(也不知道叫做注解合不合理,可能是 java 写多了吧),在v16.0.0
后被完全移除,同时还一并移除的有url.format()
url.resolve()
/**
* 在 querystring 的 TS 源码开头已经被打上了 @deprecated 具体说明时候被完全移除目前还不得而知
* 部分注释已被我被删除
* @deprecated Legacy
* @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/querystring.js)
*/
declare module "querystring" {
}
declare module "url" {
/**
* 在 url 的 TS 源码里 parse() 已经被打上了 @deprecated 从v11.0.0开始,到v16.0.0被移除
* 部分注释已被我被删除
* @since v0.1.25
* @deprecated Legacy: Use the WHATWG URL API instead.
* @param urlString The URL string to parse.
* 部分注释已被我被删除
*/
function parse(urlString: string): UrlWithStringQuery;
}
为什么?
这是因为 nodejs 的url.parse
方法采用的传统的urlObject
,不符合URL 标准,因此被弃用
WHATWG 是 (Web Hypertext Application Technology Working GroupWeb 超文本应用程序技术工作组)
使用 URL
使用 URL 类对 url 进行操作,详细文档见(可将域名后的 org 改为 cn 看中文文档)