什么是tcp?
tcp簡稱傳輸控制協(xié)議,提供的是面向連接,可靠的字節(jié)流服務(wù)??蛻艉头?wù)器彼此交換數(shù)據(jù)前,
必須先在雙方之間建立一個tcp連接,之后才能傳輸數(shù)據(jù)。
什么是udp?
udp就是用戶數(shù)據(jù)報協(xié)議,是一個簡單的面向數(shù)據(jù)報的運(yùn)輸層協(xié)議。udp不提供可靠性,它只是把
應(yīng)用程序傳給ip層的數(shù)據(jù)報發(fā)送出去,并不能保證它們到達(dá)目的地。
tcp和udp的區(qū)別?
1.tcp面向連接,udp是面向無連接,即發(fā)送數(shù)據(jù)之前不需要建立連接。
2.tcp提供可靠的服務(wù),也就是說,通過tcp連接傳送的數(shù)據(jù),無差錯,不丟失,不重復(fù),且按序到達(dá)
udp只是盡最大努力交付,不保證可靠交付。
3.udp具有較好的實(shí)用性,工作效率比tcp高,適用于對高速傳輸和實(shí)時性有較高的通信或廣播通信
4.每一條tcp連接只能是點(diǎn)對點(diǎn),udp支持一對一,多對多,多對一和一對多的交互通信。
5.tcp對系統(tǒng)資源要求較多,udp對系統(tǒng)資源要求較少。
6.tcp的邏輯通信信道是全雙工的可靠信道,udp的邏輯通信信道是不可靠信道。
tcp的三次握手和四次揮手
第一次握手:客戶端的應(yīng)用進(jìn)程主動打開,并向客戶端發(fā)出請求報文段。首部中:SYN=1,seq=x.
第二次握手:服務(wù)器應(yīng)用進(jìn)程被主動打開,若同意客戶端請求,則發(fā)回確認(rèn)報文,首部中:
SYN=1,ACK=1,ack=x+1,seq=y.
第三次握手:客戶端收到確認(rèn)報文后,通知上層應(yīng)用進(jìn)程連接已建立,并向服務(wù)器發(fā)出確認(rèn)報文,
首部中:ACK=1,ack=y+1,seq=x+1.當(dāng)服務(wù)器收到客戶端的確認(rèn)報文后,也通知其上層應(yīng)用進(jìn)程已建立。
第一次揮手:數(shù)據(jù)傳輸結(jié)束后,客戶端應(yīng)用進(jìn)程發(fā)出連接釋放報文段,并停止發(fā)送數(shù)據(jù),首部
FIN=1,seq=u
第二次揮手:服務(wù)端收到連接釋放報文段后,發(fā)出確認(rèn)報文,首部:ack=u+1,seq=v
此時本次連接進(jìn)入半關(guān)閉狀態(tài),客戶端不再向服務(wù)器發(fā)送數(shù)據(jù),服務(wù)端仍會繼續(xù)發(fā)送
第三次揮手:若服務(wù)器已經(jīng)沒有向客戶端發(fā)送數(shù)據(jù),其應(yīng)用進(jìn)程就通知服務(wù)器釋放tcp連接
這個階段服務(wù)器發(fā)出最后一個報文首部為 FIN=1,ACK=1,seq=w,ack=u+1
第四次揮手:客戶端收到連接釋放報文后,必須發(fā)出確認(rèn): ACK=1,seq=u+1,ack=w+1
再經(jīng)過2msl(最長報文壽命)后,本次tcp連接真正結(jié)束,通信雙方完成告別。
HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)
用于從www服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少。
HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版,即HTTP加入ssl層,HTTPS的
安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容需要SSL。作用:保證數(shù)據(jù)傳輸安全,確認(rèn)網(wǎng)站的真實(shí)性。
http和https的區(qū)別?
1.https協(xié)議需要到ca申請證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。
2.http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3.http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是43.
4.http的連接很簡單,是無狀態(tài)的;https協(xié)議是由ssl+http協(xié)議構(gòu)成的可進(jìn)行加密傳輸,
身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
http的8種請求方法?
1.opions 返回服務(wù)器針對特定資源所能支持的http請求方法 或利用向web服務(wù)器發(fā)送'*'的請求
測試服務(wù)器的功能性。
2.head 向服務(wù)器索要與get請求一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以再不
傳輸整個響應(yīng)內(nèi)容的情況下,獲取包含在響應(yīng)信息頭中的元信息。
3.get 向特定資源發(fā)出請求(請求指定頁面信息,并返回實(shí)體主體)
4.put 向指定資源位置上上傳其最新內(nèi)容(從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定文檔的內(nèi)容)
5.post 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(提交表單,上傳文件),有可能導(dǎo)致新的
資源建立或原有資源的修改
6.delete 請求服務(wù)器刪除request-URL所標(biāo)示的資源*(請求服務(wù)器刪除頁面)
7.trace 回顯服務(wù)器收到的請求,用于測試和診斷
8.connect HTTP/1.1 協(xié)議中能夠?qū)⑦B接改為管道方式的代理服務(wù)器
http中g(shù)et和post區(qū)別?
1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
get和post只是一種傳遞數(shù)據(jù)的方式,get也可以把數(shù)據(jù)傳到服務(wù)器
2.get是把參數(shù)數(shù)據(jù)隊列加到提交表單的action屬性所指的url中,值和表單內(nèi)各個字段一一對應(yīng)
在url中可以看到。 post是通過http post機(jī)制,將表單內(nèi)各個字段與內(nèi)容放置在html header
內(nèi)一起傳送到action屬性所指url地址,用戶看不到過程
3.對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端
用Request.Form獲取提交的數(shù)據(jù)
4.get傳送的數(shù)據(jù)量小,不能大于2kb,post傳送數(shù)據(jù)量大,一般被默認(rèn)不受限制
理論上,iis4中最大80kb ,iis5中100kb
5.get安全性非常低,post安全性較高。