(1)浏览器解析

(2)查询缓存

(3)DNS查询

顺序如下,若其中一步成功直接进去建立连接部分:

-- 浏览器自身DNS

-- 操作系统DNS

-- 本地hosts文件

-- 像域名服务器发送请求

(4)建立连接

-- TCP三次握手(three-way handshaking)

-- 发送方: SYN(synchonize)

-- 接受方: SYN/ACK(acknowledgement), 确认信息传达

-- 发送方: ACK - 确认接受方再线可收消息,握手结束

Accept

-- 1, 发送端: 标有SYN的数据包发给你了

-- 2, 接收端: 明白了! 我收到你给我发的数据包了! (并发送标有SYN/ACK的数据包了)

-- 3, 明白! (发送标有ACK的数据包)

TCP三次握手的好处在于,发送方可以确认接受方仍然在线,不会因为白发送而浪费资源.

(5) 发送HTTP请求

-- 报文首部(GET/index.html HTTP/1.1)

-- 方法

-- URL

-- HTTP版本

-- 空行

-- 报文主体

注意: 1,HTTP是无连接, 无状态的,即HTTP再传输完成后就会断开,并且下一次登陆时不会记录上次的登陆状态

2,关于CR(Carriage Return, 回车)和LF(Line Feed, 换行)

Dos和Windows采用的CR/LF表示下一行
UNIX/Linux采用LF表示下一行
MAC OS系统采用CR表示下一行

(6)服务器发送响应

-- 报文首部(HTTP/1.1 200 ok)

-- HTTP版本

-- 响应状态码

-- 状态码信息

-- 空行(CR+LF)

-- 报文主体

(7)客户端收到页面

(8)解析HTML

-- 构建DOM树

-- 下载资源

-- CSS - 构建CSSSOM树

-- js - 等下载并执行后解析

(9)构建渲染树

根据DOM和CSSSOM树渲染,不可见元素不被会渲染

(10)浏览器布局渲染

-- 布局- 根据渲染书布局

-- 绘制 - 在屏幕上绘制每个点

输入一条url后,发生了什么??的更多相关文章

  1. 【转】浏览器中输入url后发生了什么

    原文地址:http://www.jianshu.com/p/c1dfc6caa520 在学习前端的过程中经常看到这样一个问题:当你在浏览器中输入url后发生了什么?下面是个人学习过程中的总结,供个人复 ...

  2. 天龙八步"细说浏览器输入URL后发生了什么

    本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...

  3. 【转】浏览器输入URL后发生了什么

    转自:http://www.cnblogs.com/webdeve/p/7865520.html本文摘要: 输入网址 当我们在浏览器输入网址并回车后,一切从这里开始. 一.DNS域名解析 我们在浏览器 ...

  4. “天龙八步”细说浏览器输入URL后发生了什么

    本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...

  5. 细说浏览器输入URL后发生了什么

    本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结   ...

  6. 在浏览器输入URL后发生了什么?

    摘录部分一:https://www.cnblogs.com/kongxy/p/4615226.html 从输入URL到浏览器显示页面发生了什么 当在浏览器地址栏输入网址,如:www.baidu.com ...

  7. 用户输入URL后发生了什么,以及优化问题

    用户角度:1.打开浏览器2.输入URL3.按下回车4.浏览器呈现画面 当用户输入页面地址后,浏览器获得用户希望访问的地址,便向该站点服务器发起一系列的请求,这些请求不光包括对页面的请求,还包括对页面中 ...

  8. 浏览器输入url后发生的事情以及每步可以做的优化

    首先总结下输入url按下回车后的大致流程: 查询url的ip地址. 建立tcp连接,连接服务器. 浏览器发起http/https请求. 服务器响应浏览器的请求. 网页的解析与渲染. 下面分析每个过程 ...

  9. 浏览器输入URL后发生了什么

    假如在浏览器中输入了www.cnblogs.com,然后回车 DNS解析 浏览器检查浏览器缓存是否有域名对应的IP. 浏览器查找操作系统是否有对应的DNS解析成果(hosts文件). 查找路由器缓存. ...

随机推荐

  1. 手把手教你怎么用ArcgisOnline发布地图服务

    Arcgis推出了Arcgis Online,但是大家都不知道这是个什么东西,怎么用这个东西,今天这篇文章手把手的教你如何使用Arcgisonline发布地图服务. 一.ArcgisOnline简介 ...

  2. Android 进阶14:源码解读 Android 消息机制( Message MessageQueue Handler Looper)

    不要心急,一点一点的进步才是最靠谱的. 读完本文你将了解: 前言 Message 如何获取一个消息 Messageobtain 消息的回收利用 MessageQueue MessageQueue 的属 ...

  3. Java程序员进阶路线-高级java程序员养成

    1. 引言 搞Java的弟兄们肯定都想要达到更高的境界,用更少的代码解决更多的问题,用更清晰的结构为可能的传承和维护做准备.想想当初自己摸着石头过河,也看过不少人介绍的学习路线,十多年走过来多少还是有 ...

  4. 旧书重温:0day2【8】狙击windows的异常处理实验

    现在进入0day2的第六章内容 其中第六章的书本内容我都拍成了图片格式放在了QQ空间中(博客园一张一传,太慢了)http://user.qzone.qq.com/252738331/photo/V10 ...

  5. SITP & Raspberry Pi

    系统安装 系统选择树莓派论坛提供的下载地址 Download 我选择了其中的SSH-2017-01-11-raspbian-jessie.zip[良心推荐] 选择一个大于8G的内存卡,利用 Win32 ...

  6. LINUX系统yum安装SVN服务及其配置

    待: http://oplinux.com/app/svn/linux-yum-install-svn.html  //基础设置及流程 http://files.cnblogs.com/logon/s ...

  7. HTML服务器控件与Web服务器控件

    asp.net之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括web服务器控件,web用户控件,web自定义控件,html服务器控件和html控件等.这里主要整理一下html控件.html服 ...

  8. 1.1对java web开发的一点理解

    前言 Q:通常行内人士见面会问你,你做哪方面开发的? A:java web开发的 那么,什么是java web开发? java web开发通常是指java web应用程序的开发.一个B/S架构的 we ...

  9. Vue脚手架搭建过程

    1.使用npm全局安装vue-cli(前提是你已经安装了nodejs,否则你连npm都用不了),在cmd中输入一下命令 npm install --global vue-cli 安装完成后,创建自己的 ...

  10. webpack新版本4.12应用九(配置文件之入口和上下文(entry and context))

    entry 对象是用于 webpack 查找启动并构建 bundle.其上下文是入口文件所处的目录的绝对路径的字符串. context string 基础目录,绝对路径,用于从配置中解析入口起点(en ...