从输入url到页面加载完成发生了什么
当用户输入url地址时,大致发生以下几步:
- 输入网址,点击回车;
- 浏览器查找当前URL是否存在缓存,并比较缓存是否过期(包括浏览器缓存、系统缓存、路由器缓存);
- 发送到DNS服务器,并获取域名对应ip地址;
- 与web服务器建立TCP连接;
- 浏览器向服务器发送http请求;
- 服务器响应请求,并返回指定url的数据(或错误信息,或重定向的新的url地址);
- 浏览器下载服务器返回的数据及解析html源文件;
- 生成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到页面加载完成发生了什么相关推荐
- 输入url到页面加载都发生了什么事情?(一道软件测试面试题)
文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试: ...
- 浏览器从输入url到页面加载完成发生了什么
最近看了一些前端面试方面的一些题目,看了网上许多相关的文章,发现有一个问题始终绕不开: 在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么.仔细思考这个问题,发现确实很深,这个过程 ...
- 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3
备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...
- 从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇
转自从输入 URL 到页面加载完的过程中都发生了什么事情 -- 网络优化篇 想到这不就是我这两年来研究的东西么,于是就接受一下挑战.网上已经有很多版本的答案了.这道题可以从浏览器端,网络传输和服 ...
- 前端学习之浏览器从输入URL到页面加载的全过程
浏览器从输入URL到页面加载的全过程 从输入URL到页面加载的主干流程如下: 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL的DNS缓存记录. 3.DNS解析URL对应的IP. 4 ...
- 从输入url到页面加载完成中间都发生了什么?
从输入 URL 到页面加载完成的过程中都发生了什么事情? nwind | 24 May 2014 背景 本文来自于之前我发的一篇微博: 不过写这篇文章并不是为了帮大家准备面试,而是想借这道题来介绍计算 ...
- 从输入 URL 到页面加载完成中间都经历了什么
摘要 目录 1.chrome浏览器资源加载时序分析 2.w3c提供的接口performance.timing分析 3.一个完整的URL 解析过程细分介绍 3.1.缓存相关 3.1.1.URL解析 3. ...
- 前端面试总结(2)--从输入URL到页面加载完成,都发生了什么
目录 序言 从输入URL到页面加载完成,都发生了什么 1. 一个极其粗糙且简化的流程 2. 每个步骤都只是摘要 2.1 浏览器中输入URL 2.1.1 URL的概念 2.1.2 浏览器对URL的长度限 ...
- 从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识
前言 上一章我们说到了数据包在网线中的故事,说到了双绞线,还说到了麻花.这一章继续沿着这条线路往下走,说一些和cdn以及路由器相关,运营商以及光纤相关的小知识,前端同学应该了解一下的 目录 前言 1. ...
最新文章
- 【uni-app】动态计算图片高度且保持宽高比
- 多线程之死锁就是这么简单
- 【每日Scrum】第三天(4.24) TD学生助手Sprint2站立会议
- loj2291. 「THUSC 2016」补退选
- Java基础Lambda表达式【四】
- 远程mysql_java.sql.SQLException: null, message from server: Host 'xxx' is not allowed to connect
- [转] Web前端开发工程师常用技术网站整理
- 什么是软件架构?常用的软件架构
- 加点字符就能让qq昵称很酷的神奇代码?
- javax.validation校验整理
- 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
- 好友克隆自助下单网站_可口可乐的成功可以这样复制!
- idea运行javaweb项目出现“该网页无法正常运作”
- 关于计算机未来理想,关于未来与梦想的作文
- 函数中使用sizeof(arr) / sizeof(arr[0])求数组长度不正确的原因
- 二分法求最大似然估计r语言_R语言中的最大似然估计
- 树选择排序(Tree Selection Sorting)介绍
- SQL必知必会 - 创建表的联结
- ThreeJS导入外部obj和mtl
- 重装系统后开机黑屏显示cannot load file怎么办
热门文章
- Java并发编程知识总结
- 2008生产实习 日程安排
- Bailian2912 三个完全平方数【进制+枚举】
- UVA299 UVALive5600 Train Swapping【逆序偶+暴力】
- 51Nod-1049 最大子段和【DP】
- NUC1090 Goldbach's Conjecture【哥德巴赫猜想 】
- CCF NOI1049 旋转图像
- CCF201312-1 出现次数最多的数(100分)
- vmware tools 的安装(Read-only file system 的解决)
- Matlab Tricks(二十六)—— 置乱(随机化)与恢复(shuffle/permutation restore)