【JavaWeb】从输入URL到展示出页面的过程

news2024/11/27 10:55:10

目录

DNS域名解析

检查hosts文件

查询缓存

查询本地DNS服务器

​编辑查询根域名服务器等

三次握手建立连接

发送请求

响应请求

页面渲染

断开连接


这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在自己家中展示出来。最后和他互道再见。

下面将详细介绍其中的过程。


DNS域名解析

URL 是“统一资源定位符”(Uniform Resource Locator)的首字母缩写,中文译为“网址”,表示各种资源的互联网地址。

有关DNS协议可以参考这篇文章http://t.csdn.cn/qow4V

检查hosts文件

浏览器先检查本地的hosts文件中是否有域名和IP映射的关系,如果有就直接完成域名解析,不用进行后面的查IP的工作。

查询缓存

如果hosts文件中没有,就先查缓存中有没有IP。过程大致如下: 

查询本地DNS服务器

查询根域名服务器等

完整如下图:

以上过程拿到了域名的IP,此时就可以继续下一步。


三次握手建立连接

http://t.csdn.cn/uQcaG

上面这篇文章中的TCP的连接管理中介绍了三次握手。把文章中的客户端换成浏览器即可。


发送请求

浏览器把请求打包成HTTP请求发送给服务器。

响应请求

服务器把发送过来的请求处理之后,把结果打包成HTTP报文返回给浏览器。

这上面的HTTP报文遵守的HTTP协议将会在下一篇文章中详细介绍。


页面渲染

浏览器拿到服务器返回的报文后就开始处理加工了。

处理HTML标签,构造成DOM树。

根据CSS解析生成CSS规则树。

DOM树 + CSS规则树 = 渲染树

重排:根据渲染树计算每个结点的几何信息

重绘:将每个结点绘制到屏幕上

回流:若哪个结点发生了变化,则重新生成渲染树重复上述步骤


断开连接

如果没有其他的操作,此时浏览器就会和服务器通过四次挥手来断开连接。

上面文章中三次挥手的下面就是四次挥手。


有什么错误评论区指出。希望可以帮到你。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

33- PyTorch实现分类和线性回归 (PyTorch系列) (深度学习)

