前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web请求过程

Web请求过程

作者头像
Java架构师必看
发布2021-05-14 16:05:16
3970
发布2021-05-14 16:05:16
举报
文章被收录于专栏:Java架构师必看

一、B/S网络架构概述


B/S网络架构基于统一的应用层协议 HTTP来交互数据,与大多数的传统 C/S互联网应用程序采用的长连接的交互模式不同,HTTP采用无状态的短连接的通信方式。一次请求就完成一次数据交互,然后通信就断开。采用这种方式能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能每个用户访问一次后就一直保持这个链接。B/S架构设计如下:既要满足海量用户的访问请求,又要保持用户请求的快速响应。(当浏览器解析服务器返回的数据时,会发现还有一些静态资源,如:CSS/JS/imager等时又会发起另外的 HTTP请求,而这些请求很可能会在CDN上,那么 CDN服务器又会处理这个用户的请求)

二、浏览器缓存机制


开发过程中,为了防止缓存问题。一般会按Ctrl+F5组合键重新请求页面,此时浏览器会直接向目标URL发送请求,不会使用浏览器缓存数据;其次即使请求发送到服务端,也有可能访问到的是缓存数据,比如:应用服务器的前端部署一个缓存服务器,如Varnish代理,那么Varnish也可能直接使用缓存数据。所以为了保证用户能够看到最新的数据,必须通过HTTP来控制。 当我们使用Ctrl+F5组合键刷新一个页面时,在HTTP的请求头中会增加一些请求头信息,它告诉服务端我们要获取最新的数据而不是缓存。(新增了Cache-Control和Pragma两个字段)

 Cache-Control/Pragma:这个HTTP Head 字段用于指定所有缓存机制在整个请求头/响应链中必须服从的命令,不仅可以控制浏览器,还可以控制和HTTP相关的缓存或代理服务器。HTTP Head字段有一些可选值。

可选值

说明

Public

所有内容都被缓存,在响应头中设置。

Private

内容只缓存到私有缓存,在响应头中设置。

no-cache

所有内容都不会被缓存,在请求头中设置。

no-store

所有内容都不会被缓存到缓存或Internet临时文件中,在响应头中设置。

must-revalidation/proxy-revalidation

如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证,在请求头中设置。

max-age=xxx

缓存内容在xxx秒后失效,在响应头中设置。

 ● Cache-Control请求字段被各个浏览器支持得较好,而且它的优先级也比较高,它和其他一些请求字段(如Expires)同时出现时,Cache-Control会覆盖其他字段。  ● Pragma字段的作用和Cache-Control有点类似,它也是在HTTP头中包含一个特殊的指令,使相关服务器遵守该指令,最常用的就是Pragma:no-cache,它和Cache_Control:no-cache的作用是一样的。

三、DNS域名解析


一旦DNS解析出错,可能会导致非常严重的互联网灾难。目前世界上整个互联网就有几个DNS根域名服务器,任何一台服务器坏掉,后果都会非常严重。DNS域名解析的主要请求过程实例图:

四、CDN工作机制


CDN也就是内容分布网络(Content Delivery Network),它是构筑在现有Internet上的一种先进的流量分配网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 目前CDN都以缓存网站中的静态数据为主,如CSS、JS、图片和静态页面等数据。用户在从主站服务器请求到动态内容后,再从CDN上下载静态资源,从而加速网页数据内容的下载速度,如淘宝90%以上的数据都是有CDN来提供的。 通常来说CDN要达到一下几个目标:       ●  可扩展(Scalability):性能可扩展性,应对新增的大量数据、用户和事务等具有扩展能力。成本可扩展:用低廉的运营成本提供动态的服务能力和高质量的内容服务。       ●  安全性(Security):强调提供物理设备、网络、软件、数据和服务过程的安全性,减少因为DDos攻击或者其他恶意行为造成商业网站的业务中断。       ●  可靠性、响应和执行(Reliablility、Responsiveness和Performance)。服务可用性指能够处理可能的故障和用户体验下降的问题,通过负载均衡及时提供网络的容错机制。 CDN架构图:

五、CDN动态加速


CDN的动态加速技术也是当前比较流行的一种优化技术,它的技术原理就是在CDN的DNS解析中通过动态的链路探测来寻找回源最好的一条路径,然后通过DNS的调度将所有请求调度到选定的这条路径上回源,从而加速用户访问的效率。

本文来源程序猿进阶,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、B/S网络架构概述
  • 二、浏览器缓存机制
  • 三、DNS域名解析
  • 四、CDN工作机制
  • 五、CDN动态加速
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档