学习socket.io前的网络基础知识准备(白话讲解)

Posted 白马非马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习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

 

以上是关于学习socket.io前的网络基础知识准备(白话讲解)的主要内容,如果未能解决你的问题,请参考以下文章

白话 OSI 七层网络模型

使用socket.io打造公共聊天室

关于学习JAVA前的部分准备

完全理解TCP/UDPHTTP长连接WebsocketSockJS/Socket.IO以及STOMP的区别和联系

学习React前的准备工作

学习C语言前的准备