学习socket.io前的网络基础知识准备(白话讲解)
阅读本文章可以解决一下问题:
1 http tcp udp tcp/ip socket 区别和关系?
2 为什么聊天要用socket.io 基于http不行?
1:
1)tcp/ip
tcp/ip 不是协议,而是网络模型
2) TCP和UDP:传输层协议;
3) HTTP:应用层协议;HyperText Transfer Protocal,即:超文本传输协议 基于tcp 本身特点为 请求---》响应
4)SOCKET:TCP/IP网络的API。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。是一种门面模式
2
1)因为http协议是无状态的,要实现浏览器与服务器的实时通讯,如果不使用 flash、applet 等浏览器插件的话,就需要定期轮询服务器来获取信息,
后来 http1.0增加了keepalive 可以保持链接不中断,但是仍然无状态,所以才有了 cookie,session来记住request的状态,作为http协议的一个补充
2) socket 是基于tcp/ip网络模型,也就是最基础的协议,可以面向tcp协议 也可以面向udp协议,所以http能实现的他都能实现,http不能实现的它也能实现。socket 是长连接
参考资料: http://www.cnblogs.com/xhwy/archive/2012/03/03/2378293.html
http://www.cnblogs.com/lavenderone/archive/2011/10/14/2212523.html