随着网络的发展,互联网的网络已经由传统的C/S架构转变为更加方便快捷的B/S架构。
一、B/S架构的好处:
(1)客户端使用了统一的浏览器。
(2)服务端基于统一的HTTP,使用统一的http也为服务提供商简化了开发模式,使得服务器开发者可以采用相对规范的开发模式。
二、B/S网络架构概述
B/S网络架构从前端到后端都的到了简化,都基于统一的应用层协议http来交互数据,与大多数C/S互联网应用程序采用的长连接的交互模式不同,http采用无状态的短连接,并且能够同时服务更多的用户。
当用户在浏览器输入一个URL的时候,发生的 操作为:
(1)DNS把这个请求域名解析为对应的 IP地址;
(2)根据这个IP地址找到 对应的服务器;
(3)向服务器发起请求,然后这个服务器返回相应的数据;
注:在服务器端还有很多业务逻辑:服务器可能 有很多台,到底由那台服务器来处理请求,这就需要一个 负载均衡设备来平均分配所有用户的请求;还有请求的数据是储存在分布式缓存里还是一个静态文件里,或是在数据库里;当请求返回浏览器时,浏览器解析数据发现还有一些静态资源时又会发起另外的http请求,这些请求很可能会发生在CDN上,然后CDN处理请求。
三、如何发起一个请求:
发起一个http请求的过程实际上就是建立一个Socket的过程;
浏览器在建立Socket之前,必须根据 地址栏里面输入的URL的域名解析出 IP地址,再根据这个IP地址和默认的80端口与远程服务器建立Socket连接,然后浏览器根据这个URL组装成 一个get类型的http请求头,通过outputStream.write发送到目标服务器,服务器等待inputStream.read返回数据,最后断开这个连接。
B/S网络架构的核心是HTTP。
四、DNS域名解析
(1)浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,若有,这个解析过程结束;浏览器缓存大小和时间都有限制,域名被缓存的时间限制可以通过TTL属性来限制。
(2)操作系统会有一个域名解析的过程,在WIndows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,可以将任何域名解析到任何能够访问的IP地址
流程:Local DNS Server ——>gTLD——>Name Server
(3)域名解析记录主要分为A记录、MX记录、CNAME记录、NS记录、和TXT记录
#A记录可以将多个域名解析到一个IP地址,但是不能将一个域名解析到多个IP地址
五、CDN工作机制
CDN也就是内容分布网络,它是构筑在Internet的一种先进的流量分配网络。
CDN = 镜像+缓存+整体负载均衡
CDN具有 可扩展、安全性、可靠性、响应和执行
CDN架构
六、负载均衡
负载均衡就是对工作任务进行平衡、分摊到多个操作单元上执行,多个服务器协作共同完成任务。
负载均衡架构一般为:链路负载均衡、集群负载均衡和操作系统负载均衡;
负载均衡是由DNS的解析来完成的,这种DNS的解析的优点是用户会直接 访问目标服务器,而不需要经过其他服务器,通常访问速度会更快;缺点是:DNS在用户本地和Local DNS Server 都有缓存,一旦某台Web Server 挂掉,就很难及时更新用户的域名解析结构。
集群负载均衡包括硬件负载均衡和软件负载均衡。
相关推荐
尽管B/S架构简化了用户使用和开发过程,但作为开发者,我们仍然需要深入理解Web请求过程中的底层关键技术。当用户在浏览器中单击链接时,从发送请求到服务器返回结果,这一过程中涉及多个步骤和技术。 首先,浏览器...
关于web请求过程中从域名的输入,到CDN解析渲染整个过程分析图解,不可用于商业用途,如有版权问题,请联系删除!
在深入探讨 Nginx 中 HTTP 请求处理过程之前,需要了解一些基本概念和数据结构。 1.1 基本数据结构 Nginx 中使用了许多基本数据结构,如链表、树、哈希表等。这些数据结构是 Nginx 高效处理请求的基础。 1.2 HTTP ...
PB 提交 WEB 请求包含中文参数的解决方案全过程 PB 是 PowerBuilder 的缩写,这是一种流行的开发工具,但是在提交 WEB 请求包含中文参数时,会出现乱码问题。本文将详细介绍如何解决这个问题,包括使用 GETURL 和 ...
Web请求和HTTP请求报文是网络编程中的核心概念,尤其在开发Web应用程序时至关重要。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。在此,我们将...
本文将深入探讨SpringBootWeb请求响应的处理机制,以及相关技术如HTML、CSS和JavaScript在Web开发中的角色。 1. Web开发基础 Web开发涵盖了网页设计和动态内容的创建。微软定义Web开发为使用HTML、CSS和JavaScript...
本工具“HTTP网页请求过程分析工具”正是针对这个过程进行深入解析的利器,对于Web开发者来说具有极高的实用价值。 在HTTP通信过程中,主要有两个关键角色:客户端(通常是浏览器)和服务器。HTTP请求由客户端发起...
8. **会话管理**:包括Cookie、Session等技术,用于在Web请求之间保持用户状态。 9. **过滤器和监听器**:它们是Java Web中的重要组件,用于拦截请求、响应,实现如日志记录、权限控制等功能。 10. **Web安全**:...
### Spring Boot Web 请求响应详解 #### 一、Spring Boot Web 请求响应概述 Spring Boot 提供了一种简单的方式来构建 RESTful Web 服务。本篇将深入探讨如何使用 Spring Boot 处理 HTTP 请求和响应,理解其背后的...
首先介绍前端知识,即在JavaWeb 开发中涉及的一些基本知识,包括Web 请求过程、HTTP、DNS 技术和CDN 技术。其次深入介绍了Java 技术,包括I/O 技术、中文编码问题、Javac 编译原理、class 文件结构解析、ClassLoader...
使您由内而外地明白使用Java进行Web应用开发的全过程——从XML基础知识到HTTP详述及相关体验,从用Tomcat配置Web站点到HttpServletResponse和HttpServletRequest的应用,以及JSP、JavaBean等Java Web开发相关方面都...
首先介绍前端知识,主要介绍JavaWeb开发中涉及的一些基本知识,包括Web请求过程、HTTP协议、DNS技术和CDN技术。其次深入介绍Java技术,包括I/O技术、中文编码问题、Javac编译原理、class文件结构解析、ClassLoader...
本篇文章将深入探讨如何在Delphi中使用HTTP POST方法来调用基于Web Services的SOAP接口。 首先,理解HTTP POST请求的基本概念。POST是HTTP协议中的一个方法,用于向服务器发送数据,常用于提交表单或上传文件。在与...
在本文中,我们将深入探讨如何使用C++语言和TinyHTTP源码实现一个轻量级的Web服务器,以处理HTTP协议中的GET和POST请求。这个项目是适合初学者的,可以帮助他们理解网络编程的基础,特别是HTTP协议和服务器端的实现...
本示例中,我们将深入探讨如何在服务端使用Web API以及客户端如何通过Ajax调用来实现跨域请求。 首先,Web API是.NET Framework的一部分,用于构建RESTful服务。REST(Representational State Transfer)是一种软件...
首先介绍前端知识,即在JavaWeb 开发中涉及的一些基本知识,包括Web 请求过程、HTTP、DNS 技术和CDN 技术。其次深入介绍了Java 技术,包括I/O 技术、中文编码问题、Javac 编译原理、class 文件结构解析、ClassLoader...
### 深入剖析Spring Web源码 #### 一、Spring Web MVC介绍 **1.1 MVC体系结构** MVC(Model-View-Controller)是一种软件架构设计模式,被广泛应用于构建用户界面丰富的应用程序中。它将应用程序逻辑分为三个核心...
这些请求常用于向服务器获取数据、提交数据或执行其他操作。...通过这些案例,我们可以更好地了解Web请求的处理流程,以及Spring框架如何简化这一过程。在实际开发中,应根据业务需求灵活运用这些技术和最佳实践。
在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Class)库创建一个单文档应用程序,该程序能够向Web服务器发送HTTP请求并显示响应内容。MFC是微软为Windows平台提供的C++类库,它简化了Windows API的...