福哥答案2020-07-02:

简单回答:

  1. 域名解析。
  2. 建立TCP连接。
  3. 请求。
  4. 处理。
  5. 响应。
  6. 释放TCP连接。
  7. 页面渲染。

中级回答:

  1. 域名解析
    1. 浏览器DNS缓存。
    1. 操作系统DNS缓存。
    1. 路由器缓存。
    1. ISP 服务商缓存。
    1. 根服务器递归查询。
  2. 建立TCP连接。三次握手。
  3. 请求。
    请求报文格式:
    1. 请求行。
      请求方式、url、版本,比如 POST index.html / HTTP/1.1。
    1. 请求头。
      键值对,比如Connection: Keep-Alive。
    1. 空行。
    1. 请求体。
  4. 4.1. 键值对,比如Pn=2&kw=nba。
  5. 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后按回车,会发生什么?的更多相关文章

  1. 笔试常考--浏览器输入一个URL点击回车之后发生了什么

    解析URL:浏览器首先对拿到的URL进行识别,抽取出域名字段. DNS解析: 查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间),如果没有找到, 检查系统缓存,检查hosts文件,这个文 ...

  2. 经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...

  3. 网易笔试题:浏览器中输入一个url后回车到返回页面信息的过程

    You enter a URL into the browser输入一个url地址 The browser looks up the IP address for the domain name浏览器 ...

  4. 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

    原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有 ...

  5. 【转】当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

    http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/panx ...

  6. 浏览器输入一个url到整个页面显示出来经历了哪些过程?

    https://cloud.tencent.com/developer/article/1396399 https://www.cnblogs.com/haonanZhang/p/6362233.ht ...

  7. 浏览器输入一个url的过程,以及加载完html文件和js文件的标志

    简单理解: 当在浏览器地址栏输入一url时,浏览器会做以下几个步骤: 1.将url转化为ip地址,也就是DNS解析,(先找本地host文件中是否有对应的ip地址,如果有就直接用,没有的话,就按域名的二 ...

  8. 在地址栏里输入一个 URL后,按下 Enter 到这个页面呈现出来,中间会发生什么?

    这是一个面试高频的问题 在输入 URL 后,首先需要找到这个 URL 域名的服务器 IP,为了寻找这个 IP,浏览器首先会寻找缓存,查看缓存中是否有记录,缓存的查找记录为:浏览器缓存 ->系统缓 ...

  9. 浏览器地址栏输入一个URL后回车,将会发生的事情

    浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP地址. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接 浏览器获取请求页面的html代码. 浏览器在显示窗 ...

随机推荐

  1. Ethical Hacking - Web Penetration Testing(10)

    SQL INJECTION SQLMAP Tool designed to exploit SQL injections. Works with many DB types, MySQL, MSSQL ...

  2. Linux好学吗?怎么自学Linux?6个值得你去学习Linux的理由!

    两个多月前,我对日常工作做出了一个非常重要的决定-我决定从Windows切换到Linux,将其作为个人和办公笔记本电脑的主要系统.除了开始时一些小的驱动程序问题之外,切换非常平稳,我不会考虑返回.如果 ...

  3. 面试时谈得很好,为什么就是拿不到offer?

    招聘行业有个共识,那就是如果没有给通知一般就是没有通过, 有的学员会问,为什么不打电话通知一下呢? 我猜测,有一方面的原因是怕尴尬,虽然你不觉得尴尬,但是难保有的应聘者会情绪激动,问东问西. 比如你告 ...

  4. Monster Audio 使用教程 (七) 防止声音过大,出现爆音

    有用户反映,如果音乐音量过大,会出现爆音. 这其实是音频信号过载了.只要最后输出的音量超过0db,就会出现爆音,这是数字音频都应该注意的问题. 所以,为了解决这个问题,限制器就出现了,它能把音频信号压 ...

  5. React Native 控制一个component的显示隐藏

      // 首先在constructor里:   this.state = { visible: false }   // 然后在点击事件设置:   this.setState({ visible: t ...

  6. Redis的持久化之RDB

    1.什么是Redis的持久化 Redis是一种高级key-value数据库,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,所以Redis的所有数据都 ...

  7. Django学习路20_流程复习

    视频链接 https://www.bilibili.com/video/BV1rx411X717?p=21 千锋教育出品的 Django 课程                     2020-05- ...

  8. Linux系统的基本操作

    20200727 Linux目录结构 基本介绍 Linux的文件系统是采用层级式的树状结构,在此结构中的最上层是/根目录 tip1:在Linux世界里,一切皆是文件 示例 /bin: bin是Bina ...

  9. KMP算法图解

    字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...

  10. PHP xpath() 函数

    定义和用法 xpath() 函数运行对 XML 文档的 XPath 查询.高佣联盟 www.cgewang.com 如果成功,该函数返回 SimpleXMLElements 对象的一个数组.如果失败, ...