从浏览器地址栏输入url到页面呈现

举个栗子,从浏览器地址栏输入https://www.baidu.com 到页面呈现百度页面呈现

1.从DNS中得到链接ip地址

  ①从浏览器DNS缓存

  ②从系统DNS缓存中去,本机系统hosts文件中如果有映射,就返回映射的ip地址

  ③从局域网路由器中DNS缓存获取映射地址

  ④从DNS服务器缓存获取映射地址

  ⑤服务器中查找,com->baidu->www

2.TCP连接,三次握手

  ①浏览器发起,询问服务器是否支持响应

  ②服务器发起,回复浏览器已准备,可以响应,正在等待

  ③浏览器接收到后,发起确认ok信号,告诉服务器,浏览器准备发送数据

3.数据请求(http请求)阶段

  浏览器:请求行、请求头、请求体

  服务器:响应行、响应头、响应体

4.浏览器处理页面响应阶段

  解析按浏览器内置的各自解析器遵循ast(抽象语法树)规则进行解析

  ①html先加载,由浏览器html解析器解析,生成dom树

  ②遇到style或link样式,由css解析器解析,生成cssom树

  ③script标签,由js引擎解析并执行js逻辑

  ④dom树和cssom树结合生成渲染树

  ⑤如果js逻辑有修改dom或者css,则dom树和cssom树变化重新合成渲染树

  ⑥浏览器根据渲染树计算布局和各自节点的几何信息,然后绘制到屏幕

5.断开连接,TCP四次挥手

  ①浏览器发起,告诉服务器,请求的内容发送完,关闭发请求,准备结束

  ②服务器发起,告诉浏览器,请求的内容我接收完,关闭接收请求。

  ③服务器发起,告诉浏览器,响应的内容发送完,响应要关闭结束

  ④浏览器发起,告诉服务器,响应的内容也接收完了,关闭接收响应。

原文地址:https://www.cnblogs.com/fengnovo/p/10111367.html

时间: 2024-10-12 06:44:09

从浏览器地址栏输入url到页面呈现的相关文章

浏览器从输入url到页面呈现发生了什么?

当浏览器地址栏中输入www.baidu.com到页面呈现的具体过程: 1.域名解析(DNS解析)(网络层) 先从缓存中找域名对应的ip地址,没有再向域名服务器发送请求. -->浏览器的DNS缓存(以Chrome浏览器为例查看dns缓存,在地址栏中输入chrome://net-internals/#dns 查看浏览器内的dns缓存.) -->操作系统的DNS缓存(window系统调出cmd窗口,在窗口处输入命令ipconfig /displaydns 来进行查看系统内的dns缓存.) -->

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1

背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下.如果这道题目如果在面试出现,对我来说就是送分题啊.尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下. 这让我想起另外一件往事,这道题有点类似于“在手机上浏览器上输入一个URL,手机做了一些什么”,我当时学习通信里的核心网时就给自己提出过这个问题. 我非常愿

从浏览器地址栏输入URL到浏览器呈现数据全过程解析

一.输入设备(或粘贴)输入 URL,按下 Enter键 或其他按钮开始请求. 二.浏览器开始解析 URL 关于 URL 到相关知识点:什么是URI,URL以及URN,你真的理解了吗. 1.URL 是否合法 2.URL 中的字符转换 3.HSTS列表 协议升级.相关文章 HSTS详解.在现代浏览器中,这一步有可能导致请求中止. 三.检查本地缓存,根据缓存情况决定下一步的动作 1. 强缓存(Cache-Control 和 Expires)   直接从本地缓存读取资源(若是这步,便没有下面的步骤) 2

浏览器从输入URL到页面加载显示完成全过程解析

一 浏览器查找域名对应的 IP 地址(域名解析的过程,先进行缓存的查看): 1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 2.如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析. 3.如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服

从输入URL到页面呈现经历了哪些?DOM文档加载的步骤?

DNS解析 建立TCP连接 发送http请求 服务器接受请求并返回信息 浏览器处理返回信息 渲染页面 断开链接 DOM解析过程: 解析HTML结构. 加载外部脚本和样式表文件. 解析并执行脚本代码. DOM树构建完成.//DOMContentLoaded 对应jq的ready事件. 加载图片等外部文件. 页面加载完毕.//load 对应jq的load事件. 原文地址:https://www.cnblogs.com/fourthCities/p/8316239.html

从输入url到页面呈现的过程

1.域名解析 a. 先从本地hosts文件中解析域名对应的IP b. 若上步中没有,则从远程DNS服务器解析IP地址(过程也是先从本地DNS缓存,没有则从其他DNS服务器递归或迭代的获取IP地址) 2.得到IP地址,向服务器发送HTTP请求 浏览器以一个随机端口向服务器的80端口发起TCP连接,连接建立后,发起HTTP请求. TCP连接的建立和关闭分别经过三次握手和四次挥手的过程. 3.服务若重定向,则重新向重定向地址发送HTTP请求 4.服务处理请求 5.服务器返回HTTP响应 6.浏览器显示

iw14.0.50来了,终于可以直接在地址栏输入url打开iw功能页面了;可以自由使用EasyUI等js框架了;显示模式对话框也不再七绕八绕惹人烦了;

示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. iw14.0.50来了,在新的版本中最吸引我的就是增加了完善的httphandler功能:终于可以直接在地址栏输入url打开iw功能页面了:可以自由使用EasyUI等js框架了:显示模式对话框也不再七绕八绕惹人烦了:呵呵,我感觉iw第一次接近主流web开发工具了! 兴奋过了,来尝试一下吧.其实iw的坑还是挺多的,虽然已经接近主流了,但

前后端分离, 前端如何防止直接输入URL进入页面?

转自:https://blog.csdn.net/weixin_41829196/article/details/80444870 前后端分离,如何防止用户直接在地址栏输入url进入页面,也就是判断用户是否登录,没有,则直接跳转到登录页,后台可以用session记录用户登陆的状态,疑问的是前端每次ajax请求,都要做状态判断么,没登录就location.href="login.html",还是有什么别的写法?请教大神,重点想知道前端是如何写的,求demo, 另外就是单页面应用上,前端又

从输入URL到页面加载发生了什么

从输入URL到页面加载发生了什么 转自: https://segmentfault.com/a/1190000006879700 作者写得很不错,作者忽略了的,我加了上去,完善了一些,如get与post的区别等 总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 1.DNS解析 DNS解析的过程就是寻找哪台机器上有你需要资源的过程.当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正意