第一章 深入web请求过程
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请求过程的更多相关文章
- 第一章 深入Web请求过程(待续)
B/S网络架构概述 如何发起一个请求 HTTP解析 DNS域名解析 CDN工作机制
- 《深入分析Java Web技术内幕》读书笔记 - 第1章 深入Web请求过程
第1章 深入Web请求过程 1 1.1 B/S网络架构概述 2 基于统一的应用层协议HTTP来交互数据. 1.2 如何发起一个请求 4 HTTP连接本质是建立Socket连接.请求实现方式:工具包如H ...
- 第一章 了解Web及网络基础
第一章 了解Web及网络基础 Web建立基础.HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地 ...
- 第一章 创建WEB项目
第一章 创建WEB项目 一.Eclipse创建WEB项目 方法/步骤1 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>&g ...
- Http协议简单解析及web请求过程
HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤: 1) ...
- Web请求过程总结
Web请求过程总结 1.CND架构图 图片来源:深入分析JavaWeb技术内幕(许令波著) 2.发起HTTP请求 发起一个HTTP请求就是浏览器建立socket通信的过程,HttpClient开源的通 ...
- 爬取百度页面代码写入到文件+web请求过程解析
一.爬取百度页面代码写入到文件 代码示例: from urllib.request import urlopen #导入urlopen包 url="http://www.baidu.com& ...
- web请求过程-学习使人快乐1
智齿离开我10个小时了,现在除了书啥都不能啃········呜呜呜~ ~~~~~~~~~~~~~~~~~~~想滑滑梯~~~~~~~~~~~~~~~~~~~ 网络请求过程 web请求大多使用B/ ...
- 1 深入Web请求过程
1.1 B/S网络架构概述 B/S 网络架构从前端到后端都得到了简化,都基于统一的应用层协议HTTP来交互数据,与大多数传统C/S互联网应用程 序采用的长连接的交互模式不同,HTTP采用无状态的短连接 ...
随机推荐
- 索引值迭代-enumerate
你想在迭代一个序列的同时跟踪正在被处理的元素索引?内置的enumerate() 函数可以很好的解决这个问题: list_c = ['a', 'b', 'c'] for i, c in enumerat ...
- 硬件电路中VCC,VDD,VEE,VSS有什么区别
电路中GND和GROUND.VCC,VDD,VEE,VSS有什么区别 一.解释 DCpower一般是指带实际电压的源,其他的都是标号(在有些仿真软件中默认的把标号和源相连的)VDD:电源电压(单极器件 ...
- Scrum1
Scrum1 组员 任务分工 贡献 林泽宇 团队分工.撰写博客.修改完善需求规格说明书.整理代码规范 李涵 后端架构设计 尹海川 logo设计修改.数据库数据 郏敏杰 课堂展示.查阅资料.整理关键和难 ...
- ACM hust 2.1
来自咸鱼王的呻吟 http://www.xiami.com/song/3599639?spm=a1z1s.3521865.23309997.1.PbLu7E 配合咸鱼食用效果更佳(右键新窗口打开) 题 ...
- iOS APP中第三方APP调用自己的APP,打开文件
根据需求需要在项目中要打开word.pdf.excel等文件,在info.plist文件中添加 <key>CFBundleDocumentTypes</key> <arr ...
- GPS定位,根据经纬度查询附近地点的经纬度-sql方法实现
根据当前所在的坐标点也即经纬度,查找数据库中附近5公里或10公里附近的所有信息的实现,经过查找资料,原来是我高二学的,就是求弦长,数学忘完了,没想到数学还这么有用,数学啊 真是用途太大了. 用到的什么 ...
- 基于c++和opencv底层的图像旋转
图像旋转:本质上是对旋转后的图片中的每个像素计算在原图的位置. 在opencv包里有自带的旋转函数,当你知道倾斜角度theta时: 用getRotationMatrix2D可得2X3的旋转变换矩阵 M ...
- 基于c++的ostu算法的实现
图像二值化算法是图像处理的基础.一般来说,二值化算法可以分为两个类别:全局二值化和局部二值化.全局二值化是指通过某种算法找到一个全局的阈值T,对图像中坐标为(x,y)的像素值做如下处理: Ostu就是 ...
- C# 中常用的索引器
使用 C# 中的索引器和 JavaScript 中访问对象的属性是很相似. 之前了解过索引器,当时还把索引器和属性给记混了, 以为索引器就是属性,下面写下索引器和属性的区别,以及怎么使用索引器 先说明 ...
- vue 开发多页应用
vue 开发多页应用 https://www.cnblogs.com/fengyuqing/p/vue_cli_webpack.html https://segmentfault.com/a/1190 ...