URL规范术语

URL规范术语,url,terminology,Url,Terminology,我一直在阅读,似乎没有非常一致和完全接受的URL部分术语。这是真的吗?我想知道URL部件术语有哪些标准。最常见的是什么?是否有任何公认的标准 我发现: 1. 2.从浏览器上的Javascript 协议-URL的协议方案,包括最终的“:” 主机名-域名 端口-端口号 pathname-/pathname 搜索-?参数 散列-#片段(u)标识符 用户名-域名前指定的用户名 密码-域名前指定的密码 href-整个URL 原点-protocol://hostname:port 主机-主机名:端口 3

我一直在阅读,似乎没有非常一致和完全接受的URL部分术语。这是真的吗?我想知道URL部件术语有哪些标准。最常见的是什么?是否有任何公认的标准

我发现:

1. 2.从浏览器上的Javascript
  • 协议
    -URL的协议方案,包括最终的“:”
  • 主机名
    -域名
  • 端口
    -端口号
  • pathname
    -/pathname
  • 搜索
    -?参数
  • 散列
    -#片段(u)标识符
  • 用户名
    -域名前指定的用户名
  • 密码
    -域名前指定的密码
  • href
    -整个URL
  • 原点
    -protocol://hostname:port
  • 主机
    -主机名:端口
3.节点,模块 在带有URL的行上方,您可以看到节点的
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://
    协议还是
    方案

  • 我应该说
    主机
    还是
    权限

  • 为什么nor
    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                                              │
    └────────────────────────────────────────────────────────────────────────────────────────────────┘