URL 的各個部分 - TerryLee7788/JS_test GitHub Wiki
URLS
進入一個網址
之前, 先來簡單介紹一下網址
的組成結構
假設我們有以下3個網址
https://google.com/#q=express
http://www.bing.com/search?q=grunt&first=9
http://localhost:3000/about?test=1#history
接著我們把每一個網址 切開來看
再來我們從左到右一個一個來看分別代表著什麼意思
####- 協定
協定負責決定請求的傳輸方式, 其他常見的協定包含 file
, ftp
####- 主機
主機負責 識別伺服器
, 在你的電腦(本機主機)或區域網路上的伺服器可能只是一個單字, 也可能是一個數值的IP位址
在網際網路上, 主機會以頂級網域名稱(TLD)結尾, 如.com
或 .net
此外,主機名稱前面可能也會有 子網域
, www
是很常見的子網域,
不過**子網域
**可以是任何東西, 他是選用的
####- Port
每一個伺服器都有一群以數字代表的 port
, 有一些 port
的號碼是 特殊的, 例如 80
與 443
如果你省略掉 Port
, 它就會假定 80 port
為 HTTP
, 443
為 HTTPS
如果你不使用這兩個 port
的話, 就應該使用大於 1023
的port,
通常會使用容易記憶的號碼. ( 例如: 3000
, 8080
, 8088
)
####- Route
Route
通常是app 最在乎的部分, 採用 Route (路徑)
來識別網頁或著是app 的其他資源
####- Query String (查詢字串)
Query Sting
是一種選用的 (名稱/值)
配對的集合.
Query String
是以問號(?
) 開始, 且 (名稱/值)
配對是以 &
分隔
(名稱/值)
都應該要是 URL編碼, Javascript 提供一種內建的功能可以做這件事情 encodeURIComponent
例如空格應該要以加號 (+
) 來取代... etc
####- Fragment (or hash)
Fragment
不會被傳送至伺服器, 它完全提供瀏覽器來使用
通常出現在單頁應用程式(SPA) 或著是重度使用 AJAX
的應用程式, 利用 Fragment
來控制應用程式做一些效果
Fragment
最初的唯一目的是錨點 (anchor)
, 例如 () 來讓瀏覽器顯示特定的部分