B/S网络架构概述:
B/S网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,与大多数传统的C/S互联网应用程序采用的长连接的交互模式不同,HTTP采用无状态的短连接的通信方式,通常情况下,一次请求就完成了一次数据交互,通常也对应一个业务逻辑,然后这次通信连接就断开了。采用这种方式是为了能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能每个用户访问一次后就一直保持这个连接。
当一个用户在浏览器里输入www.taobao.com这个URL时,将会发生很多操作。首先它会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到对应的服务器,向这个服务器发起一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。
在服务器端实际上还有很复杂的业务逻辑:服务器可能有很多台,到底指定哪台服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求;还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里。
当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(如CSS,JS或者图片)时又会发起另外的HTTP请求,而这些请求很可能会在CDN上,那么CDN服务器又会处理这个用户的请求,大体上一个用户请求会涉及这么多的操作。
DNS域名解析过程:
第一步,浏览器会检查缓存中有没有这个域名对应的解析过得IP地址,如果缓存中有,这个解析过程就将结束。
第二步,如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。【在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来配置,在Linux中这个配置文件是/etc/hosts文件来配置】
第三步,如果前两步不成,通过LDNS,也就是本地区的域名服务器,把域名解析成对应的IP地址,然后根据这个IP地址在互联网上找对应的服务器
第四步,如果LDNS仍然没有命中,就直接到Root Server域名服务器请求解析
第五步,根域名服务器返回给本地域名服务器一个所查询域的主域名服务器(gTLD Server)地址。gTLD是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右
第六步,本地域名服务器(Local DNS Server)再向上一步返回的gTLD服务器发送请求
第七步,接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server通常就是你注册的域名服务器
第八步,Name Server 域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器
第九步,返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP的对应关系,缓存的时间由TTL值控制
第十步,把解析的结果返回给用户,用户根据TTL值缓存再本地系统缓存中,域名解析过程结束
CDN工作机制:
CDN也就是内容分布网络(Content Delivery Network),它是构筑在现有Internet上的一种先进的流量分配网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
目前CDN都以缓存网站中的静态数据为主,如CSS,JS,图片和静态页面等数据。用户在从主站服务器请求到动态内容后,再从CDN上下载这些静态数据,从而加速网页数据内容的现在速度。
分享到:
相关推荐
### 基于Java的Web应用概览 #### 一、引言 随着互联网技术的飞速发展,基于Java的Web应用已经深入到社会的各个领域。Java作为一种强大的编程语言,自1994年以来凭借其简洁性、安全性、高性能、多线程处理能力以及...
由于提供的信息有限,无法给出更详细的章节内容,但以上是根据常见Java Web开发教程的常规结构推测出的知识点概览。实际书籍的内容会更具体、更详细,覆盖更多实际开发中可能遇到的问题和解决方案。
Java Web 技术作为一种广泛应用的企业级开发技术,在当前的互联网环境中占据着举足轻重的地位。随着互联网的发展,各种在线服务和应用的需求不断增加,Java Web 技术因其强大的功能性和灵活性而成为许多企业和开发者...
通过学习《RESTful Java Web Services》这本书,开发者可以全面掌握如何使用Java开发RESTful Web服务的核心概念和技术细节。从理论基础到实践操作,本书都提供了详尽的指导,帮助读者建立起坚实的RESTful Web服务...
### JAVA Web全新维度课程知识点概览 #### 一、JAVA Web基础 - **JAVA Web基本概念**:首先从JAVA Web的基础概念入手,了解其核心原理和技术栈,为后续的学习打下坚实的基础。 - **HTTP协议详解**:深入理解HTTP...
### Java Web基本教程概览 #### 一、Java编程语言概述 Java是一种面向对象的编程语言,它由Sun Microsystems开发,现为Oracle公司所有。Java的设计目标是实现“一次编写,到处运行”的特性,这得益于其编译成字节码...
JAVA WEB传智书城系统开发与设计概览
### Java语言及Web核心技术知识点概览 #### 一、Java语言概述 - **起源与发展**: - Java语言由Sun Microsystems公司的James Gosling等人于1995年创建,最初名为Oak,旨在用于消费电子产品的交互式应用。 - 随着...
### Java Web计算器设计概览 #### 标题:“Java Web计算器” 标题直接指出了本项目的核心——一个基于Web的计算器应用。在Web开发领域,Java是一种广泛使用的后端编程语言,但这里的“Java”实际上可能是指在Web...
这个资源包的核心目标是帮助用户深入理解Java Web开发的关键概念和技术,通过实例和练习加强理论知识。下面将详细阐述每个部分的主要知识点: 1. **教学PPT**:这些幻灯片通常会涵盖Java Web的基础概念,包括...
#### 二、Java Web Start 概览 **Java Web Start** 是一种用于简化 Java 应用程序分发和更新的技术。它可以使得应用程序既能在桌面环境下直接运行,也能通过网页链接启动,从而极大地提升了用户体验和开发者的工作...
### Java Web开发概览 Java Web开发是一种使用Java编程语言创建动态Web应用程序的方法。它涉及多种技术,包括Servlet、JSP、JavaBeans以及框架如Spring、Struts等。在本案例中,重点放在了JSP和JavaScript上。 ###...
### Java Web培训课件知识点详解 #### JSP内置对象概览 JSP(Java Server Pages)作为Java Web开发中的重要组成部分,提供了多个内置对象来简化Web应用的开发过程。这些对象可以直接在JSP页面中使用,无需显式声明...
### Java Web 课程设计报告知识点总结 #### 一、项目背景与概述 - **系统名称**:通讯簿管理系统 - **开发目的**:为用户提供一个简单便捷的平台,用于管理和查询通讯信息。 - **功能概览**: - 新用户注册 - ...
### RESTful Java Web Services知识点概览 #### 一、RESTful架构原理与概念 - **REST(Representational State Transfer)**:一种网络应用程序的设计风格和开发方式,基于约束条件和原则,利用HTTP协议来实现...