什么是URL
時間:2023-01-31 14:16:01 | 來源:建站知識
時間:2023-01-31 14:16:01 來源:建站知識
先從ip說起,什么事ip:
internet protocal
主要約定了兩件事
- 如何定位一臺設(shè)備
- 如何封裝數(shù)據(jù)報文,以跟其他設(shè)備交流具體內(nèi)容我們不關(guān)心
只要你在互聯(lián)網(wǎng)中
你就有至少一個獨特的ip
ip分為內(nèi)網(wǎng)和外網(wǎng)
如何獲取外網(wǎng)ip
- 你從電信租用寬帶,一年一千多
- 你買了一個路由器,然后用電腦和手機分別連接路由器廣播出來的無線WIFI。
- 只要路由器臉上電信的服務(wù)器,那么路由器就會有一個【外網(wǎng)IP】,比如[14.17.32.211]就是一個外網(wǎng)IP。這就是你在互聯(lián)網(wǎng)中的地址。
- 但是如果你重啟路由器,那么你很有可能被重新分配一個外網(wǎng)IP,也就是說你的路由器沒有固定的外網(wǎng)IP
- 但是有個問題,你的路由器的外網(wǎng)IP如果是14.17.32.211,那么你的手機和電腦的IP又是什么了?答案就是內(nèi)網(wǎng)IP
- 路由器會在你家里創(chuàng)建一個內(nèi)容,內(nèi)網(wǎng)中的設(shè)備使用內(nèi)網(wǎng)IP,一般來說這個IP格式都是http://192.168.xxx.xxx。
- 一般路由器會給自己分配一個好記的內(nèi)網(wǎng)IP,例如192.168.1.1
- 然后路由會給每一個內(nèi)網(wǎng)中的設(shè)備分配一個不同的內(nèi)網(wǎng)IP,如電腦是192.168.1.2,手機是192.168.1.3,以此類推。
路由器的功能
- 現(xiàn)在路由器有兩個IP,一個是外網(wǎng)IP和內(nèi)網(wǎng)IP
- 內(nèi)網(wǎng)中的設(shè)備可以互相訪問,但是不能直接訪問外網(wǎng)
- 內(nèi)網(wǎng)設(shè)備想要訪問外網(wǎng),就必須經(jīng)過路由器中轉(zhuǎn)
- 外網(wǎng)中的設(shè)備可以互相訪問,但是無法訪問你的內(nèi)網(wǎng)
- 外網(wǎng)設(shè)備想要把內(nèi)容送到內(nèi)網(wǎng),也必須通過路由器
- 也就是說內(nèi)網(wǎng)和外網(wǎng)就像兩個隔絕的空間,無法互通,唯一的聯(lián)通點就是路由器
- 所以路由器有時候也被叫做網(wǎng)關(guān)
幾個特殊的IP
分別是
- 127.0.0.1表示自己
- localhost通過hosts指定為自己
- 0.0.0.0不表示任何設(shè)備
端口 port
一個比喻
- 麥當(dāng)勞提供兩個窗口,一號快餐,二號咖啡
- 你去快餐窗口點咖啡會被拒絕,讓你去另一個窗口
- 你去咖啡窗口點快餐一樣的結(jié)果
一個機器可以提供不同的服務(wù)
- 要提供HTTP服務(wù)最好使用80端口
- 要提供HTTPS服務(wù)最好使用443端口
- 要提供FTP服務(wù)最好使用21端口
- 一共有65535個端口(基本夠用)
我怎么知道應(yīng)該用什么端口呢?
維基百科一個一個列出來
端口使用還有什么規(guī)則
規(guī)則
- 0到1023(2的10次方減1)號端口是留給系統(tǒng)用的
- 你只擁有管理員權(quán)限后,才能使用1024端口
- 其他端口可以給普通用戶使用
- 比如http-server默認(rèn)使用8080端口
- 一個端口如果別占用,你就只能換一個端口
域名就是對IP的別稱
http://baidu.com對應(yīng)什么IP
ping
http://baidu.comhttp://qq.com對應(yīng)什么IP
ping
http://qq.com知識點
- 一個域名可以對應(yīng)不同的IP
- 這個叫做均衡負(fù)載,防止一臺機器抗不住
- 一個IP可以對應(yīng)不同域名
- 這個叫共享主機,窮開發(fā)者會這么做
通過DNS把域名和IP對應(yīng)起來 DNS(域名服務(wù))
當(dāng)你輸入xiedaimala,com
過程- 你的Chrome劉覽器會戶電信/聯(lián)通提供的DNS服務(wù)器詢問http://xiedaimnala.com對應(yīng)什么IP
- 電信/聯(lián)通會回答 一個IP(具體過程很復(fù)雜,不研究)
- 然后Chrome才會想對應(yīng)IP的80/443端口發(fā)送請求
- 請求內(nèi)容是查看http://xiedaimala.com的首頁
為什么是80或443端口
- 服務(wù)器默認(rèn)用80提供http服務(wù)
- 服務(wù)器默認(rèn)用443提供https服務(wù)
- 你可以在開發(fā)者工具看到具體的端口
題外話
WWW
- www.xiedaimala.com 和 xiedaimala.com
- 是同一個域名嗎?不是
他們是什么關(guān)系
- com 是頂級域名
- 饑人谷官網(wǎng) 是二級域名(俗稱一級域名)
- www.xiedaimala.com 是三級域名(俗稱二級)
- 他們是父子關(guān)系
- github.io 把子域名 xxx.github.io免費給你使用
- 所以你應(yīng)該知道 www.xiedaimala.com 和饑人谷官網(wǎng) 可以不是同一家公司,也可以是
- www是多余的嗎?是的,非常多余。
如何請求不同的頁面
?路徑可以做到
- HTML(超文本標(biāo)記語言) | MDN
- CSS(層疊樣式表) | MDN
?工具
- 使用 Chrome 開發(fā)者工具 Network 面板看看區(qū)別HTML(超文本標(biāo)記語言) | MDN使用 Chrome 開發(fā)者工具 Network 面板看看區(qū)別
同一個頁面,不同內(nèi)容
?查詢參數(shù)可以做到
- www.baidu.com/s?wd=hi
- hello_百度搜索
同一個內(nèi)容,不同位置
?錨點可以做到
- https://developer.mozilla.org/zhCN/docs/Web/CSS#參考書
- https://developer.mozilla.ore/zhCN/docs/Web/CSS#教程
?注意
- 錨點看起來有中文,實際不支持中文
- #參考書會變成 #%E5%8F%82%E8%80%83%E4%B9%A6
- 錨點是無法在 Network 面板看到的因為錨點不會傳給服務(wù)器
URL (統(tǒng)一資源定位符)
協(xié)議+域名或IP+端口號+路徑+查詢字符串+錨點
curl命令
? 用curl可以發(fā) HTTP 請求
- curl -v http://baidu.com
- curl-s-v -- https://www.baidu.com
? 理解以下概念
- url會被 curl 工具重寫,先請求 DNS 獲得 IP
- 先進行 TCP 連接,TCP 連接成功后,開始發(fā)送 HTTP請求
- 請求內(nèi)容看一眼
- 響應(yīng)內(nèi)容看一眼
- 響應(yīng)結(jié)束后,關(guān)閉TCP連接(看不出來)
- 真正結(jié)束
? HTTP
規(guī)定請求的格式是什么,響應(yīng)的格式是什么