一直在思考一个我问题,http协议为什么用TCP而不用UDP。
1,一次http请求,ie发送请求->服务器处理ie的请求->ie接收到服务器的请求。
现在假设网络是连通的,不连通就讨论这个就没什么意义了。
TCP发送不成功就重传,这样的话如果不超时总能保证ie的请求被服务器接收,并且不会丢包保证传输无错误。
UDP发后不管,可能存在这样的情况,ie请求发送完了,服务器也接收到了,但是服务器接收到的信息存在缺失或者错误。
可想而知,如果发送给ie的信息有错误的话,ie解析的时候就会报错。
同样都是做完一件事情,基于TCP就没错误(保证成功),基于UDP就有可能存在错误。所以http还是用TCP的好,但不是说不能用UDP。而且UDP还有个劣势就是它的包体不能过大,过大就发送不了,如果你要发送大的文件就需要自己管理截包和组包,这个是比较麻烦的.(实际上一般UDP的包考虑掉必要的包头协议体,内容最好是不要超过1400字节)
但是UDP也有他的优势,就是速度(不需要三次握手,而且有发后不管的功能,是某些情况下异步通信的最好的模型)。