整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTTP基礎系列之:一文搞懂URL

          般我們日常在上網的時候,會在瀏覽器的地址欄里輸入一個網站的 "網址",點擊下回車,就會跳到你想去的網站,就類似這樣

          但其實,叫做 "網址" 并不是特別的準確,確切地說,應該叫做 URL

          到底啥是URL

          那到底啥是 URL 呢? 不就是一個網址嗎?

          URL 是英文 Uniform Resource Locator 的縮寫,即統一資源定位器,是因特網上用于指定信息位置的表示方法,通過它就能找到網上的某個你要的資源

          URL的組成

          雖然我們平時使用瀏覽器的時候,只要輸入baidu.com或者qq.com就能正常上網了,但其實我們輸入的只是整個URL中的一小部分

          來,我先看看一個相對完整的URL的整體結構是怎么樣的

          這里大致分了幾個部分,我們一個個來看,它們具體是干什么的

          協議

          圖中http://這部分就是協議部分,即指定了URL是以什么協議發送網絡請求的

          常見的協議如:http://、https://、ftp://、file://,比如: http://就是超文本傳輸協議,平時上網大多用這個協議,https://是以安全為目標的HTTP協議。

          地址

          圖中localhost就是地址部分,用來確定URL所要訪問的服務器的網絡地址(也就是網址)。在URL中,地址可以用三個形式來表示:域名、主機名、IP地址

          域名

          我們平時輸入的www.baidu.com、www.qq.com就是域名,域名也分一級域名、二級域名、以及頂級域名。

          • 頂級域名:在域名的尾巴部分,.com這種就是頂級域名,頂級域名一般都代表網站屬于某種機構或組織。像.com(商業機構)、.org(非盈利組織)、
            .gov(政府機構)這類就是常見的頂級域名,除此之外,還有些代表國家的頂級域名,如:.cn(中國)、.us(美國)、.jp(日本)等等
          • 一級域名:像qq.com就是一級域名,看上去十分簡潔,在頂級域名.com前只有一個單詞短語
          • 二級域名:而mail.qq.com和v.qq.com這種前面加了mail.、v.等字符串的就叫二級域名

          不過,域名也只是一串文字,計算機和路由器并不能直接認出它,還需要通過DNS服務器找到域名對應的IP地址,再通過底層的TCP/IP協議路由到對應的機器上去 (這些內容不是本文的重點暫時略過,先挖個坑再說)

          主機名

          主機名就是某臺計算機的名字,在一個局域網內,可以通過主機名找到你要訪問的計算機。主機名和域名一樣,計算機和路由器不認它,需要通過HOSTS文件這樣的技術找到主機名和IP地址的關聯關系,最后還是翻譯成IP地址再繼續發送網絡請求

          圖中的localhost也是主機名,但是一種比較特殊的主機名,是給 回環地址的一個標準主機名,就是代表本機自己的地址。

          IP地址

          在URL中也可以直接用IP地址來代替域名或主機名,如192.168.0.1,關于IP地址的相關知識點放到以后再講(繼續挖坑)

          端口號

          圖中在冒號:后面的那串數字8080就是端口號,一臺服務器上可以開多個端口號,往往一個網絡服務程序就對應一個端口號

          比如,我在機器 A 上,開了兩個服務程序,分別是 Tomcat和SSH,讓它們分別關聯端口8080和22,那URL中如果端口號是8080就是會訪問到Tomcat程序,22就會連接SSH服務。

          但可能有小伙伴會有疑問:誒,我平時上百度看到的URL是http://www.baidu.com沒看到有端口號啊

          其實是有的,端口號是80,只是它被隱藏起來了,我們看不到而已,而這個80端口也就是URL的默認端口號

          但不是所有URL的默認端口號都是80,如果協議是http://,默認端口號為80,但若是https://協議,默認端口號就是443了

          虛擬目錄

          從第一個斜杠/開始,到最后一個斜杠/結束的那部分,也就是圖中/app/user/那部分即為虛擬目錄

          它就類似我們電腦中文件目錄的格式,第一個/為根目錄,每多一個/就多進入一層目錄

          文件名

          從域名后開始算起的最后一個斜杠/開始,到?為止,沒有?則到#為止,或者?和#都沒有就是到整個URL結束為止的那部分就為文件名

          說起來很繞吧,其實就是圖中 info.do 這部分,它一般包含文件名和擴展名('.'后面那部分),用來指代一個URL所訪問的具體文件或資源,它可以是圖片、html文件、css文件,也可以是js文件、字體文件等等,它也可以不是某種文件,而是服務端后臺執行的某段程序。

          甚至可以省略不寫虛擬目錄和文件名,因為它們本來就不是必須的,就如http://www.baidu.com這樣的URL就沒有文件名,但服務器會在缺省的情況下給你定位到某個特定的文件或程序上去。

          查詢參數

          從?后到#結束,即圖中的?uid=101&ty=2為查詢參數

          查詢參數,也稱為URL參數、查詢字符串,英文名為 Query,它是用來向服務端以字符串的形式傳遞參數和少數數據用的

          其參數形式一般都以多個鍵值對的形式進行表示,如 a=1、b=2就是兩個鍵值對,鍵為"a"和"b",值為對應的"1"和"2", 多個鍵值對應&連起來:a=1&b=2

          URL編碼

          但參數要傳遞的某些值往往帶有特殊字符,這些字符和URL標準的格式沖突,比如要傳a&b這樣字符串,和查詢參數鍵值對的連接符&沖突了,若不加以區分就會產生歧義

          而最簡單的辦法,就是對參數值進行編碼,稱為 URL Encoding,通過編碼,a&b變成了a%26b,就不再包含會沖突的特殊字符

          而有些參數即便有特殊字符,也不會被編碼,除非自行強制編碼,比如URL中參數值是另外一串URL,就可以寫成 http://localhost/do?url=http://www.baidu.com
          這種特殊情況不會有歧義,因為計算機系統認得出參數是另一串URL,就會按URL的形式來解析,但當子URL又包含子參數和多子鍵值對的時候也難免會分不清參數到底是兒子的還是父親的,這時還是強制編碼的好

          列表參數

          URL的參數是一個個鍵值對,即一個key對應一個value,那如果是一個key要傳遞多個值,也就是一個列表咋辦?也好辦

          URL的參數名是可以重復的,比如a=1&a=2&a=3,這里穿了3個參數名都為a的查詢參數,是完全可以的,可以利用這種特性,按順序將 1、2、3作為參數a的列表值

          為了表示更清楚點,一般都會在列表參數名后面加上一對方括號[],如:a[]=1&a[]=2&a[]=3

          但是,對于URL參數的寫法和格式的標準,也沒有特別嚴格的規定,以上幾種形式一般都會支持

          圖中#后面那部分字符串,#abc就是錨部分

          錨,英文稱做Reference,通常也是用來傳遞參數等信息,但與查詢參數的本質區別就是這部分內容不會被傳遞到服務器端

          錨一般用于頁面,比如在瀏覽網頁的時候,按個按鈕突然幫你定位到頁首或頁面中的某個位子去了,這就是錨

          現在隨著前后端分離技術,尤其是 vue、reactjs 等前端框架的興起,錨作為前端javascript程序處理的參數載體也越來越重要了

          結語

          URL看似已經習以為常、非常簡單的東西,背后往往也隱藏著很多技術細節和知識點,甚至這短短一篇文章也沒辦法窮盡

          其實URL的內容還有不少,比如<用戶名>@<密碼>這種用戶驗證信息在URL中的傳遞,由于篇幅的關系還沒有講到

          所以我講分幾篇文章來講解HTTP協議的其中幾個重要部分,如果這一系列文章對你有幫助,別忘了關注哦~

          :由若干結點和連接這些結點的鏈路組成。

          互聯網:是網絡的網絡,是所有類型網絡的母集。

          因特網世界上最大的互聯網網絡。即 因特網概念從屬于互聯網概念。習慣上,大家把連接在因特網上的計算機都成為主機。

          萬維網并非某種特殊的計算機網絡,萬維網是一個大規模的、聯機式的信息貯藏所,英文簡稱web。萬維網用鏈接的方法能非常方便地從因特網上的一個站點訪問另一個站點(超鏈技術),具有提供分布式服務的特點。萬維網是一個分布式超媒體系統,超文本系統的擴充。萬維網基于B/S架構工作。

          網絡之萬維網WWW

          URL:萬維網使用統一資源定位符(Uniform Resource Locator)來標志萬維網上的各種文檔,并使每個文檔在整個因特網的范圍內具有唯一的標識符URL。

          HTTP:為解決“用什么樣的協議來實現整個因特網上的萬維網文檔”這一難題,就要使萬維網客戶程序(以瀏覽器為主,但不限于瀏覽器)與萬維網服務器程序之間的交互遵守嚴格的協議,這就是超文本傳送協議(HyperText Transfer Protocol)。HTTP是處于應用層的協議,使用TCP傳輸層協議進行可靠的傳送。因此,需要特別提醒的是,萬維網是基于因特網的一種廣泛因特網應用系統,且萬維網采用的是HTTP(端口:80)/HTTPS(端口:43)的傳輸協議,但因特網還有其他的網絡應用系統(如:FTP、SMTP等等)。

          HTML:為了解決“怎樣使不同作者創作的不同風格的萬維網文檔,都能在因特網上的各種主機上顯示出來,同時使用戶清楚地知道在什么地方存在著鏈接”這一問題,萬維網使用超文本標記語言(HyperText Markup Language),使得萬維網頁面的設計者可以很方便地用鏈接從頁面的某處鏈接到因特網的任何一個萬維網頁面,并且能夠在自己的主機品目上將這些頁面顯示出來。HTML與txt一樣,僅僅是是一種文檔,不同之處在于,這種文檔專供于瀏覽器上為瀏覽器用戶提供統一的界面呈現的統一規約。且具備結構化的特征,這是txt所不具備的強制規定。

          RL也被稱為網址。

          URL 可以由單詞組成,比如 "w3school.com.cn",或者是因特網協議(IP)地址:192.168.1.253。

          大多數人在網上沖浪時,會鍵入網址的域名,因為名稱比數字容易記憶。

          URL(Uniform Resource Locator)

          當您點擊 HTML 頁面中的某個鏈接時,對應的<a>標簽指向萬維網上的一個地址。

          統一資源定位器(URL)用于定位萬維網上的文檔(或其他數據)。

          網址,比如 http://www.w3school.com.cn/html/index.asp,遵守以下的語法規則:

          scheme://host.domain:port/path/filename

          解釋:

          scheme 定義因特網服務的類型。最常見的類型是 http

          host 定義域主機(http 的默認主機是 www)

          domain 定義因特網域名,比如 w3school.com.cn

          :port 定義主機上的端口號(http 的默認端口號是 80)

          path 定義服務器上的路徑(如果省略,則文檔必須位于網站的根目錄中)。

          filename 定義文檔/資源的名稱

          編者注:URL 的英文全稱是 Uniform Resource Locator,中文也譯為"統一資源定位符"。

          URL Schemes

          以下是其中一些最流行的 scheme:

          Scheme 訪問 用于...

          http 超文本傳輸協議 以 http:// 開頭的普通網頁。不加密。

          https 安全超文本傳輸協議 安全網頁。加密所有信息交換。

          ftp 文件傳輸協議 用于將文件下載或上傳至網站。

          file 您計算機上的文件。


          URL編碼

          URL只能使用ASCII字符集來通過因特網進行發送。

          由于URL常常會包含ASCII集合之外的字符,URL 必須轉換為有效的ASCII格式。

          URL編碼使用"%"其后跟隨兩位的十六進制數來替換非ASCII字符。

          URL不能包含空格。URL編碼通常使用+來替換空格。


          URL編碼表參考

          http://www.w3school.com.cn/tags/html_ref_urlencode.html


          主站蜘蛛池模板: 在线视频一区二区三区| 在线一区二区观看| 国产凸凹视频一区二区| 亚洲伦理一区二区| 国产一区二区在线观看麻豆| 在线视频一区二区三区| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 国产a∨精品一区二区三区不卡 | 中文激情在线一区二区| 国产无线乱码一区二三区| 精彩视频一区二区| 亚洲AV无码一区二区三区在线| 国产伦精品一区二区三区视频金莲| 日本无卡码免费一区二区三区| AV天堂午夜精品一区二区三区| 亚洲综合无码一区二区痴汉| 亚洲AV无码一区二区大桥未久| 国产精品久久一区二区三区| 亚洲乱色熟女一区二区三区蜜臀| 精品无码国产一区二区三区AV| 日本一区二区在线播放| 亚洲制服丝袜一区二区三区| 中文字幕日韩丝袜一区| 国产成人精品一区二三区熟女| 国产精品一区二区毛卡片| 精品无码国产AV一区二区三区 | 日韩精品无码一区二区中文字幕| 亚洲AV无码一区二区三区系列| 亚洲第一区视频在线观看| 亚洲综合一区国产精品| 一区二区三区波多野结衣 | 国产内射在线激情一区| 亚洲午夜电影一区二区三区| 怡红院美国分院一区二区| 国产伦精品一区二区三区视频金莲| 高清一区二区三区日本久| 精品在线一区二区三区| 无码人妻AV免费一区二区三区| 日本福利一区二区| 天天视频一区二区三区 | 好爽毛片一区二区三区四无码三飞 |