我可能是魚的記憶,看過就忘了。
需要找工作複習的時候感覺很煩躁,因為有很多很多知識需要再重新去看去記憶。
所以在這裡分類寫下知識點,方便以後查閱。
一、介紹一下cookie, session 和token的區別
因為http請求是無狀態的,伺服器無法從網路連線上識別訪問者的身份,為了解決這個問題,就有了cookie
cookie:客戶端請求伺服器,如果伺服器需要記錄該使用者的狀態,就向客戶端傳送乙個cookie,客戶端會把這個cookie儲存下來,當下次訪問伺服器時,把請求的**連同cookie資訊,一起傳送給伺服器,伺服器根據接收到的cookie來辨別使用者資訊。cookie存放在客戶端中
session:session是另一種存放會話的機制,主要存放在服務端。當客戶端訪問瀏覽器的時候,伺服器把客戶端資訊以某種形式存放在伺服器中,這就是session;當程式需要為某個客戶端的請求建立session時,先檢查客戶端的請求中有沒有sessionid(使用者首次登入伺服器建立,並返回給客戶端的資訊),如果有sessionid,伺服器就根據sessionid把這個使用者的相關session資訊檢索出來並使用;如果請求不包含sessionid,則根據session為該使用者新建立乙個sessionid。session資訊譬如:使用者賬戶餘額、購物車等資訊
token:token的意思是「令牌」,是使用者身份的驗證方式,最簡單的token組成:uid(使用者唯一的身份標識)、time(當前時間的時間戳)、sign(簽名,由token的前幾位+以雜湊演算法壓縮成一定長的十六進製制字串,可以防止惡意第三方拼接token請求伺服器)。還可以把不變的引數也放進token,避免多次查庫(個人理解,主要是避免不合法)
使用token進行身份驗證的流程:
①客戶端使用使用者名稱跟密碼請求登入
②服務端收到請求,去驗證使用者名稱與密碼
③驗證成功後,服務端會簽發乙個 token,再把這個 token 傳送給客戶端
④客戶端收到 token 以後可以把它儲存起來,比如放在 cookie 裡或者資料庫裡
⑤客戶端每次向服務端請求資源的時候需要帶著服務端簽發的 token
⑥服務端收到請求,然後去驗證客戶端請求裡面帶著的 token,如果驗證成功,就向客戶端返回請求的資料
二、輸入url後到載入網頁的整個過程是怎麼樣的?
1、根據網域名稱解析獲取到對應的ip位址;
2、瀏覽器獲取到網域名稱對應的ip位址後,向ip位址傳送請求連線,進行tcp三次握手;
3、連線建立後,瀏覽器向伺服器傳送http請求;
4、伺服器接收到這個請求後,根據路徑引數對映到特定的請求伺服器進行處理,並將結果以及相應的檢視返回給瀏覽器
5、瀏覽器解析並渲染檢視,如果遇到js、css檔案、資源的使用,需要重複以上步驟請求資源
6、瀏覽器根據請求到的資源進行頁面渲染
三、dns網域名稱解析過程
1、瀏覽器檢查快取中有沒有網域名稱對應的ip位址
2、如果瀏覽器快取中沒有就檢查作業系統的hosts檔案
3、如果本地沒有的話就呼叫網域名稱解析程式
4、把待解析的網域名稱放在dns請求報文中,以udp使用者資料報方式傳送給本地網域名稱伺服器
5、本地網域名稱伺服器根據網域名稱查詢到ip位址後,把對應的ip位址放在回答報文中返回
6、獲取到ip位址後進行tcp三次握手等
四、dns使用tcp還是udp協議?
dns在進行區域傳輸時使用tcp協議,在網域名稱解析時使用udp協議
五、tcp三次握手和四次揮手
1、三次握手:是指在建立乙個tcp連線時,需要client和server總共傳送三個包來確認連線的建立:
(1)client向服務端傳送請求,標誌位syn=1,隨機生成seq=x傳送給server;
(2)server接受到syn=1,知道客戶端要建立連線,則將syn和ack都置為1,ack=x+1,隨機生成seq=y傳送給客戶端;
(3)客戶端接收到請求後,判斷ack=1,ack=x+1,則將ack置為1,ack=y+1,傳送給服務端,服務端收到後檢查是否正確,正確的話則可以建立連線
2、四次揮手:是指斷開tcp連線時,需要客戶端和服務端總共傳送四個包來確認斷開連線:
(1)客戶端向服務端傳送fin=m,要求斷開客戶端到伺服器的資料傳送;
(2)伺服器接受到fin值後,傳送乙個ack=m+1傳送給客戶端。此時tcp連線處於半連線狀態,客戶端已經無法向服務端傳送資料,但是服務端向客戶端傳送資料塔需要接受;
(3)服務端向客戶端傳送乙個fin=n,要求關閉服務端向客戶端的資料傳送;
(4)客戶端接受到fin值後,向服務端傳送ack=1,ack=n+1,服務端接受到確認正確後tcp連線關閉,完成四次揮手
六、 tcp是全雙工的還是半雙工的?
tcp是全雙工
全雙工:傳送資料的同時也可以接收資料
半雙工:同一時間只能有一件事情進行
七、tcp和udp的區別, 和它們各自的應用場景
區別:
1、tcp是面向連線的,udp是無連線的;
2、tcp是可靠地,udp是不可靠的;
3、tcp只支援點對點通訊,udp支援一對
一、一對多、多對
一、多對多的通訊方式;
4、tcp是面向位元組流的,udp是面對報文的;
5、tcp有擁塞控制機制,udp沒有擁塞控制機制
應用場景:
2、tcp適用於要求可靠傳輸的應用,譬如檔案傳輸
八、http與https的區別:
1、http是執行在tcp上,明文傳輸,而https是執行在ssl上,ssl又執行在tcp上,相對比http而言新增了加密和認證機制,更加安全;
2、http預設埠:80,https預設埠:443;
3、https相對與http來說需要進行加密解密過程更加消耗cpu和記憶體資源
4、https一般需要證書認證
九、get和post的區別
1、get一般用來從伺服器獲取資源,post一般用來更新資源
2、get請求引數一般放在url位址中,明文傳輸不安全,post提交的資料一般放在請求體中
3、get請求長度收到url的限制,傳送的資料比較少,而post請求資料放在請求體中不受限制
十、http長連線&短連線
實際是tcp的長連線、短連線
原來http使用短連線,連線完成任務結束後自動中斷連線
長連線是指進行tcp三次握手後,不進行四次揮手,響應頭中會有標記 connection:keep-alive,但是這個keep-alive並不是永久的,會有保持的時間(伺服器設定),並且有最大限制連線數
當前http1.1預設是長連線
長連線:
(1)優點:可以省去較多的tcp連線和關閉的過程,對於請求資源比較頻繁的客戶端適合使用長連線
(2)缺點:在長連線的應用場景下,client端一般不會主動關閉連線,當client與server之間的連線一直不關閉,隨著客戶端連線越來越多,server會保持過多連線
(3)適用:資料庫
短連線
(1)優點:短連線對於伺服器來說管理較為簡單,存在的連線都是有用的連線,不需要額外的控制手段。
(2)缺點:如果客戶請求頻繁,將在tcp的建立和關閉操作上浪費較多時間和頻寬。
十一、http請求型別
get、post、put、delete、head等
十二、http請求包含哪些部分?
請求行:①請求方法:get、post、put、delete等;②請求url;③http協議以及版本
請求頭:http的報文頭,報文頭包含若干個屬性,格式為「屬性名:屬性值」,例如:cookie、ua、accept-language等
請求體:post請求時傳遞的資訊;get請求沒有請求體
空一行十三、http響應狀態碼
(1)200--伺服器響應成功
(2)302--請求被重定向
(3)304--已被快取
(4)400--請求有語法問題
(5)401--請求未經過授權
(6)403--拒絕請求
(7)404--請求的資源不存在(通常是請求的url錯誤)
(8)500--伺服器內部錯誤
(9)502--作為閘道器或者**工作的伺服器嘗試執行請求時,從上游伺服器接收到無效的響應
(10)503--伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常
十四、osi七層模型以及其協議名稱
(1)應用層:http/ftp/pop3
(2)表示層:jpeg/mpeg
(3)會話層:rpc/asp/nfs
(4)傳輸層:tcp/udp
(5)網路層:ip
(6)資料鏈路層:hdlc/ppp,將位元流進行分組處理,8位一組(位元組)依次傳送資料(幀),
(7)物理層:互聯物理鏈路,用物理介質:網線、光纖、無線電波,以01101形式存在(位元流)
十五、tcp/ip四層協議
(1)應用層
(2)傳輸層
(3)網路層
(4)網路介面層
十六、ip位址,由網路標識和主機標識兩部分組成
計算機網路常見面試題
200 success 301 permanently shifted 資源被永久轉移到了其他url 403 forbidden 404 not found 500 internal error 伺服器內部錯誤 應用層表達層 會話層傳輸層 網路層資料鏈路層 物理層tcp 在傳輸之前會進行三次溝通,一...
常見面試題 計算機網路
tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。兩者的區別大致如下 埠服務21ftp 檔案傳輸協議 22ssh 23telnet遠端登入 25smtp簡單郵件傳輸協議 53dns網域名稱伺服器 80http超文字傳輸協議 ...
計算機網路常見面試題
tcp和udp是osi模型中的運輸層中的協議。tcp提供可靠的通訊傳輸,而udp則常被用於讓廣播和細節控制交給應用的通訊傳輸。兩者的區別大致如下 tcp對應的協議 udp對應的協議 snmp 簡單網路管理協議,使用161號埠,是用來管理網路裝置的。由於網路裝置很多,無連線的服務就體現出其優勢。tft...