当前位置: 首页 > news >正文

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

目录

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规则树 = 渲染树

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

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

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


断开连接

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

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


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

相关文章:

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

目录 DNS域名解析 检查hosts文件 查询缓存 查询本地DNS服务器 ​编辑查询根域名服务器等 三次握手建立连接 发送请求 响应请求 页面渲染 断开连接 这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在…...

华为OD机试真题Java实现【数字涂色】真题+解题思路+代码(20222023)

数字涂色 题目 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。…...

Log Structure Merge Tree

LSM是一种基于日志追加写的数据结构,非常适合为具有高写入数据提供索引访问 LSM基于以下前提 内存读写速度远高于磁盘,但内存有限磁盘顺序读写速度远高于随机读写 结构 WAL WAL(write-ahead log)是用于在系统错误时提供持久化,在写入数据…...

Python QT5设计UI界面教程

简介:PyQT5开发常用知识,零基础上手,需配合我之前写的博文,配置好QT设计工具和ui文件转py文件的工具。博文为:使用Python PyQt5实现一个简单的图像识别软件;页面效果如下: 1.设计菜单栏 Contai…...

uniapp系列-图文并茂手把手教你hbuilder进行uniapp云端打包 - 安心打包

什么是安心打包 提交App的模块配置信息到云端,在云端打包机生成原生代码包 为什么使用云打包 更安全:打包时不提交应用代码、证书等信息更快速:非首次打包时不用提交云端打包机排队等待,本地直接出包省流量:减少了打…...

【精品】SpringBoot中基于拦截器实现登录验证功能

拦截器简介 拦截器是属于springmvc体系的,只能拦截controller的请求。拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。 Interceptor 作用 日志记录:记录请求信息的日志&…...

哈工大服务科学与工程第一章作业

服务的概念服务是个非常广义的概念——涉及到经济、管理、业务、IT领域以下是一些各方对服务的定义:服务是一方向另一方提供的任意活动和好处。它是不可触知的,不形成任何所有权问题,其生产可能与物质产品有关,也可能无关。服务是…...

SpringMVC源码:参数解析、方法调用与返回值处理

参考资料: 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头:本文为个人学习笔记,内容比较随意,夹杂个人理解,如有错误,欢迎指正。 前文: 《SpringMVC源码&a…...

【MySQL】表的数据处理

哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据表中数据的基本处理的操作,数据表的增删改查,更多相关知识敬请期待:保护小周ღ *★,*:.☆( ̄▽ ̄)/$:*.★*一、 添加数据&a…...

反思当下所处的环境,有没有让你停滞不前、随波逐流

环境对人的影响真的很大,小时候的环境、长大后的环境、工作环境、生活环境、好的环境、差的环境......我们都生活在一定的环境中所以既是环境的产物,又是环境的创造者与改造者。我们与环境的关系是相辅相成的我们的生活和工作当中接触到的人或事或物&…...

小程序(十四)后端-签到成功

文章目录一、持久层1、CheckinMapper.xml2、CheckinMapper.java3、TbHolidaysDao.xml4、TbHolidaysDao.java5、TbWorkdayDao.xml6、TbWorkdayDao.java二、业务层1、 CheckinService.java三、conroller层1、编写 TbUserDao.xml 文件,查询员工的入职日期。2、编写 TbU…...

X264简介-Android使用(一)

X264 简介及使用 1、简介 2、环境搭建 3、使用 4、小结 简介 官网连接:https://www.videolan.org/developers/x264.html 官方文档:https://wiki.videolan.org/Category:X264/ x264是用于编码H.264/MPEG-4 AVC视频流的免费软件库。它世界上最流行的…...

DetectGPT:使用概率曲率的零样本机器生成文本检测

DetectGPT的目的是确定一段文本是否由特定的llm生成,例如GPT-3。为了对段落 x 进行分类,DetectGPT 首先使用通用的预训练模型(例如 T5)对段落 ~xi 生成较小的扰动。然后DetectGPT将原始样本x的对数概率与每个扰动样本~xi进行比较。…...

【深度学习】BERT变体—BERT-wwm

1.BERT-wwm 1-1 Whole Word Masking Whole Word Masking (wwm)是谷歌在2019年5月31日发布的一项BERT的升级版本,主要更改了原预训练阶段的训练样本生成策略。 原有基于WordPiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时&#xff…...

【华为OD机试真题 java、python、c++】优秀学员统计【2022 Q4 100分】(100%通过)

代码请进行一定修改后使用,本代码保证100%通过率。本文章提供java、python、c++三种代码 题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动,他们开展这项学习活动已经一个月了,所以想统计下这个月优秀的打卡员工。 每个员工会对应一个id,每天的打卡记录记录当…...

JavaScript里的循环方法:forEach,for-in,for-of

