当用户输入url地址时,大致发生以下几步:

  1. 输入网址,点击回车;
  2. 浏览器查找当前URL是否存在缓存,并比较缓存是否过期(包括浏览器缓存、系统缓存、路由器缓存);
  3. 发送到DNS服务器,并获取域名对应ip地址;
  4. 与web服务器建立TCP连接;
  5. 浏览器向服务器发送http请求;
  6. 服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);
  7. 浏览器下载服务器返回的数据及解析html源文件;
  8. 生成DOM树,解析css和js,渲染页面,直至显示完成;

解释:

HTTP请求报文是由三部分组成: 请求行请求报头请求正文

HTTP响应报文也是由三部分组成: 状态码响应报头响应报文

状态码

状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息–表示请求已接收,继续处理。

2xx:成功–表示请求已被成功接收、理解、接受。

3xx:重定向–要完成请求必须进行更进一步的操作。

4xx:客户端错误–请求有语法错误或请求无法实现。

5xx:服务器端错误–服务器未能实现合法的请求。
平时遇到比较常见的状态码有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500(分别表示什么请自行查找)。

200 请求已成功,请求所希望的响应头或数据体将随此响应返回。

301 被请求的资源已永久移动到新位置。

307 重新请求的URL,客户端自动重新请求新的地址。

400 语义有误,当前请求无法被服务器理解或者请求参数有误。

403 服务器已经理解请求,但是拒绝执行它。

404 服务器找不到给定的资源;文档不存在。

405 请求行中指定的请求方法不能被用于请求相应的资源。

从输入url到页面加载完成发生了什么相关推荐

  1. 输入url到页面加载都发生了什么事情?(一道软件测试面试题)

    文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试: ...

  2. 浏览器从输入url到页面加载完成发生了什么

    最近看了一些前端面试方面的一些题目,看了网上许多相关的文章,发现有一个问题始终绕不开: 在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么.仔细思考这个问题,发现确实很深,这个过程 ...

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

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

  4. 从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇

     转自从输入 URL 到页面加载完的过程中都发生了什么事情 -- 网络优化篇 想到这不就是我这两年来研究的东西么,于是就接受一下挑战.网上已经有很多版本的答案了.这道题可以从浏览器端,网络传输和服 ...

  5. 前端学习之浏览器从输入URL到页面加载的全过程

    浏览器从输入URL到页面加载的全过程 从输入URL到页面加载的主干流程如下: 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL的DNS缓存记录. 3.DNS解析URL对应的IP. 4 ...

  6. 从输入url到页面加载完成中间都发生了什么?

    从输入 URL 到页面加载完成的过程中都发生了什么事情? nwind | 24 May 2014 背景 本文来自于之前我发的一篇微博: 不过写这篇文章并不是为了帮大家准备面试,而是想借这道题来介绍计算 ...

  7. 从输入 URL 到页面加载完成中间都经历了什么

    摘要 目录 1.chrome浏览器资源加载时序分析 2.w3c提供的接口performance.timing分析 3.一个完整的URL 解析过程细分介绍 3.1.缓存相关 3.1.1.URL解析 3. ...

  8. 前端面试总结(2)--从输入URL到页面加载完成,都发生了什么

    目录 序言 从输入URL到页面加载完成,都发生了什么 1. 一个极其粗糙且简化的流程 2. 每个步骤都只是摘要 2.1 浏览器中输入URL 2.1.1 URL的概念 2.1.2 浏览器对URL的长度限 ...

  9. 从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识

    前言 上一章我们说到了数据包在网线中的故事,说到了双绞线,还说到了麻花.这一章继续沿着这条线路往下走,说一些和cdn以及路由器相关,运营商以及光纤相关的小知识,前端同学应该了解一下的 目录 前言 1. ...

最新文章

  1. 【uni-app】动态计算图片高度且保持宽高比
  2. 多线程之死锁就是这么简单
  3. 【每日Scrum】第三天(4.24) TD学生助手Sprint2站立会议
  4. loj2291. 「THUSC 2016」补退选
  5. Java基础Lambda表达式【四】
  6. 远程mysql_java.sql.SQLException: null, message from server: Host 'xxx' is not allowed to connect
  7. [转] Web前端开发工程师常用技术网站整理
  8. 什么是软件架构?常用的软件架构
  9. 加点字符就能让qq昵称很酷的神奇代码?
  10. javax.validation校验整理
  11. 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
  12. 好友克隆自助下单网站_可口可乐的成功可以这样复制!
  13. idea运行javaweb项目出现“该网页无法正常运作”
  14. 关于计算机未来理想,关于未来与梦想的作文
  15. 函数中使用sizeof(arr) / sizeof(arr[0])求数组长度不正确的原因
  16. 二分法求最大似然估计r语言_R语言中的最大似然估计
  17. 树选择排序(Tree Selection Sorting)介绍
  18. SQL必知必会 - 创建表的联结
  19. ThreeJS导入外部obj和mtl
  20. 重装系统后开机黑屏显示cannot load file怎么办

热门文章

  1. Java并发编程知识总结
  2. 2008生产实习 日程安排
  3. Bailian2912 三个完全平方数【进制+枚举】
  4. UVA299 UVALive5600 Train Swapping【逆序偶+暴力】
  5. 51Nod-1049 最大子段和【DP】
  6. NUC1090 Goldbach's Conjecture【哥德巴赫猜想 】
  7. CCF NOI1049 旋转图像
  8. CCF201312-1 出现次数最多的数(100分)
  9. vmware tools 的安装(Read-only file system 的解决)
  10. Matlab Tricks(二十六)—— 置乱(随机化)与恢复(shuffle/permutation restore)