计算机网络之在浏览器输入“www.xxx.com”后都发生了什么?
文章目录
- 1.DNS域名解析
- 2.建立TCP连接
- 3.发送HTTP请求
- 4.接受响应结果
- 5.浏览器解析html
- 6.浏览器布局渲染
这张图非常好,大家可以保存下来,以便快速回顾
1.DNS域名解析
- 在浏览器DNS缓存中搜索
- 在操作系统DNS缓存中搜索
- 读取系统hosts文件,查找其中是否有对应的ip
- 向本地配置的首选DNS服务器发起域名解析请求
2.建立TCP连接
为了准确地传输数据,TCP协议采用了三次握手策略。发送端首先发送一个SYN(synchronize)标志的数据包给接收方,接收方收到后,回传一个带有SYN/ACK(acknowledegment)标志的数据包以示传达确认信息。最后发送方再回传一个带ACK标志的数据包,代表握手结束。在这过程中若出现问题中断,TCP会再次发送相同的数据包。
TCP是一个端到端的可靠的面向连接的协议,所以HTTP基于传输层TCP协议不用担心数据的传输的各种问题。
3.发送HTTP请求
请求方法:
- GET:获取资源
- POST:传输实体主题
- HEAD:获取报文首部
- PUT:传输文件
- DELETE:删除文件
- OPTIONS:询问支持的方法
- TRACE:追踪路径
4.接受响应结果
服务器返回的状态码:
- 1**:信息性状态码
- 2**:成功状态码
200:OK 请求正常处理
204:No Content请求处理成功,但没有资源可返回
206:Partial Content对资源的某一部分的请求 - 3**:重定向状态码
301:Moved Permanently 永久重定向
302:Found 临时性重定向
304:Not Modified 缓存中读取 - 4**:客户端错误状态码
400:Bad Request 请求报文中存在语法错误
401:Unauthorized需要有通过Http认证的认证信息
403:Forbidden访问被拒绝
404:Not Found无法找到请求资源 - 5**:服务器错误状态码
500:Internal Server Error 服务器端在执行时发生错误
503:Service Unavailable 服务器处于超负载或者正在进行停机维护
5.浏览器解析html
浏览器按顺序解析html文件,构建DOM树,在解析到外部的css和js文件时,向服务器发起请求下载资源,若是下载css文件,则解析器会在下载的同时继续解析后面的html来构建DOM树,则在下载js文件和执行它时,解析器会停止对html的解析。这便出现了js阻塞问题。
浏览器解析css,形成CSSOM树,当DOM树构建完成后,浏览器引擎通过DOM树和CSSOM树构造出渲染树。渲染树中包含可视节点的样式信息(不可见节点将不会被添加到渲染树中,如:head元素和display值为none的元素)
这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render树。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容。
6.浏览器布局渲染
- 布局:通过计算得到每个渲染对象在可视区域中的具体位置信息(大小和位置),这是一个递归的过程。
- 绘制:将计算好的每个像素点信息绘制在屏幕上
计算机网络之在浏览器输入“www.xxx.com”后都发生了什么?相关推荐
- 在浏览器中输入URL并回车后都发生了什么?
1.解析URL ________________________________________________________________________ 关于URL: URL(Universa ...
- 浏览器输入域名网址访问后的过程详解
我们从系统网络的角度分析在浏览器输入域名网址访问后的过程: 1.以富贵论坛为例,客户端浏览器通过DNS解析到https://www.fgba.net/,IP地址是202.108.22.5,通过这个IP ...
- 如何解决每次输入push origin master后都需要我们再输入一次GitHub的密码
由于每次输入push origin master都需要我们再输入一次GitHub的密码很麻烦,可以进行命令如下进行保存: 方式一:设置记住密码(默认15分钟) git config --global ...
- 【计算机网络漫游】浏览器输入一个URL后发生了什么
浏览器输入一个URL之后发生了什么?这个问题一直是一个非常经典的问题,透过这个问题,我们可以从数据包的角度,自顶向下 (也可以自底向上) 地理解计算机网络各层发生的事情,同时也是一个面试的热点问题.但 ...
- 浏览器输入一个URL地址后发生的事情
在浏览器中输入一个URL至页面呈现,发生的事情? 1.域名解析:浏览器获得URL地址,向操作系统请求该URL对应的IP地址,操作系统查询DNS(首先查询本地HOST文件,没有则查询网络)获得对应的IP ...
- 当你在浏览器输入www.xxx.com的时候会发生什么?
最近记录了一些java中常踩的坑.设计思路和小知识点,大家可以看看 详细记录一次接入xxl-job的踩坑路径 30s快速解决循环依赖 idea中一个小小的操作竟能解决如此多的问题 docker中的服务 ...
- 详细介绍一下浏览器输入www.baidu.com后会发生什么
(1) 客户端浏览器通过DNS解析到www.baidu.com的IP地址,通过这个IP地址找到客户端到服务器的路径.客户端浏览器发起一个HTTP会话到IP地址,然后通过tcp进行封装数据包,输入 ...
- 浏览器输入www.baidu.com之后,发生了什么?
1.将域名www.baidu.com解析为IP地址: 解析IP地址的过程依次经过了:浏览器缓存.系统缓存.hosts文件.路由器缓存.递归搜索根域名服务器. 浏览器缓存: 每个浏览器都会有一个DNS缓 ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之计网_Part_2(在浏览器中输入www.baidu.com后执行的全部过程、DNS的域名<->IP地址、OS协议栈的样子、CDN)整起
可以说计算机网络,就是玩那几层中的那些协议们,本层玩,本层玩完了跨层玩,跨层玩,跨层玩完了本层玩- PART1:在浏览器中输入网站网址后执行的全部过程? 0.服务器在 80 端口等待客户的请求. se ...
最新文章
- sqlserver中计算某个特殊字符在字符串中出现的位置
- Spring boot的Webjars
- myeclipse + maven项目创建
- Graphic Device
- 通过javaMail API 发送邮件
- [Leetcode]147. Insertion Sort List
- elf section类型_在 498 行极小 OS 上跑标准 ELF 程序
- Python学习 Part6:错误和异常
- [Django]SE项目回忆录(二)-注册/登录功能的实现及细节
- 查看zookeeper版本
- 【51nod - 1050】循环数组最大子段和(dp)
- ASP.NET jQuery 食谱15 (通过控件CustomValidator验证CheckBoxList)
- Parrot 发布新版本——基于Debian的Linux 发行版
- IK Analyzer 和 lucene结合使用
- 肇庆学院计算机类宿舍哪里,肇庆学院宿舍怎么样 住宿条件好不好
- 金山WPS c++ 二面面经
- Compose 实现下拉刷新和上拉加载
- Jumping NLP Curves: A review of NLP research (翻译)
- Windows Mobil中解决日期显示不正常的方法
- 设计一款理财产品并发布推广