天天看點

URL解析與CI架構URL

摘要: 說到網站分析,我們經常會提到URL、頁面路徑、網址參數、錨、域名、子域名、頂級域名等等,說起來可能都知道一些,但是卻又無法準确辨識其中的差異。以至于到具體的應用的時候,容易出現概念模糊,應用錯誤的情況。
URL解析與CI架構URL
說到網站分析,我們經常會提到URL、頁面路徑、網址參數、錨、域名、子域名、頂級域名等等,說起來可能都知道一些,但是卻又無法準确辨識其中的差異。以至于到具體的應用的時候,容易出現概念模糊,應用錯誤的情況。

URI(統一資源标志符,Uniform Resource Identifier)

說到URL(統一資源定位符,Uniform / Universal Resource Locator),就不得不先說下URI了:URL和URN(統一資源名,Uniform Resource Name)共同組成了URI。URN是用于定義該事物身份,而URL是定義了找到它的方法。

URL(統一資源定位符,Uniform / Universal Resource Locator)

回到最常用的URL,我們也俗稱網頁位址。它是咱們上網的門牌,是網際網路中的标準位址。通常一個URL中包含了以下幾個部分:

1:傳輸協定(HTTP、HTTPS、FTP等)

一個冒号,兩個斜杠(汗,這也是啊!)

2:主機(通常是一個域名,也有是IP的)

端口(伺服器上網絡端口号,預設80,可選項)

3:路徑(以“/”開頭的一個檔案路徑)

4:查詢(以“?”開頭的一串查詢參數,QueryString)

URL解析與CI架構URL
做了一張簡圖說明URL的結構,但是這個圖并不是非常完美,因為通常查詢(QueryString)部分也包含了錨(Anchor)。

網站分析中的域名(Domain)

關于域名(Domain)部分,通常是包括:

根域名(頂級域名,如:root.com)

二級域名(子域名,如:www.root.com,shop.root.com)

三級域名(子域名,如:hi.shop.root.com)

這些都是不同的域名,他們相同的都是,他們都屬于同一個根域名——root.com。一個根域名可以具有許多個子域名,子域名又包含二級、三級、N級之分。另外,國内常見的:.com.cn / .cn 之類,與 .com 是屬于并列的關系,是域名的字尾名。.com 是國際頂級域名,而 .cn之類是中國頂級域名,當然,也有 .us 是美國頂級域名,.asia是亞洲頂級域名等等(好吧,這裡有一個頂級域名清單)。

網站分析

在網站分析中,我們需要了解到的是,Cookie是隻能在相同域名内讀寫的。即在跨域名的時候,是不允許讀寫的(詳見網站分析中的Cookie)。是以在做網站資料監測的時候,我們也是可以設定Cookie屬于哪一個域名,實作多域名站點的跟蹤。如果是屬于根域名,那麼預設的,當訪客在不同子域名之間通路的時候,是以相同的身份通路的。(如果要了解更多關于跨域跟蹤的内容,可以參見:Google Analytics部署 跨域跟蹤)

相同URL就是相同網頁嗎?

不一定!首先,URL如果是一直到路徑(Path)部分都相同,那麼說明當我們通路的是同一個檔案。那麼為什麼同一個檔案還會有不同的網頁呢?現在許多網頁的内容都是動态生成的,網站伺服器會根據查詢參數(QueryString)的不一樣,動态的傳回一些與之對應的内容。是以才會出現相同URL不一定是對應相同網頁内容的。

flash網站

需要注意的是,Flash網站,又并不經過網頁位址傳輸這些了。它通過另一個管道傳輸查詢内容和傳回内容資料,是以,通過URL判斷頁面的方法并不适用于Flash建構的站點。如果我們需要對Flash網站的通路資料進行跟蹤,依然建議通過在Flash内部使用Google Analytics虛拟頁面的功能進行子頁面的浏覽跟蹤(當然也可以使用GA的Flash開發包實作Flash内跟蹤)。

CodeIginter URL

當通路下面這個 URL 時:

http://example.com/news/latest/10

通過這個 URL 我們就可以推測出來,有一個叫做 “news” 的控制器,被調用的方法為 “latest” , 這個方法的作用應該是查詢 10 條新聞條目并顯示在頁面上。在 MVC 模式裡,你會經常看到下面 格式的 URL :

http://example.com/[controller-class]/[controller-method]/[arguments]

在正式環境下 URL 的格式可能會更複雜,但是現在,我們隻需要關心這些就夠了。

如果遵循模型-視圖-控制器模式,那麼 URI 中的每一段通常表示下面的含義:

example.com/class/function/ID

1:第一段(class)表示要調用的控制器 類 ;

2:第二段(function)表示要調用的類中的 函數 或 方法 ;

3:第三段(ID)以及後面的段代表傳給控制器的參數,如 ID 或其他任何變量;

參考資料:

http://en.wikipedia.org/wiki/Uniform_resource_locator

http://en.wikipedia.org/wiki/Query_string

http://www.tmtpost.com/86334.html

http://www.myttnn.com/web-analytics/url/

統一資源定位符

統一資源标志符