日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

WHATWG API——url.parse()的替代方案

作者:白瑕 更新時間: 2022-01-09 編程語言

前言

你可能已經了解到官方廢棄(不鼓勵使用)url.parse() 方法的事了.
由于 url.parse() 方法使用一種寬松的非標準算法來解析網址字符串,因此可能會引入安全問題。 具體來說,已經確定了主機名欺騙以及用戶名和密碼處理不當的問題。
這個新的替代語法也不復雜 如果你只打算拆解URL來獲取到數據, 新的方法只比url.parse()長個一兩句, 但卻能換來更安全的環境;

Why WHATWG API?

針對url.parse()的問題, 使用了更加具有選擇性和精確度的方法選擇編碼字符以應對復雜的URL和用戶信息, 主機.
為此它們重新弄了四個編碼集來提升精確度:

編碼集 作用
C0控制的百分比編碼集 用于解決特定條件下的主機和路徑;
片段百分比編碼集 用于處理網址片段;
路徑百分比編碼集 用于處理大多數網址路徑
userinfo編碼集 專用于處理網址編碼中的用戶信息

加持下, WHATWG API不僅僅是彌補了url.parse()的缺點, 在某些方面甚至強過url.parse();

使用

有兩個參數可供傳入:

參數 說明
參數一 一個URL中的文件路徑(相對地址).
參數二 一個標準的URL, 得是帶"http://"或"https://"的這種絕對地址, 可能要費點心思拼接.

參數二可選, 當第一個參數為相對地址時才應當傳入參數二.

公式:

const 自定義名 = new URL([相對地址], [URL]);
console.log(自定義名.屬性之一);
console.log(自定義名.屬性之一);

例:

    const { url } = req;
    const { host } = req.headers;
    const myURL = new URL(url, `http://${host}`);
    console.log("這是req:" + req);
    console.log(url);

在這里插入圖片描述

變量外面套大括號:
不加括號相當于把req對象賦給局部變量host
加了相當于把req的對象里名字叫做header的屬性的值拿出來,assign給本地的變量host

在進行URL解析后, 依舊可以通過以前的方法來從解析結果里拿到想要的數據,
只不過有些屬性名和以前不同了…

屬性 說明
hash 獲取/設置"#"后的內容
host 獲取/設置URL的主機部分
hostname 獲取/設置URL的主機名部分
href 獲取/設置傳入的整個URL
origin 獲取/設置協議, 服務器名和域名即URL中文件前的部分
username 獲取/設置URL的用戶名部分
password 獲取/設置URL的密碼部分
pathname 與origin截然相反,獲取/設置文件路徑,且不會帶上亂七八糟的傳值字段
port
protocol
search 獲取/設置"?"后的序列化部分

屬性獲取 例:

const myURL = new URL('https://baidu.com/foo/foolish?234444&dwdwdbwdwd');
console.log("href: " + myURL.href);
console.log("origin: " + myURL.origin);
console.log("host: " + myURL.host);
console.log("hostname: " + myURL.hostname);
console.log("pathname: " + myURL.pathname);
console.log("protocol: " + myURL.protocol);
console.log("search: " + myURL.search);
/* console.log("username: " + myURL.username);
console.log("password: " + myURL.password);
console.log("port: " + myURL.port);
console.log("hash: " + myURL.hash); */

結果:
在這里插入圖片描述
因為URL里沒有某些部分的內容, 所以后面4句沒有進行輸出.


原文鏈接:https://blog.csdn.net/qq_52697994/article/details/121096520

欄目分類
最近更新