一次面试中问到的问题,整理一下
首选需要提到OSI(Open System InterConnection)七层模型。(第二列是相关协议)
应用层 | HTTP(用于封装和显示数据)、Telnet、FTP |
表示层 | |
会话层 | |
传输层 | TCP、UDP |
网络层 | IP、ICMP、IGMP |
数据链路层 | |
物理层 |
那么,最明显的区别,应该就知道了:它们是处在不同层次的协议。
HTTP:超文本传输协议,是应用层的协议,以TCP为基础
TCP:传输控制协议,是传输层的协议,以IP协议为基础
可以这样理解: IP协议作为网络中的“公路”,TCP协议是“公路”上面的“货车”,而HTTP协议是用于打包“货车”中的“货物”的。
此外,关于TCP和UDP:
TCP是面向连接的、可靠的连接,能够保证数据到达对方,而 UDP是无连接的、不可靠的连接,只负责发送,不负责确保接收。
为什么说HTTP是无连接的?(面试问题)
需要联系HTTP不同版本之间的区别,以下先放上阮一峰老师的文章作为参考
http://www.ruanyifeng.com/blog/2016/08/http.htmlHTTP协议入门