[英]URL parts canonical terminology
我一直在閱讀,似乎沒有很好的連貫和完全接受的URL部分術語。 真的嗎? 我想知道URL部分術語存在哪些標准。 什么是最常見的? 有沒有完善的標准?
我找到了以下內容:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
| _____________________|__
/ \ / \
urn:example:animal:ferret:nose
window.location
protocol://username:password@hostname:port/pathname?search#hash
-----------------------------href------------------------------
-----host----
----------- origin -------------
protocol
- URL的協議方案,包括最終的':' hostname
- 域名 port
- 端口號 pathname
- / pathname search
- ?參數 hash
- #fragment_identifier username
- 在域名之前指定的用戶名 password
- 域名前指定的密碼 href
- 整個網址 origin
- protocol:// hostname:port host
- hostname:port url
在帶有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 │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
URL: http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#00h02m30s
我的一些擔憂:
window.location
是標准還是基於標准?
我應該調用http://
protocol
還是scheme
?
我要說host
還是authority
?
為什么window.location
和node都沒有TLD或其他域部分的屬性(如果可用)?
hostname
(example.com)和host
(example.com:8080)之間的術語差異已經確立?
對於節點origin
,不包括username:password@
而對於windows.location
,則為
我想在我的代碼上遵循完善的標准或最佳實踐。
Java java.net.URL遵循RFC 2396 ,它是RFC 3986的舊版本。
Python的urlparse也遵循RFC 3986,除了因遺留原因可能使用netloc
而不是authority
。
換句話說,我會遵循RFC 3986。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.