2020-07-02:在浏览器输入一个url后按回车,会发生什么?
福哥答案2020-07-02:
简单回答:
- 域名解析。
 - 建立TCP连接。
 - 请求。
 - 处理。
 - 响应。
 - 释放TCP连接。
 - 页面渲染。
 
中级回答:
- 域名解析
 - 浏览器DNS缓存。
 
- 操作系统DNS缓存。
 
- 路由器缓存。
 
- ISP 服务商缓存。
 
- 根服务器递归查询。
 
- 建立TCP连接。三次握手。
 - 请求。
请求报文格式: - 请求行。
请求方式、url、版本,比如 POST index.html / HTTP/1.1。 
- 请求行。
 - 请求头。
键值对,比如Connection: Keep-Alive。 
- 请求头。
 - 空行。
 
- 请求体。
 
- 4.1. 键值对,比如Pn=2&kw=nba。
 - 4.2. 分隔符上传文件。
Content-Type:multipart/form-data;boundary=-----------------------------7db372eb000e2
和 
-------------------------------7db372eb000e2
Content-Disposition: form-data; name="file"; filename="kn.jpg"
Content-Type: image/jpeg
(此处省略jpeg文件二进制数据...)
4. 处理。
5. 响应。
响应报文格式:
5.1. 响应行。
版本、状态码、描述。比如 HTTP/1.1 200 OK。
5.2. 响应头。
键值对,比如 Content-Length: 122。
5.3. 空行。
5.4. 响应体。
6. 释放TCP连接。四次挥手。
7. 页面渲染。
7.1. 构建dom树。
7.2. 构建CSSOM 树。
7.3. 构建渲染树。
7.4. 布局计算。
7.5. 渲染呈现。
有那些网站优化的方法?
①减少DNS查询:将服务器域名的ip信息加入本地host文件。
②减少http请求数量,对于图片使用雪碧图,对于html文件和css文件,js文件分别进行合并操作。
③减少下载时间:压缩图片,使用压缩应用压缩文档中的空格,删除文件多余的语句和注释,创造自己的js精简库和精简框架,使用本地浏览器缓存。
④提前渲染开始时间:将css链接放在html头部。
⑤减轻解析器的阻塞:将js链接放在body尾部。
2020-07-02:在浏览器输入一个url后按回车,会发生什么?的更多相关文章
- 笔试常考--浏览器输入一个URL点击回车之后发生了什么
		
解析URL:浏览器首先对拿到的URL进行识别,抽取出域名字段. DNS解析: 查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间),如果没有找到, 检查系统缓存,检查hosts文件,这个文 ...
 - 经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么
		
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...
 - 网易笔试题:浏览器中输入一个url后回车到返回页面信息的过程
		
You enter a URL into the browser输入一个url地址 The browser looks up the IP address for the domain name浏览器 ...
 - 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
		
原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...
 - 【转】当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
		
http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/panx ...
 - 浏览器输入一个url到整个页面显示出来经历了哪些过程?
		
https://cloud.tencent.com/developer/article/1396399 https://www.cnblogs.com/haonanZhang/p/6362233.ht ...
 - 浏览器输入一个url的过程,以及加载完html文件和js文件的标志
		
简单理解: 当在浏览器地址栏输入一url时,浏览器会做以下几个步骤: 1.将url转化为ip地址,也就是DNS解析,(先找本地host文件中是否有对应的ip地址,如果有就直接用,没有的话,就按域名的二 ...
 - 在地址栏里输入一个 URL后,按下 Enter 到这个页面呈现出来,中间会发生什么?
		
这是一个面试高频的问题 在输入 URL 后,首先需要找到这个 URL 域名的服务器 IP,为了寻找这个 IP,浏览器首先会寻找缓存,查看缓存中是否有记录,缓存的查找记录为:浏览器缓存 ->系统缓 ...
 - 浏览器地址栏输入一个URL后回车,将会发生的事情
		
浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP地址. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接 浏览器获取请求页面的html代码. 浏览器在显示窗 ...
 
随机推荐
- Ethical Hacking - Web Penetration Testing(10)
			
SQL INJECTION SQLMAP Tool designed to exploit SQL injections. Works with many DB types, MySQL, MSSQL ...
 - Linux好学吗?怎么自学Linux?6个值得你去学习Linux的理由!
			
两个多月前,我对日常工作做出了一个非常重要的决定-我决定从Windows切换到Linux,将其作为个人和办公笔记本电脑的主要系统.除了开始时一些小的驱动程序问题之外,切换非常平稳,我不会考虑返回.如果 ...
 - 面试时谈得很好,为什么就是拿不到offer?
			
招聘行业有个共识,那就是如果没有给通知一般就是没有通过, 有的学员会问,为什么不打电话通知一下呢? 我猜测,有一方面的原因是怕尴尬,虽然你不觉得尴尬,但是难保有的应聘者会情绪激动,问东问西. 比如你告 ...
 - Monster Audio 使用教程 (七) 防止声音过大,出现爆音
			
有用户反映,如果音乐音量过大,会出现爆音. 这其实是音频信号过载了.只要最后输出的音量超过0db,就会出现爆音,这是数字音频都应该注意的问题. 所以,为了解决这个问题,限制器就出现了,它能把音频信号压 ...
 - React Native 控制一个component的显示隐藏
			
// 首先在constructor里: this.state = { visible: false } // 然后在点击事件设置: this.setState({ visible: t ...
 - Redis的持久化之RDB
			
1.什么是Redis的持久化 Redis是一种高级key-value数据库,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,所以Redis的所有数据都 ...
 - Django学习路20_流程复习
			
视频链接 https://www.bilibili.com/video/BV1rx411X717?p=21 千锋教育出品的 Django 课程 2020-05- ...
 - Linux系统的基本操作
			
20200727 Linux目录结构 基本介绍 Linux的文件系统是采用层级式的树状结构,在此结构中的最上层是/根目录 tip1:在Linux世界里,一切皆是文件 示例 /bin: bin是Bina ...
 - KMP算法图解
			
字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...
 - PHP xpath() 函数
			
定义和用法 xpath() 函数运行对 XML 文档的 XPath 查询.高佣联盟 www.cgewang.com 如果成功,该函数返回 SimpleXMLElements 对象的一个数组.如果失败, ...