網路通訊——socket(TCP/IP).Http,同步和非同步的區別
阿新 • • 發佈:2019-01-10
1首先說下同步和非同步的區別吧
同步:提交請求->等待伺服器處理->處理完畢返回 這個期間客戶端瀏覽器不能幹任何事 (比如 普通B/S模式)非同步:請求通過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢 (AJAX技術(非同步))
舉個栗子說: 同步 就是你叫我去吃飯,我聽到了就和你去吃飯;如果沒有聽到,你就不停的叫,直到我告訴你聽到了,才一起去吃飯。
非同步 就是你叫我,然後自己去吃飯,我得到訊息後可能立即走,也可能等到下班才去吃飯。
更多請看:http://blog.csdn.net/morethinkmoretry/article/details/5791258
2 socket TCP/IP .http協議的區別
網路協議的話分為: 物理層、資料鏈路層、網路層、傳輸層、會話層、表示層和應用層。IP協議對應於網路層,TCP協議對應於傳輸層,而HTTP協議對應於應用層 三者從本質上來說沒有可比性
socket則是對TCP/IP協議的封裝和應用(程式設計師層面上),也就是說TPC/IP協議是傳輸層協議,主要解決資料如何在網路中傳輸,而HTTP是應用層協議,主要解決如何包裝資料。
TCP/IP和HTTP協議的關係,網路有一段比較容易理解的介紹:“我們在傳輸資料時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別資料內容。 如果想要使傳輸的資料有意義,則必須使用到應用層協議。(http就是一種應用協議)http和socket
CSDN上有個比較形象的描述:HTTP是轎車,提供了封裝或者顯示資料的具體形式;
Socket是發動機,提供了網路通訊的能力。
實際上,傳輸層的TCP是基於網路層的IP協議的,而應用層的HTTP協議又是基於傳輸層的TCP協議的,而Socket本身不算是協議,就像上面所說,它只是提供了一個針對TCP或者UDP程式設計的介面。