什么是HTTP協議
HTTP協議是一種應用層協議,HTTP是HyperText Transfer Protocol(超文本傳輸協議)的英文縮寫。HTTP可以通過傳輸層的TCP協議在客戶端和服務器之間傳輸數據。HTTP協議主要用於Web瀏覽器和 Web服務器之間的數據交換。我們在使用IE或Firefox瀏覽網頁或下載Web資源時,通過在地址欄中輸入,開頭的4個字母http就相當於通知瀏覽 器使用HTTP協議來和host所確定的服務器進行通訊。
一、什么是tcp的三次握手?
結合圖與文字理解。
上圖黃色區域是tcp三次握手的過程。
第一次握手:客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認。
第二次握手:服務器收到syn包,必須確認客戶端的syn(ack=j+1),同時自己也發送一個syn包(syn=k), 即SYN+ACK包,此時服務器進入SYN_RECV狀態
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED(建立完成)狀態,完成三次握手。
當然,需要注意:握手過程中,傳輸的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳出數據。
理想狀態下,tcp一旦建立連接,在通信雙方的任何一方,未主動關閉連接之前,tcp連接都將一直保持下去。
然而,斷開連接時,服務器和客戶端都可以主動發起斷開tcp連接的請求,斷開過程需要,’四次握手’,如上圖紅色虛線部分。
所以,你平時聽到的什么三次握手連接,tcp 七次握手說的就是它!
———————————————————
二、請描述下http連接的特點?
http:超文本傳輸協議(Hypertext Transfer Protocol),是你平時電腦上網,手機上網,的常用協議之一,當然,http是建立在tcp協議之上的一種應用。
當然最顯著的特點是,客戶端每次發送的請求,都需要服務器響應,請求結束后,會主動釋放連接。從建立連接到關閉連接的過程,成為”一次連接”。
三、TCP和UDP的區別?
TCP是確認包的到達,所以不丟失包(數據),順序也是好的。
UDP不會確認包的到達,所以可能會丟失數據包,當然順序也有可能會亂。
除了這些以外:
1. TCP是面向連接(三次握手)的,所以穩定、可靠,那相對就慢了
比如平時的:文件傳輸,右鍵,http等用的都是tcp協議
2. UDP是面向無連接的,所以不穩定,但是相對快,實時性高
比如平時:做什么現場直播,視頻通話啥的
當然,大家平時用的QQ就是UDP協議(有沒有消息錯亂的時候)
MSN用的TCP,所以你感覺很卡,很慢
四、簡述七層模型與四層模型的區別?列出常見的網絡協議?
七層: OSI 開放系統互聯參考模型,它是理論的,參考模型
物理層->數據鏈路層->網絡層->傳輸層->會話層->表示層->應用層
四層: TCP/IP模型 ,現在實際應用的這一層
網際接口層->互聯網層->傳輸層->應用層
物理層: 主要定義的是—傳輸介質 比如 RJ-45等 這一層沒啥協議,都是規范啥的
數據鏈路層:就是平時的局域網,局域網內的數據傳輸 MAC層
常見協議:
ARP (Address Resolution Protocal) 地址解析協議,就是 把 IP->MAC(你聽過ARP欺騙的)
RARP(Rerserve Address Resolution Protocal) 反向地址轉換協議 MAC->IP
當然他們是沒有端口號的,他們表現的是一一對應關系
比如: cmd-> arp -a
網絡層: 外網的傳輸 IP層
常見協議:
IP (Internet Protocol)網際協議
ICMP (Internet Control Message Protocol)網絡控制信息協議 (平時的ping)
IGMP (Internet Group Management Protocol)組管理協議
NAT (Network Address Translation) 網絡地址轉換
傳輸層:
TCP
UDP
這倆是啥,不介紹了。
應用層:
HTTP 80
HTTPS 443
DNS 53
SMTP 發送郵件端口 25
POP3 收郵件端口 110
FTP 20端口,負責傳出數據, 21端口負責發起和建立連接
TELNET 23
DHCP—動態主機配置協議, 客戶端請求用的67端口,服務器回應用的是68端口