復習自用,若有錯漏,歡迎一起交流一下~~
一、高頻面試題記錄
uri 和 url 的區別 ?
dns 是啥工作原理,主要解析過程是啥?
用戶輸入網址到顯示對應頁面的全過程是啥?
http 頭部包含哪些信息?
http 方法了解哪些?
http 狀態碼了解哪些?
get 和 post 的區別?
https 和 https 的區別?
https 的加密方式?
http 是不保存狀態的協議,如何保存用戶狀態?
http 不同版本的區別?
用戶輸入網址到最后看到返回,經歷了什么
二、web(萬維網)和域名
萬維網:www = world wide web,我們一般稱之為web。
是一種信息系統,使文檔和其他web資源能夠通過Internet訪問。
網絡上的資源必須有唯一標識,才可以在網絡上被訪問。
2.1 URI、URL、URM
uri(uniform resource identifier) 統一資源標識符。
url(uniform resource location) 統一資源定位符,統指絕對路徑。【用的最多】
urn(uniform resource name) 統一資源名。【未大范圍使用】
URL由三部分組成:
*注意:URL是否以/結尾,意義不同,服務器自動處理了差異所以用戶一般無感知
【訪問資源使用的協議類型(如http://)】【服務器的web地址,可以是域名(如nihao) 或 IP地址+端口號(localhost:8080),不添加默認為 80 ,這是訪問域名不用加端口號的原因 】【web服務器上的某個資源(如abc/read)】
http://nihao.com/abc/read
2.2 常見應用程序體系架構
- C/S((client/server):客戶端向服務端發送和請求數據,服務器要一直開機,主要應用在大型互聯網
如:魔獸世界端游(C/S)、Google(B/S)、也有既可以又可以的應用哦~比如outlook; - P2P(peer to
peer):對等通信,不需要數據中心,應用程序在間斷連接的主機對之間直接通信。主要應用在流量密集型應用。比如:迅雷,bitTorrent,或者在局域網的文件內部共享應用中。
2.3 web
web不僅僅有client和server的簡單請求響應,還包含特殊的server
- 代理:位于客戶端和服務端之間,可轉發web流量,可以對請求和響應進行過濾。(比如用于校園網,過濾不良內容);
- 網關:鏈接其他應用程序的特殊web服務器,常用于將http流量轉化為其他協議,客戶端對此無感知。
- 隧道:
- DNS(域名):支持中文字符,結構是xxx.xxx.xxx,分層樹狀結構:二級域名(csdn)+頂級域名(cn-中國、edu-教育組織、com-商業or公司實體、net-網絡)
三、DNS
3.1 DNS原理
*客戶端 A 向本地域名服務器查詢為遞歸查詢,本地域名服務器向根域名服務器查詢為迭代查詢。
客戶端A-查詢本地hosts文件(沒有映射關系下一步)-查找本次DNS解析緩存(沒有下一步)-根據tcp/ip參數查找設置好的首選DNS服務器IP地址(本次dns服務器,沒有下一步)-本地dns訪問根服務器,根據后綴名查找定級域名服務器的ip,以此向下查找域名服務器IP,查找網址映射關系,直到找到為止。
3.2 DNS數據傳輸
- dns既采用UDP協議,也采用tcp協議;
- dns通過53端口進行通信,默認采用udp協議進行數據傳輸(或者說大多數情況);
- 當返回的響應超過512字節,會使用tcp傳輸(udp最大只支持512字節的數據);
- 當主域名服務器向輔助域名服務器傳送變化的那部分數據(區域傳送),會使用tcp傳輸;
- 注意: tcp 協議和 udp 協議是可以同時綁定同一個端口的。
- 區域傳輸: dns 服務器中數據不總是一成不變的,域名數量是不斷增加,而且一些域名對應著的服務器的也是在變化的,所以其實 dns服務器中的數據是不斷增加的,并且隨時流動的,所以可以將區域傳輸簡單理解為 dns 服務器之間進行的數據傳輸。
3.3 DNS域名服務器
- 根域名服務器:最高層次的域名服務器,所有的根域名服務器都知道所有的頂級域名服務器的ip地址,全球有 13 個根域名服務器。
- 頂級域名服務器:負責處理所有頂級域名,提供到權威域服務器的映射。
- 授權(權威)域名服務器:提供主機名到 IP 地址間的映射服務
- 主域名服務器:一個或多個區域域名解析工作的主要域名服務器,通常也是一個或多個區域的授權域名服務器。
- 輔助域名服務器:協助主域名服務器提供域名查詢服務,在主機很多的情況下,可以有效分擔主域名服務器的壓力。當主域名服務器故障時,輔助域名服務器能夠在數據有效期內繼續為主機提供域名解析服務。
3.4 網頁解析全過程(重要)
用戶輸入網址(瀏覽器獲得一個域名)-DNS解析(通過dns服務器將域名解析為IP地址)-TCP連接(向web服務器發起tcp連接請求)-發送http請求(在建立起的tcp連接中,按照http協議標準發送一個索要網頁的請求)-處理請求并返回(服務器獲取到請求后,根據請求內容來決定如何獲取對應文件,并將文件發送給瀏覽器)-瀏覽器渲染(先解析HTML文件,構建DOM樹,然后解析CSS文件,構建渲染樹,構建完成后,瀏覽器開始布局渲染樹并將其繪制到屏幕)-TCP斷開(客戶端和服務器斷開連接)