文章目录forEach循环for–in循环for-of循环for-of循环使用例子:循环一个数组(Array):循环一个字符串:循环一个类型化的数组(TypedArray):循环一个Map:循环一个 Set:循环一个 DOM collection循环一个拥有enumerable属性的对象循环一个生成器(g…...

汽车标定知识整理(二):CCP报文基本命令介绍

目录 一、基本命令 CRO命令报文的基本命令表: 二、基本命令与可选命令帧格式介绍 1、CONNECT——建立连接(0x01) 2、GET_CPP_VERSION——获取CCP版本(0x1B) 3、SET_MTA——设置内存传输地址(0x02&#…...

windows系统安装Linux虚拟机教程

虚拟机的安装首先要下载虚拟机的安装包,当前最新版本是VMware 16.2.1。软件我都已经给大家准备好了(含序列号),大家在这里下载就好。虚拟机安装包下载完毕之后,将它安装到电脑里。这个安装过程很简单,一路下…...

“基于Spring Cloud Alibaba的微服务架构实战:Nacos配置管理“

引言 Spring Cloud Alibaba 是 Spring Cloud 和 Alibaba 集团联合推出的开源微服务框架,旨在为 Java 开发者提供一种简单、易用、高效的微服务解决方案。Nacos 是一个面向云原生应用的动态服务发现、配置管理和服务管理平台,提供了服务注册与发现、配置管…...

【Linux】常见面试题

1. 查看文件内容 cat tail head less more 2. 几个查看文件内容的命令有什么区别 cat 文件名 # 将文件内的内容全部打印出来,cat 文件1 文件2 先将文件1全部法印,然后在打印文件2 more 文件名 # 分屏查看 less 文件名 # 上下分页查看 head 文件…...

Veil-Evasion项目演进与替代方案:从Veil-Evasion到Veil 3.0的迁移指南

Veil-Evasion项目演进与替代方案:从Veil-Evasion到Veil 3.0的迁移指南 【免费下载链接】Veil-Evasion Veil Evasion is no longer supported, use Veil 3.0! 项目地址: https://gitcode.com/gh_mirrors/ve/Veil-Evasion 🚨 重要通知:V…...

【Claude基础】08.子代理系统:分身术与并行执行

文章目录[toc]0\. 【Claude基础】全部目录1\. 子代理设计哲学1.1 单一上下文窗口的局限1.2 核心价值1.3 子代理 vs 多会话 vs 多实例2\. 内置代理详解2.1 general-purpose — 通用多步任务2.2 Explore — 快速只读代码库分析2.3 Plan — 研究型实施规划2.4 claude-code-guide —…...

如何高效下载30+文档平台资源:kill-doc文档下载工具完整指南

如何高效下载30文档平台资源:kill-doc文档下载工具完整指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是…...

Kubernetes自动化运维最佳实践

Kubernetes自动化运维最佳实践 引言 自动化运维是云原生环境中的重要能力,它可以提高运维效率、减少人为错误、确保系统稳定性。本文将深入探讨Kubernetes中的自动化运维策略和最佳实践。 一、自动化运维架构 1.1 自动化运维层次 ┌────────────────…...

Linux内核模块多文件编译:从Kbuild原理到工程实践

1. 项目概述:从单文件到多文件内核模块的进阶之路搞内核模块开发的朋友,估计都是从经典的“Hello World”单文件模块开始的。一个hello.c,配上几行简单的Makefile,insmod一下看到打印信息,成就感就来了。但当你真正想干…...

智芯MCU开发环境实战:从零搭建Keil与JLink生态

1. 环境准备:从零开始的智芯MCU开发之旅 第一次拿到智芯Z20K1x系列开发板时,我和大多数嵌入式开发者一样,迫不及待想点亮第一个LED。但现实往往比想象复杂——当我打开Keil准备大展拳脚时,发现芯片列表里根本找不到智芯的身影。这…...

UVM配置机制深度解析:从字符串匹配原理到验证平台实战

1. 项目概述:从“会用”到“懂它”的跨越在芯片验证的日常工作中,uvm_config_db就像空气和水一样,无处不在。我们用它传递虚拟接口,用它开关某个子系统的功能,用它动态调整测试场景的配置。绝大多数验证工程师都能熟练…...

SLCAN协议实战:从脚本编写到自动化测试全解析

1. SLCAN协议基础:嵌入式开发者的文本化CAN接口 第一次接触SLCAN协议时,我正为一个汽车电子项目头疼——需要快速验证CAN总线设备却找不到合适的调试工具。直到发现抽屉里吃灰的LAWICEL CANUSB适配器,这个基于SLCAN协议的小玩意彻底改变了我…...

终极Citra 3DS模拟器完整指南:在电脑上免费畅玩任天堂3DS游戏

终极Citra 3DS模拟器完整指南:在电脑上免费畅玩任天堂3DS游戏 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/GitHub_Trending/ci/citra 想要在电脑上重温《精灵宝可梦》系列、《塞尔达传说》等经典3DS游戏吗?Ci…...

桌面级机械臂DIY全攻略:从运动学建模到PID控制实战

1. 项目概述:一个桌面级机械臂的诞生最近在逛GitHub的时候,发现了一个挺有意思的项目,叫“ClawPuter”。光看名字,你可能会有点摸不着头脑,Claw是爪子,Puter是计算机,合起来是“爪式计算机”&am…...