Web世界通信协议 - 学习/实践

1.应用场景/目的

了解web世界中, 各种网络通信协议, 实现的手段, 区别和原理.

另外发现, 网上很多博客, 问答等都没有回答清楚web中的一些协议, 通信的准确定义以及原理和实质. 

这里希望自己能逐步准确整理出来网络相关的概念,协议, 原理, 本质等. 

 

再次发现, 弄清楚一个技术本质, 不下功夫是不行的.

2.学习/操作

1.App与后台通信协议

TBD

 

网上暂答:

通用的语言有很多种,例如英语和中文.

在网络的通讯中,通用的协议有很多,其中http是被最广泛使用的。如果是私有的协议,那就只能自己另外设计.

 

用http是最方便的,如果是私有协议,包含协议的封装和拆解,工作量大,前端程序员和后端程序员都要增加很多额外的工作量。而且私有协议对程序员的要求高,不适合从web网站转过来的开发者。除非是手游,不然用http就好了。

 

问题:

App和服务器通讯使用长连接还是短连接?

 

假设现在通过手机拨打另外一个人的手机,手机通话费用非常便宜[甚至可以忽略],但是有两个注意的地方:
1.一台手机同一时间只能接听一个电话。
2.一台手机接听电话前非常麻烦,要拨号啦,要等接听,这需要一段时间。

 

App和服务器通讯使用长连接还是短连接这个问题,可以等同于上面电话模型,是一直保持着通话,还是有需要时才拨号通话这个问题?

 

当App和服务器通讯使用长连接,就相当于一直保持着通话,服务器能保持的通讯数量有限,如果通讯满了,那其他App就不能和服务端通讯了。这种通讯方式,多数是使用socket或websocket连接长时间连接,对程序员的要求比较高,开发比较困难,除了手游和聊天推送服务外,不建议使用。

 

当App和服务器通讯使用短连接,就相当于需要时才拨号通话。

这种通讯方式,配合http协议,是现在主流的通讯方式,开发效率高,有大量的第三方资源,使用非常广泛,推荐使用这种方式。

当App和服务器通讯使用短连接,就相当于需要时才拨号通话。这种通讯方式,配合http协议,是现在主流的通讯方式,开发效率高,有大量的第三方资源,使用非常广泛,推荐使用这种方式。

当App调用api的时候,只需要明确下面3点
1.这个api是干啥的(柜员机例子中,是取款功能,还是查询余额,还是转账)

2.知道要输入什么(柜员机例子中,取款要输入金钱)

3.知道结果是什么(柜员机例子中,取款是成功还是失败)

至于api内部是怎么处理的,app根本无需理会。

api,一般是以http的形式调用的,通过http传入参数,返回结果。

其中,结果一般是以json格式返回的,因为json格式被众多计算机语言支持,而且省流量。

 

2.浏览器与服务器通信
TBD

 

 

 

后续补充

...

3.问题

Q1: 浏览器只能支持http[包括http 1.0 / 1.1 / 2.0]协议吗?

浏览器还支持: 

ftp[文件传输协议], 用于Internet上的控制文件的双向传输。

HTTPS [Hyper Text Transfer Protocol over Secure Socket Layer], 简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 //另外查看资料

File[本地文件传输协议] , File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。

IT中的应用:要使用File协议,基本的格式如下:file:///文件路径,

比如要打开I盘test文件夹中的1.txt文件,那么可以在资源管理器浏览器地址栏中键入:file:///I:/test/1.txt [可以省略file:///]并回车。

浏览器如下:

Web世界通信协议 - 学习/实践_第1张图片

Web世界通信协议 - 学习/实践_第2张图片

资源管理器中:

Web世界通信协议 - 学习/实践_第3张图片

 

 

Q2: http协议只能使用tcp协议吗?

A: TCP三次握手[为了建立可靠连接]而不是HTTP,HTTP可以不用TCP协议。

 

http协议只定义了应用层的东西,下层的可靠性要传输层来保证,但是没有说一定要用tcp,只要是可以保证可靠性传输层协议都可以承载http,比如有基于sctp的http实现。 http也不是不能通过udp承载,在手机上就有人自己开发基于reliable udp的http协议,不过都是非标准的.

 

Q3: http连接, socket连接 , websocket连接有什么区别?

TBD

 

Q4: 服务器能维持的连接数是怎样的? 跟什么因素有关?

TBD

 

 

后续补充 

...

4.参考

https://www.zhihu.com/question/32095220/answer/55139710  //写一个即时通信的app,服务器端需要用到哪些技术?

https://blog.csdn.net/Pony_18/article/details/78712215  //常见浏览器协议

后续补充

...

你可能感兴趣的:(网络-NETWORK,web世界,通信协议,http/tcp)