java中TCP与UDP区别是什么?GET与POST有何区别?

BSO 2020-11-23 14:47:54 java常见问答 8945

在我们的日常学习过程中会发现,java中关于网络安全的知识也是非常多的,这也是在我们面试的时候很有可能会遇到的问题。一起来看看吧。

首先要为大家简述的就是TCP与UDP的区别。

一、TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务;UDP是无连接的,即发送数据之前不需要建立连接,;UDP尽最大努力交付,即不保证可靠交付。

二、由于UDP无需建立连接,因此UDP不会引入建立连接的时延,TCP需要在端系统中维护连接状态,比如接受和发送缓存,拥塞控制,序号与确认号的参数等,故TCP会比UDP慢。

三、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。

四、每一条TCP连接只能是一对一的;UDP支持一对一,一对多,多对一和多对多的交互通信。

五、UDP分组首部开销小,TCP首部开销20字节;UDP的首部开销小,只有8个字节。

六、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,一次交付一个完整的报文,报文不可分割,报文是UDP数据报处理的最小单位。

七、UDP适合一次性传输较小数据的网络应用,如DNS,SNMP等

那么,GET和POST的区别在哪里呢?

一、get是获取数据,post是修改数据

二、get把请求的数据放在url上,以?分割URL和传输数据,参数之间以&相连,所以get不太安全。而post把数据放在HTTP的包体内(requrest body)

三、get提交的数据最大是2k( 限制实际上取决于浏览器), post理论上没有限制。

四、GET请求会被浏览器主动缓存,而POST不会,除非手动设置。

五、GET是幂等的,而POST不是幂等的。

六、GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

可以看出它们之间的区别还是很明显的,这也方便大家更好的区分和掌握这些知识。如果你想要了解更多的java常见问题,敬请关注奇Q工具网。

推荐阅读:

java中同步与异步的区别是什么?表现在哪里?

java线程池如何实现方法?和线程区别在哪?

java同步机制有哪几种实现方式?同、异步有哪些区别?