知识要点 pytorch最常见的创建模型的方式, 子类 读取数据: data pd.read_csv(./dataset/credit-a.csv, headerNone) 数据转换为tensor: X torch.from_numpy(X.values).type(torch.FloatTensor) 创建简单模型: from torch import nn model nn.Sequential(nn.Linear(15, 1…

Dockerfile简单使用入门

什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。 例如&#xff1…

亚马逊电动水泵UL778测试报告

电动水泵UL778如何办理? 近期亚马逊在3C品类吹的风可够大的,严查起UL测试报告了。许多卖家反映收到相关邮件通知,产品也由于在规定时间内无法提供UL测试报告,出现被暂停销售、listing被下架等问题。 从亚马逊此次的动作来看&…

深度学习卷积神经网络CNN之 VGGNet模型主vgg16和vgg19网络模型详解说明(理论篇)

1.VGG背景 2. VGGNet模型结构 3. 特点(创新、优缺点及新知识点) 一、VGG背景 VGGNet是2014年ILSVRC(ImageNet Large Scale Visual Recognition Challenge大规模视觉识别挑战赛)竞赛的第二名,解决ImageNet中的1000类图…

Padloc:一个直观的开源密码管理器

让我们了解一下这个具有令人愉悦的用户界面、跨平台可用的开源密码管理器。有大量适用于个人和团队的免费的和收费的密码管理器。然而,当谈到开源方案时,它通常仅限于几个好的方案,如 Seahorse、KeePassXC 和 Bitwarden。如果你已阅读过我们的…

【浅学Java】InnoDB存储引擎下MVCC(多版本并发控制 )

TOC 1. MVCC是什么 MVCC是面试中比较常见的一个问题,那么什么是MVCC机制,它的作用是什么? 它的英文全称是 Multi-Version Concurrency Control ,也就是“多版本并发控制”的意思。在MySQL InnoDB存储引擎下,RC、RR就…

DBeaver 超级详细的安装与使用

一、下载DBeaver DBeaver是一种通用数据库管理工具,适用于需要以专业方式使用数据的每个人;适用于开发人员,数据库管理员,分析师和所有需要使用数据库的人员的免费(DBeaver Community) 的多平台数据库工具。 DBeaver支持80多个数据…

Redis学习(四):三种特殊类型及常用操作

geospatial (地理位置) 查询经纬度网站 添加位置GEOADD 两极无法直接添加,我们一般会下载城市数据,通过java程序导入 可以看到这个命令也支持一次性添加多个。 获取位置GEOPOS 获取两点之间距离 GEODIST 默认单位是m&#xff0c…

MySQL面试题-锁相关

目录 1.MySQL 锁的类型有哪些呢? 2.如何使用全局锁 3.如果要全库只读,为什么不使用set global readonlytrue的方式? 4.表级锁和行级锁有什么区别? 5.行级锁的使用有什么注意事项? 6.InnoDB 有哪几类行锁&#xff…

上海亚商投顾:沪指震荡调整 酒店等消费股逆势活跃

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪沪指今日震荡盘整,创业板指V型反弹,上证50跌超1%,保险、银行、券商等金融股下挫。…

Peppol的发展史和基本框架

Peppol(Pan-European Public Procurement Online)是欧洲区域内的一个跨境公共采购电子商务平台试点项目,由欧盟委员会和Peppol联盟成员国共同资助建立,旨在通过制定标准化框架,推动欧盟成员国在公共采购相关的电子目录…

如何优化棋牌游戏服务器网络带宽

随着在线棋牌游戏的普及,如何提升游戏服务器的性能成为了一个重要的话题。高性能的独立服务器可以保证游戏的稳定性和流畅度,提高玩家的游戏体验,从而带来更多的收益。其中,优化网络带宽是保证棋牌游戏服务器稳定性和流畅度的关键…

给大家介绍几个数据分析,数据可视化的网站合集

对于初学者和进阶者准备了10让人眼前一亮的网站,可以说是很全了,建议收藏~ 一、数据来源 1、艾瑞数据 http://index.iresearch.com.cn/ 该网站免费公开的部分可以提供一些简单的APP使用数据以及人群、区域等分析。 2、CNNIC中国互联网络信息中心 http…

了解RET的开关特性

了解RET的开关特性 可通过基极电流开启或关闭双极结型晶体管(BJT)。但是,由于基极-发射极二极管两端的压降在很大程度上取决于温度,因而在许多应用中,需要一个串联电阻将基极电流保持在所需水平,从而确保BJT稳定安全地工作。阅读…

叠氮试剂943858-70-6,Azidobutyric acid NHS ester,叠氮-C3-活性酯

1、试剂基团反应特点(Reagent group reaction characteristics):Azidobutyric acid NHS ester具有叠氮化物和NHS酯端基。西安凯新生物科技有限公司供应的叠氮化物可以与炔烃、DBCO和BCN进行铜催化的点击化学反应。NHS酯可以与胺基反应&#x…

redis zset

zadd stu:1 100 math 99 english 98 history : 添加stu:1 科目 分数zrange user_rank 0 -1 withscores : 从小到大遍历zrevrange user_rank 0 -1 withscores : 从大到小遍历zremrangebyscore user_rank 0 50 : 删除分数 0 到 50 的zremrangebyrank user_rank 0 1: 删除 0 到1 名…

开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾

作者:孙健波、曾庆国 点击查看:「开源人说」第五期《KubeVela:一场向应用交付标准的冲锋》 2023 年 2 月,**KubeVela [ 1] ** 经过全体 ToC 投票成功进入 CNCF Incubation,是云原生领域首个晋级孵化的面向应用的交付…

35岁测试人该何去何从?10年工作经验的我,只不过是一年的工作经验用了10年......

如果到了这个年龄,还是初级测试,或者只会一些简单的自动化测试,那么真的是不好干了。 35的年龄,企业对员工是有另一层面的考量。 简单来说,就是年龄上去了,能力也要上去,要么是技术专家&#…

复习 Kotlin 从小白到大牛 第二版 笔记要点

4.2.2 常量和只读变量 常量和只读变量一旦初始化就不能再被修改。在kotlin中,声明常量是在标识符的前面加上val或const val 关键字。 1. val 声明的是运行时变量,在运行时进行初始化 2.const val 声明的是编译时常量,在编译时初始化 val …

【springmvc】10.拦截器

拦截器 1、拦截器的配置 SpringMVC中的拦截器用于拦截控制器方法的执行 SpringMVC中的拦截器需要实现HandlerInterceptor Component public class FirstInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, …