URL 属性详解

作者: 等这姑娘老在我心里 | 来源:发表于2020-09-08 14:11 被阅读0次

一般url格式

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

完整url 结构图

                    hierarchical part
        ┌───────────────────┴─────────────────────┐
                    authority               path
        ┌───────────────┴───────────────┐┌───┴────┐
  abc://username:password@example.com:123/path/data?key=value&key2=value2#fragid1
  └┬┘   └───────┬───────┘ └────┬────┘ └┬┘           └─────────┬─────────┘ └──┬──┘
scheme  user information     host     port                  query         fragment

  urn:example:mammal:monotreme:echidna
  └┬┘ └────────────┬───────────────┘
scheme              path

demo详解
code 地址

let urlStr = "https://www.baidu.com:2333/path/data?key=123&value=321#fragid"

let url = URL.init(string: urlStr)!

let urlReq = URLRequest.init(url: url)

// absoluteURL 绝对网址
print(urlReq.url?.absoluteURL.absoluteString ?? "") //https://www.baidu.com

// host 主机
print(urlReq.url?.host ?? "") //www.baidu.com

// port 端口
print(url.port ?? "端口") //2333

// scheme 协议
print(urlReq.url?.scheme ?? "") //https

// query 查询语句 键值对&
print(urlReq.url?.query ?? "") // key=123&value=321

// relative 相对路径
print(urlReq.url?.relativeString ?? "") //https://www.baidu.com:2333/path/data?key=123&value=321#fragid
print(urlReq.url?.relativePath ?? "") //path/data

// fragment 解码后的片段
print(urlReq.url?.fragment ?? "") // fragid

参考资料: [iOS-Foundation] NSURL

相关文章

网友评论

    本文标题:URL 属性详解

    本文链接:https://www.haomeiwen.com/subject/pwgdektx.html