您的位置:首页 > 理论基础 > 计算机网络

关于http协议与tcp协议的一点总结

2018-01-18 14:17 253 查看
tcp协议

1)服务器维护一个tcp长连接,只需要维护ip+端口+客户端ID,前两个属于链接的本质属性,后一个属于业务属性,主要是希望可以减少数据的传输(如果没有客户端ID,每次输出数据都必须带上这个,所以最好直接维护在链接里面)

2)心跳包不属于链接需要维护的东西,它只是确保链接存在且有效的手段,与链接本身没有关系,错误异常处理都属于这个范畴

3)数据传输协议可以自由定义,但是最重要的是需要定义清楚数据头和数据尾(校验一般也是必须的,可以放在数据尾),且不能省略,其余可以根据需要自由定义

udp协议

1)udp有没有最大传输数据的限制?

答:刚听到这个问题,我一脸黑人问号,当然有啊,这还用问么,数据包的大小必然是受限制的啊,这跟udp和tcp有什么关系呢?后来冷静下来细细回想,才明白这个问题的真正意图。我们知道tcp可以发送任意长度的数据,因为它是面向连接的且可靠的传输,所以把一个大的文件分割成合适的数据包。但是udp不行,主要因为udp是非可靠的传输,一旦其中某个包被丢弃了,在接收端就会重组数据失败,所以udp上想做大文件的可靠传输是不靠谱的,最好将数据量保持在一个数据包中

http协议

1)从RESTFul的角度来说,get请求和post请求唯一的区别是一个用来请求数据,一个用来上传数据,但是在浏览器的角度,区别就比较多:

a)对服务器来说,get请求是安全且幂等的(这里的安全是指get请求不会影响服务器数据,幂等是指无论请求多少次,结果都是一样的)

b)get请求是有长度限制的,一般是1024,IE是是2083(2046+35),这个限制主要是由url的长度限制的;body在理论上没有size限制

c)POST请求安全性更高(这里的安全是指数据安全)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: