要說http就繞不開tcp,tcp協議對應於傳輸層,而http協議對應於應用層,從本質上來說,二者沒有可比性。但是,http是基於tcp協議的。
傳輸層
會話層以上分層
tcp三次握手和四次揮手?
被問爛了的問題了,這裡不詳細講了,三次握手:
四次揮手:
還不懂的童鞋,去找別人的文章好好看看!
tcp和udp的區別?
仔細閱讀上面傳輸層裡寫的內容,懂了嗎?(不懂?不懂背下來啊,混蛋!)
http協議是建立在tcp協議基礎之上的,當瀏覽器需要從伺服器獲取網頁資料的時候,會發出一次http請求。http會通過tcp建立起乙個到伺服器的連線通道,當本次請求需要的資料完畢後,http會立即將tcp連線斷開,這個過程是很短的。所以http連線是一種短連線,是一種無狀態的連線。
所謂的無狀態,是指瀏覽器每次向伺服器發起請求的時候,不是通過乙個連線,而是每次都建立乙個新的連線。如果是乙個連線的話,伺服器程序中就能保持住這個連線並且在記憶體中記住一些資訊狀態。而每次請求結束後,連線就關閉,相關的內容就釋放了,所以記不住任何狀態,成為無狀態連線。
無恥盜圖
傳送端在層與層間傳輸資料時,沒經過一層都會被加上首部資訊,接收端每經過一層都會刪除一條首部
http的英文全稱?
開玩笑的,這個顯然不是重點,但是不排除有人會去問,還是要知道的:超文字傳輸協議(hypertext transfer protocol)
狀態碼?
狀態碼就那些,常用的記住就行了:
2xx 成功
3xx 重定向
4xx 客戶端錯誤
5xx 伺服器錯誤
http協議格式?
http的請求和響應的訊息協議是一樣的,分為三個部分,起始行、訊息頭和訊息體。這三個部分以crlf作為分隔符。最後乙個訊息頭有兩個crlf,用來表示訊息頭部的結束。
http請求的起始行稱為請求行,形如get /index.html http/1.1
http響應的起始行稱為狀態行,形如200 ok
訊息頭部有很多鍵值對組成,多個鍵值對之間使用crlf作為分隔符,也可以完全沒有鍵值對。形如content-encoding: gzip訊息體是乙個字串,字串的長度是由訊息頭部的content-length鍵指定的。如果沒有content-length欄位說明沒有訊息體,譬如get請求就是沒有訊息體的,post請求的訊息體一般用來放置表單資料。get請求的響應返回的頁面內容也是放在訊息體裡面的。我們平時呼叫api返回的json內容都是放在訊息體裡面的。
http的無狀態性?
所謂http協議的無狀態性是指伺服器的協議層無需為不同的請求之間建立任何相關關係,它特指的是協議層的無狀態性。但是這並不代表建立在http協議之上的應用程式就無法維持狀態。應用層可以通過會話session來跟蹤使用者請求之間的相關性,伺服器會為每個會話物件繫結乙個唯一的會話id,瀏覽器可以將會話id記錄在本地快取localstorage或者cookie,在後續的請求都帶上這個會話id,伺服器就可以為每個請求找到相應的會話狀態。
輸入url到頁面載入都發生了什麼事情?(最最常問的來了)
Linux面試總結知識點
1.一台主機要實現通過區域網與另乙個區域網通訊,需要做的工作是?定義一條本機指向目標網路閘道器的路由 2.下列關於檔案系統中元資料 比如ext2中的inode 的基本作用及ext2和ext3的根本區別描述錯誤的有?b a.ext2 inode用來定義檔案系統的結構以及描述系統中每個檔案的管理資訊,每...
vue面試知識點總結
mvvm 是 model view viewmodel 的縮寫。model代表資料模型,也可以在model中定義資料修改和操作的業務邏輯。view代表ui 元件,它負責將資料模型轉化成ui 展現出來。viewmodel監聽模型資料的改變和控制檢視行為 處理使用者互動,簡單理解就是乙個同步view 和...
面試知識點總結 js String
由0個或多個unicode字元組成 用成對的單引號或者雙引號表示 字元字面量 換行 n 回車 r tab t 空格 b 進紙 f 16進製制 x unicode字元 u 建立後不能修改,只能先刪除,在建立新的 u,4個位元組的字元 字串遍歷器介面 可以使用for of,可以識別大於0xffff的碼點...