读计算机网络应用层心得体会

    今天读计算机网络自顶向下方法这本书的应用层协议Http时结合曾经做过的一个Android的项目,对Http通信有了更深入的了解,记录如下:


什么是Socket。

Socket是套接字这大家都知道,那么这个东西具体是干吗用的呢,他存在的目的是什么呢,我读完计算机网络书中的应用层协议Http后有了自己的理解,首先Http是建立在运输层TCP协议上的一个协议,Http可以通过某种手段对TCP协议进行一些参数的设置,以达到对TCP协议的不完全控制,这里说的某种手段就是Socket,其实Socket的相当于TCP对上层服务提供的一个API(程序编程接口),上层服务通过调用这个Socket接口里的函数对下层的TCP协议进行一小部分的设置,如设置TCP是否为持久链接,超时等等这些东西,由于Socket并没有提供对TCP如何进行数据传输的控制,所以Http也不可能控制TCP具体的数据传输机制。

总结:Socket是TCP提供给上层服务的一个可调用的API,上层服务通过Socket对TCP进行部分控制和设置。


什么是一个TCP连接,以及什么是持久连接什么是非持久连接

其实这一点相对来说比较简单,但是他的主要作用是承接上面的心得一,以及过度到下面的心得三

一个TCP连接对应了一对socket套接字,也可以说是对应了一个主机上的某个端口号,以发送Http请求为例,当客户定义一个HttpClient的对象httpClient时候,并执行httpClient.execute(URL url)方法时,底层的实现是Java编程中的Socket编程,也就是说底层会为这个HttpClient分配一个端口号来建立一个socket连接(也就是TCP连接),如果你对这个HttpClient进行相应的设置使得为他提供服务的下层TCP协议不是一个持久连接的话,那么当获取到HttpResponse的时候,这个TCP连接就会断开,如果你设置为持久连接,那么当你用httpClient再次执行execute方法向服务器发送请求的时候,底层使用的是同一个TCP连接,而不需要重新进行三次握手进行连接,这就是TCP持久连接和非持久连接的区别。


    

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值