B/S架构的的好处:

  • 客户端使用统一的浏览器(browser)。由于浏览器的统一性,它不需要特殊的配置和网络连接,有效的屏蔽了不同服务提供商提供给用户使用服务的差异性。另外一点是浏览器的交互特性使得用户的使用非常简便,只要有互联网的使用经验,即可快速掌握使用方法。
  • 服务端(server)基于统一的HTTP协议。和传统的C/S架构使用自定义的应用协议不同,B/S架构使用的都是统一的HTTP协议,使得开发商都是用比较规范的开发模式,这样可以大大减少开发成本。另外由于使用统一的协议,可使用的服务器就很多,直接使用无须开发如:tomcat、nginx、jboss等等。  

B/S网络架构概述:

  当我们在浏览器输入需要访问的URL时,将会发生很多操作。首先它会请求DNS把这个域名解析成对应的IP地址,然后根据这个IP地址在互联网上找到对应的服务器,向这个服务器发送一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。

  在服务器端则根据服务器的业务处理逻辑来决定请求的处理:服务器可能有很多台,到底指定哪一台来处理,这需要一个负载均衡的设备来处理分发用户的请求;还有我们需要的数据资源是在分布式缓存里还是在一个静态文件中,或者是数据库中;当数据返回浏览器时,浏览器处理数据时还会再次发送请求,而这些请求很可能会在CDN上,那么CDN服务器是否会处理用户的这个请求;这其中每个细节都将决定这个请求最终是否会成功。

  HTTP协议需要遵守的原则:

  • 互联网上所有的资源都要用一个URL来表示。URL就是一个统一资源定位符,如果你要发布一个服务或者资源到互联网上,让别人能够访问到,那么首先你就必须拥有一个独一无二的URL。
  • 必须基于HTTP协议与服务端交互。
  • 数据展示必须在浏览器中进行。

  DNS域名解析:

  1.浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。

  2.如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也会有一个域名解析的过程在windows中可通过C:\Windows\System32\drivers\etc\hosts文件来设置,你将可以将任何域名解析到任何能够访问的IP地址。

  3.在我们的网络配置中都会有“DNS服务器地址”这一栏,操作系统会将这个域名发送给这里设置的LDNS,也就是本地区的域名服务器,即本地的网络营运商(电信或联通),就是常说的SPA,他们的服务器性能都比较好,一般都会缓存域名解析结果。

  4.如果LDNS还是没有命中,就直接到ROOT SERVER域名服务器请求解析。

  5.根据域名服务器返回给本地域名服务器一个所查询域的主域名服务器地址(gTLD Server)。

  6.本地域名服务器再向上一步返回gTLD服务器发送请求。

  7.接受请求的gTLD服务器查找并返回此域名对应的Name Server域名服务器地址,这个Name Server通常就是你注册的域名服务器。

  8.Name Server域名服务器会查询存储的域名和IP映射关系表。

  9.返回该域名对应的IP和TTL值,Local DNS Server会缓存这个域名和IP对应关系。

  10.把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

第一章 深入web请求过程的更多相关文章

  1. 第一章 深入Web请求过程(待续)

    B/S网络架构概述 如何发起一个请求 HTTP解析 DNS域名解析 CDN工作机制

  2. 《深入分析Java Web技术内幕》读书笔记 - 第1章 深入Web请求过程

    第1章 深入Web请求过程 1 1.1 B/S网络架构概述 2 基于统一的应用层协议HTTP来交互数据. 1.2 如何发起一个请求 4 HTTP连接本质是建立Socket连接.请求实现方式:工具包如H ...

  3. 第一章 了解Web及网络基础

    第一章 了解Web及网络基础 Web建立基础.HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地 ...

  4. 第一章 创建WEB项目

    第一章   创建WEB项目 一.Eclipse创建WEB项目 方法/步骤1 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>&g ...

  5. Http协议简单解析及web请求过程

    HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤: 1)    ...

  6. Web请求过程总结

    Web请求过程总结 1.CND架构图 图片来源:深入分析JavaWeb技术内幕(许令波著) 2.发起HTTP请求 发起一个HTTP请求就是浏览器建立socket通信的过程,HttpClient开源的通 ...

  7. 爬取百度页面代码写入到文件+web请求过程解析

    一.爬取百度页面代码写入到文件 代码示例: from urllib.request import urlopen #导入urlopen包 url="http://www.baidu.com& ...

  8. web请求过程-学习使人快乐1

    智齿离开我10个小时了,现在除了书啥都不能啃········呜呜呜~     ~~~~~~~~~~~~~~~~~~~想滑滑梯~~~~~~~~~~~~~~~~~~~ 网络请求过程 web请求大多使用B/ ...

  9. 1 深入Web请求过程

    1.1 B/S网络架构概述 B/S 网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,与大多数传统C/S互联网应用程 序采用的长连接的交互模式不同,HTTP采用无状态的短连接 ...

随机推荐

  1. SIG蓝牙mesh笔记5_Provisionging

    目录 Bluetooth Mesh Provisioning Provisioning bearer layer Generic Provisioning PDU Bluetooth Mesh Pro ...

  2. Sql server在cmd下的使用

    方法一 在DOS提示符下,c:\>isql -U sa -P (此处输入SA密码) 注----大小写敏感 回车后会出现"1>"提示符,表明已成功,此时可在DOS下做任何 ...

  3. SpringBoot在IntelliJ IDEA下for MAC 热加载

    说在前面 热加载:文件内容变更服务器自动运行最新代码.实则在IDEA环境进行热部署后,下述过程一气呵成. 1代码变更,文件自动保存(IDEA自动保存代码,用户无需使用COMMAND+SAVE快捷键): ...

  4. 针对“来用”团队项目之NABC分析

    本项目特点之一:扩展性强 NABC分析: N(need):我们这个开发的这个软件主要是集娱乐软件和实用工具于一身的大容器,这里面有很多应用程序,针对不同用户需要,至少有一款应用程序能够满足用户的需要, ...

  5. 福大软工1816:Alpha(9/10)

    Alpha 冲刺 (9/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.完善通过父子进程调用wxp ...

  6. Tomcat服务器学习和使用(一)

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  7. Matlab 中的varargin/nargin varargout/nargout

    Varargin = var+ arg+ in = variable length(可变长) input argument(输入参数) list(列表) :允许调用该函数时根据需要改变输入参数的个数 ...

  8. Spring MVC之@RequestBody@ResponseBody详解

    引言: 接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody.@ResponseBody的具体用法和使用时机: 简介: @RequestBody 作 ...

  9. filter过滤器 默认情况下只对客户端发来的请求有过滤作用 对服务端的跳转不起作用 需要显示的在xml定义过滤的方式才行

    filter过滤器 默认情况下只对客户端发来的请求有过滤作用 对服务端的跳转不起作用 需要显示的在xml定义过滤的方式才行

  10. 动态include是通过servlet进行页面信息交互的

    动态include是通过servlet进行页面信息交互的