首先 我們要弄明白這個計算機網(wǎng)絡(luò)分層的概念,如下圖

TCP 和 UDP 是運輸層:傳輸數(shù)據(jù)的
HTTP/IP 屬于應(yīng)用層:提供封裝或者顯示數(shù)據(jù)的具體形式
socket:是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議
HTTP 和 TCP 的區(qū)別:
可以只使用(傳輸層)TCP/IP協(xié)議,但是那樣的話,如果沒有應(yīng)用層,便無法識別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用到應(yīng)用層協(xié)議,應(yīng)用層協(xié)議有很多,比如HTTP、FTP、TELNET等,也可以自己定義應(yīng)用層協(xié)議。
HTTP 和 Socket
HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動機,提供了網(wǎng)絡(luò)通信的能力。
參考:
http://www.itdecent.cn/p/947a2673102a
https://blog.csdn.net/sundacheng1989/article/details/52437128