前言:
最近在移动开发的项目中接触了很多关于网络连接的编程应用:如手机端调用服务端后台提供的接口,就是通过向服务端发送http请求,获取数据;而后台(我这边用的是tomcat)服务器对每一个http请求都开启了一个Tcp连接链路(关于这个点,我也不太确定,不过通过查看服务端的监听端口,好像是开启了,汗)。这中间的具体操作一直比较模糊,而且通过对数据库的连接进行研究发现数据库这一端也是采用TCP/ip技术来提供对外的数据服务,回顾之前对Http,socket和Tcp/ip的启动顺序一直不甚清晰,很有必要进行深入探讨一番,现在网上查看了一些资料,总结一下。
一.不得不提的IOS七层模型
1.网络由下往上分为:
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
2.三者的位置和提供的功能
IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层。
socket则是对TCP/IP协议的封装和应用(程序员层面上)。
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输。
HTTP是应用层协议,主要解决如何包装数据。
二. HTTP 和TCP/IP
关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:
“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话&#x