消息推送(Push)就是通过服务器把内容主动发送到客户端的过程。运营人员通过自己的产品或第三方工具对用户移动设备进行主动消息推送。完成推送后,消息通知会展示在移动设备的锁定屏幕及通知栏上,用户点击通知即可去往相应页面。
现在流行的消息推送实现方式,主要为长链接方式实现。其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。
个推作为国内移动推送领域的早期进入者,于2010年推出个推消息推送SDK产品,十余年来持续为移动开发者提供稳定、高效、智能的消息推送服务,成功服务了人民日报、新华社、CCTV、新浪微博等在内的数十万APP客户。个推消息推送,也是运用的长链接方式实现消息推送的,其长链接稳定性高、存活好,消息送达率高。开发者通过集成个推消息推送SDK,即可简单、快捷地实现Android和iOS平台的消息推送功能,有效提高产品活跃度、增加用户留存。
如果您对个推消息推送感兴趣,欢迎点击前往了解详情。
个推消息推送工作原理
在HTTP通信链上,客户端和目标服务器之间通常存在某些中转代理服务器,它们提供对目标资源的中转访问。一个HTTP请求可能被多个代理服务器转发,后面的服务器称为前面服务器的上游服务器。代理服务器按照其使用方式和作用,分为正向代理服务器,反向代理服务器和透明代理服务器。
正向代理要求客户端自己设置代理服务器的地址。客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求目标资源。比如处于防火墙内的局域网机器要访问Internet,或者要访问一些被屏蔽掉的国外网站,就需要使用正向代理服务器。
反向代理则被设置在服务器端,因而客户端无需进行任何设置。反向代理是指用代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从内部服务器上得到的结果返回给客户端。这种情况下,代理服务器对外就表现为一个真实的服务器。各大网站通常分区域设置了多个代理服务器,所以在不同的地方同一个域名可能得到不同的IP地址,因为这些IP地址实际上是代理服务器的IP地址。
HTTP代理服务器的工作原理
如图所示,正向代理服务器和客户端主机处于同一个逻辑网络中。该逻辑网络可以是一个本地LAN,也可以是一个更大的网络。反向代理服务器和真正的Web服务器也位于同一个逻辑网络中,这通常由提供网站的公司来配置和管理。
透明代理只能设置在网关上。用户访问Internet的数据报必然都经过网关,如果在网关上设置代理,则该代理对用户来说显然是透明的。透明代理可以看作正向代理的一种特殊情况。
代理服务器通常还提供缓存目标资源的功能,这样用户下次访问同一资源时速度将很快。优秀的开源软件squid,varnish都是提供了缓存能力的代理服务器软件,其中squid支持所有代理方式,而varnish仅能用作反向代理。
Step1:用户在地址栏输入一个网址,然后点击回车键;Step2:浏览器与服务器建立TCP连接;
Step3:浏览器将用户的事件按照HTTP协议要求的格式打包成数据包,这个过程的本质就是在待发送缓冲区中有这一段HTTP协议格式的字节流;
Step4:浏览器确认服务器可写,将该数据包推入Internet中,最终,该包被递交到服务端;
Step5:服务器在接收到该数据包后,以同样的格式进行解析,获取客户端的意图;
Step6:在获取了客户端的意图之后,服务器进行分类处理,或是提供某一文件,或是处理相关数据;
Step7:将处理结果装入缓冲区,或者文档,或是其他内容;
Step8:服务器将按照HTTP协议格式,将Step7中的数据进行打包;
Step9:服务器确定对端可写,将数据包推入Internet,该包经过网络处理,最终返回至客户端;
Step10:客户端拿到包之后,以HTTP协议格式进行解包,然后解析数据;
Step11:客户端处理相关数据,并且展示在页面之上。
以上这11步,就是web服务器最基本的工作原理。通过梳理,我们不难发现,这就是一个简单的网络通信过程。换句话说,就是一个简单的发送数据、接受数据、处理数据的过程。更高级的web服务器,无非也就是将上述的三个基础内容划分得更加详细一点而已。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)