【HTTP全解】URL是什么
時間:2023-02-20 06:46:01 | 來源:建站知識
時間:2023-02-20 06:46:01 來源:建站知識
【HTTP全解】URL是什么:
HTTP 入門
protocol
協(xié)議,禮節(jié),約定
網(wǎng)絡和 IP
什么是 IP?
IP 全稱 Internet Protocol (網(wǎng)絡協(xié)議),沒有 IP 我們就不能上網(wǎng)。
IP 主要約定了兩件事情:
- 如何定位一臺設備
只要你處在互聯(lián)網(wǎng)中,你就至少擁有一個獨特的 IP。
IP 分為內(nèi)網(wǎng)和外網(wǎng):
- 如何封裝數(shù)據(jù)報文,以跟其他設備交流
如何獲取外網(wǎng) IP
- 從電信租用寬帶
- 買一個路由器,然后用電腦和手機分別連接路由器廣播出來的無線 WIFI
- 只要路由器連上電信的服務器,那么路由器就會有一個[外網(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]
內(nèi)網(wǎng) IP
- 路由器會在你家里創(chuàng)建一個內(nèi)網(wǎng),內(nèi)網(wǎng)中的設備使用內(nèi)網(wǎng) IP,一般來說這個內(nèi)網(wǎng) IP 的格式都是 http://192.168.xxx.xxx。
- 一般路由器會給自己分配一個好記的內(nèi)網(wǎng) IP,如 192.168.1.1
- 然后路由器會給每一個內(nèi)網(wǎng)中的設備分配一個不同的內(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)中的設備可以互相訪問,但是不能直接訪問外網(wǎng)
- 內(nèi)網(wǎng)設備想要訪問外網(wǎng),就必須經(jīng)過路由器中轉(zhuǎn)
- 外網(wǎng)中的設備可以相互訪問,但是無法訪問你的內(nèi)網(wǎng)
- 外網(wǎng)設備想要把內(nèi)容送到內(nèi)網(wǎng),也必須通過路由器
- 也就是說內(nèi)網(wǎng)和外網(wǎng)就像兩個隔絕的空間,無法互通,唯一的聯(lián)通點就是路由器
- 所有路由器有時候也被叫做[網(wǎng)關]
端口
一臺機器可以提供很多服務, 每個服務一個號碼,這個號碼就叫端口號 port
幾個特殊的 IP
- 127.0.0.1 表示自己
- localhost 通過 hosts 指定自己 ,可以通過 hosts 文件修改命名
- 0.0.0.0 不表示任何設備
端口 port
一個比喻- 麥當勞提供兩個窗口,一號快餐,二號咖啡
- 你去快餐窗口點咖啡會被拒絕,讓你去另一個窗口
- 你去咖啡窗口點快餐結(jié)果一樣
一臺機器可以提供不同服務- 要提供 HTTP 服務最好使用 80 端口
- 要提供 HTTPS 服務最好使用 443 端口
- 要提供 FTP 服務最好使用 21 端口
- 一共有 65535 個端口(基本夠用)
如何知道應該用什么端口
維基百科
端口的使用規(guī)則
- 0 到 1023(2 的 10 次方減 1)號端口是留給系統(tǒng)使用的
- 你只有擁有了管理員權(quán)限后,才能使用這 1024 個端口
- 其他端口可以給普通用戶使用
- 比如 http-sever 默認使用 8080 端口
- 一個端口如果被占用,你就只能換一個端口
IP 和端口缺一不可域名
域名實際上就是對 IP 的別稱
知識點- 一個域名可以對應不同 IP
- 這個叫做均衡負載,防止一臺機器扛不住
- 一個 IP 可以對應不同域名
- 這個叫做共享主機,沒錢的開發(fā)者會這么做
http://baidu.com 對應什么 IP
http://qq.com 對應什么 IP
域名和 IP 是怎么對應起來的
通過 DNS(Domain Name System) ,電信在你免費購買 IP 時會為你免費提供 DNS
當你輸入
http://baidu.com過程:- 你的瀏覽器會向電信/聯(lián)通提供你的 DNS 服務器詢問 http://baidu.com 對應什么 IP
- 電信/聯(lián)通會回答一個 IP
- 然后瀏覽器才會向?qū)?IP 的 80/443 端口發(fā)送請求
- 請求內(nèi)容是查看 http://baidu.com
為什么是 80 或 443 端口- 服務器默認用 80 提供 http 服務
- 服務器默認用 443 提供 https 服務
- 你可以在開發(fā)者工具里面看到具體的端口
nslookup 命令
nslookup 命令用于查詢 DNS 的記錄,查看域名解析是否正常,在網(wǎng)絡故障的時候用來診斷網(wǎng)絡問題。
- nslookup www.xxx.com --查詢 www.baidu.com的ip地址
- nslookup www.xxx.com 8.8.8.8 --指定 8.8.8.8 的域名服務器來查詢 www.baidu.com的ip地址
- nslookup -qt=類型 www.xxx.com --指定類型查詢
- nslookup –qt=類型 目標域名(注意qt必須小寫)
注意
WWW- www.xiedaimala.com 和 xiedaimala.com
- 是同一個域名嗎? 不是
他們是什么關系- com 是頂級域名
- http://xiedaimala.com 是二級域名(俗稱一級域名)
- www.xiedaimala.com 是三級域名(俗稱二級域名)
- 他們是父子關系
- http://github.io 把子域名 http://xxx.github.io 免費給你使用
- 所以你應該知道 www.xiedaimala.com 和 xiedaimala.com 可以不是同一家公司,也可以是同一家
- www 是多余的嗎? 是的,非常多余
如何請求不同的頁面
- 路徑可以做到 , 使用不同的路徑就可以得到不同的頁面
- http://developer.mozilla.org/zh-CN/docs/Web/HTML
- http://developer.mozilla.org/zh-CN/docs/W eb/CSS
- 工具 , 使用 Chrome 開發(fā)者工具 Network 面板看看區(qū)別
如何請求同一個頁面,不同內(nèi)容
- 查詢參數(shù)可以做到
- www.baidu.com/s?wd=hi
- www.baidu.com/s?wd=hello
同一個內(nèi)容, 不同位置
- 描點可以做到
- http://developer.mozilla.org/zh-CN/docs/Web/CSS#參考書
- http://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
注意:- 錨點看起來有中文, 實際上不支持中文
- #參考書會變成 %E5%8F%82%E8%80%83%E4%B9%A6
- 錨點是無法在 Network 面板看到的
- 因為描點不會傳給服務器
URL
Uniform Resource Locator 統(tǒng)一資源定位符
協(xié)議 + 域名號 + 端口號 + 路徑 + 查詢字符串 + 錨點
URL 舉例
HTTP 協(xié)議
Hypertext Transfer Protocol
基于 TCP 和 IP 兩個協(xié)議
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)容看一眼
- 響應內(nèi)容看一眼
- 響應結(jié)束后, 關閉 TCP 連接(看不出來)
- 真正結(jié)束