URL规范术语
我一直在阅读,似乎没有非常一致和完全接受的URL部分术语。这是真的吗?我想知道URL部件术语有哪些标准。最常见的是什么?是否有任何公认的标准 我发现: 1. 2.从浏览器上的JavascriptURL规范术语,url,terminology,Url,Terminology,我一直在阅读,似乎没有非常一致和完全接受的URL部分术语。这是真的吗?我想知道URL部件术语有哪些标准。最常见的是什么?是否有任何公认的标准 我发现: 1. 2.从浏览器上的Javascript 协议-URL的协议方案,包括最终的“:” 主机名-域名 端口-端口号 pathname-/pathname 搜索-?参数 散列-#片段(u)标识符 用户名-域名前指定的用户名 密码-域名前指定的密码 href-整个URL 原点-protocol://hostname:port 主机-主机名:端口 3
-URL的协议方案,包括最终的“:”协议
-域名主机名
-端口号端口
-/pathnamepathname
-?参数搜索
-#片段(u)标识符散列
-域名前指定的用户名用户名
-域名前指定的密码密码
-整个URLhref
-protocol://hostname:port原点
-主机名:端口主机
URL
模块的旧API,而在该行下方,您可以看到新API。节点似乎从RFC标准术语转变为更为浏览器友好的标准术语,即类似于浏览器的windows.location
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ href │
├──────────┬──┬─────────────────────┬────────────────────────┬───────────────────────────┬───────┤
│ protocol │ │ auth │ host │ path │ hash │
│ │ │ ├─────────────────┬──────┼──────────┬────────────────┤ │
│ │ │ │ hostname │ port │ pathname │ search │ │
│ │ │ │ │ │ ├─┬──────────────┤ │
│ │ │ │ │ │ │ │ query │ │
" https: // user : pass @ sub.example.com : 8080 /p/a/t/h ? query=string #hash "
│ │ │ │ │ hostname │ port │ │ │ │
│ │ │ │ ├─────────────────┴──────┤ │ │ │
│ protocol │ │ username │ password │ host │ │ │ │
├──────────┴──┼──────────┴──────────┼────────────────────────┤ │ │ │
│ origin │ │ origin │ pathname │ search │ hash │
├─────────────┴─────────────────────┴────────────────────────┴──────────┴────────────────┴───────┤
│ href │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
4.马特·卡茨的高排名
URL:http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#00h02m30s
- 协议是http。其他协议包括https、ftp等
- 主机名或主机名为video.google.co.uk
- 子域是视频
- 域名是google.co.uk
- 顶级域或TLD是uk。英国域名也称为国家代码顶级域名或ccTLD。对于google.com,TLD应该是com
- 第二级域名(SLD)是co.uk
- 端口为80,这是web服务器的默认端口。其他港口是可能的;例如,web服务器可以侦听端口8000。当端口为80时,大多数人会忽略端口
- 路径是/videoplay。路径通常是指web服务器上的文件或位置,例如/directory/file.html
- 此URL具有参数。一个参数的名称为docid,该参数的值为7246927612831078230。URL可以有很多参数。参数以问号(?)开头,并用符号(&)分隔李>
我的一些关切:
window.location
是标准还是基于标准http://
协议还是方案
主机
还是权限
window.location
nor节点具有TLD或其他域部件的属性(如果可用)主机名(example.com)和
主机
(example.com:8080)是否已建立
origin
不包括username:password@
,而对于windows.location则不包括
我希望我的代码遵循一个完善的标准或最佳实践。术语取决于您使用的架构风格/技术 我更喜欢REST样式来识别url的不同部分 但我再次重申,没有一个统一的标准来表示URL,Java遵循的是RFC3986的旧版本 Python也遵循RFC3986,除了可能出于遗留原因使用
netloc
而不是authority
换句话说,我会遵循RFC3986。URI标准是。这当前映射到
因此,对于通用URI语法,这些术语是权威的,目前:
方案
权限
userinfo
主机
端口
路径
查询
片段
nodejs
、expressjs
和javascript
的项目,您会推荐哪种标准?对于Node/expressrest,这实际上是一种标准,尽管不是唯一的标准。Node对重新划分主机/主机名有很好的支持,相关问题:您能用一个例子更精确地描述一下其中的每一部分吗?Thanks@JoãoPimentelFerreira:您问题中的示例已经做到了这一点,因为它引用自标准。它只会遗漏userinfo
子组件:foo://userinfo@example.com:8042/over/there?name=ferret#nose
问题在于缺少一些概念。例如:窗口的原点
。缺少位置
。@JoãoPimentelFerreira:“缺少”在什么意义上?URI标准只是没有为方案
、主机
和端口
的组合定义一个术语,因为它不需要这样的术语定义了起源的概念。我打开了一个悬赏。请检查一下它的描述。无论如何,非常感谢
protocol://username:password@hostname:port/pathname?search#hash
-----------------------------href------------------------------
-----host----
----------- origin -------------
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ href │
├──────────┬──┬─────────────────────┬────────────────────────┬───────────────────────────┬───────┤
│ protocol │ │ auth │ host │ path │ hash │
│ │ │ ├─────────────────┬──────┼──────────┬────────────────┤ │
│ │ │ │ hostname │ port │ pathname │ search │ │
│ │ │ │ │ │ ├─┬──────────────┤ │
│ │ │ │ │ │ │ │ query │ │
" https: // user : pass @ sub.example.com : 8080 /p/a/t/h ? query=string #hash "
│ │ │ │ │ hostname │ port │ │ │ │
│ │ │ │ ├─────────────────┴──────┤ │ │ │
│ protocol │ │ username │ password │ host │ │ │ │
├──────────┴──┼──────────┴──────────┼────────────────────────┤ │ │ │
│ origin │ │ origin │ pathname │ search │ hash │
├─────────────┴─────────────────────┴────────────────────────┴──────────┴────────────────┴───────┤
│ href │
└────────────────────────────────────────────────────────────────────────────────────────────────┘