socket也叫 套接字
socket是一套API 是對TCP/IP協(xié)議的封裝封寞,為了便于使用TCP/IP協(xié)議的然评,這樣形成了我們知道的一些基本接口,create狈究、listen碗淌、connect、accept抖锥、send亿眠、read和write等等,socket并不是協(xié)議磅废。
socket層上的協(xié)議指的是數(shù)據(jù)傳輸?shù)母袷?/p>
無狀態(tài)鏈接纳像,就是指每次發(fā)起請求都是新的鏈接,不是同一個(gè)鏈接拯勉,不會(huì)記錄鏈接狀態(tài)竟趾,每次請求結(jié)束后,鏈接就會(huì)關(guān)閉宫峦,相關(guān)內(nèi)存會(huì)釋放岔帽,這樣不記錄狀態(tài)叫無狀態(tài)鏈接。
Http是無狀態(tài) 短連接鏈接导绷, ?TCP為有狀態(tài) 長鏈接
而Http又是建立在TCP的基礎(chǔ)上的 兩者不一樣的原因是因?yàn)镠ttp在每次請求完成后都會(huì)關(guān)閉TCP鏈接犀勒,所以稱為短連接
而通過socket編程使用TCP編程的時(shí)候,是可以用代碼控制鏈接何時(shí)開始何時(shí)關(guān)閉的妥曲,也就是說用代碼打開一個(gè)tcp鏈接之后贾费, 不去關(guān)閉它, 那么這個(gè)鏈接就一直存在檐盟,相關(guān)數(shù)據(jù)狀態(tài)也會(huì)中一直保存褂萧。
Http的實(shí)現(xiàn)邏輯, HTTP客戶端首先發(fā)起建立與服務(wù)器TCP連接遵堵,鏈接一旦建立箱玷,那么HTTP客戶端和服務(wù)器進(jìn)程就可以通過各自的socket來訪問TCP了,客戶端用自己的socket發(fā)送請求消息也用自己的socket接收響應(yīng)消息陌宿,服務(wù)器也一樣锡足。消息一旦發(fā)給socket后,那么這個(gè)消息就完全由TCP接管壳坪,中間傳輸過程也由TCP來做舶得。
(客戶端不允許多設(shè)備同時(shí)登陸,也是用TCP長連接來做處理的爽蝴,服務(wù)器來控制鏈接個(gè)數(shù)沐批。)