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. simhash和minhash实现理解

    文本相似度算法 minhash minhash 1. 把文档A分词形成分词向量L 2. 使用K个hash函数,然后每个hash将L里面的分词分别进行hash,然后得到K个被hash过的集合 3. 分别 ...

  2. windows远程连接失败问题排查思路

    一般情况下,对WIN7的远程连接只需要5步即可完成远程连接的设置: 1).用户是否设置了密码 2).计算机属性-允许远程登录 3).设置计算机永不睡眠 4).关闭防火墙或者设置入站规则 5).排查Re ...

  3. 使用 letter-space 后文字不能居中解决

    letter-space:2em; text-align: center; 使用letter-space后和上面的字体对比明显没有居中: 选定元素后发现,每个字后面都被加了2em,不是不能居中而是因为 ...

  4. LintCode-56.两数之和

    两数之和 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 1 到 n, ...

  5. iOS- Swift实现UITableView的常见操作

    1.前言   Swift在这就不多介绍了,想必大家都已皆知. 离Swift面世也过了有一个多月的时间. 在闲暇时间我用Swift实现了UITableView的一些常见操作. 基本都是可以用上的,今天在 ...

  6. 初学LINUX版本的选择

    1.用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择!毕竟企业的环境强调的是永续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理吧! ...

  7. java数据结构-HashMap

    一直以来似乎都有一个错觉,认为map跟其他的集合类一样继承自Collection,其实不然,Map和Collection在结构层次上是没有任何关系的,通过查看源码可以发现map所有操作都是基于key- ...

  8. git & configs

    git & configs https://alvinalexander.com/git/git-show-change-username-email-address https://stac ...

  9. Go语言【第十四篇】:Go语言基础总结

    Go语言类型转换 类型转换用于将一种数据类型的变量转换为另外一种类型的变量,Go语言类型转换基本格式如下: type_name(expression) type_name为类型,expression为 ...

  10. Andorid API Package ---> android

    包名: android                                                        Added in API level 1  URL:http:// ...