从输入url到页面展示出来经历了哪些过程
本文只是一个整理向的随笔,以个人思路来简化的同时进行适当的拓展,如有错误,欢迎指正.
1.输入网址.
此时得到一个url
2.域名解析
整个过程都是dns系统在发挥作用,它的目的是将域名和ip对应起来.
(1)浏览器DNS缓存:或许很多人不知道,浏览器自身也带有一层DNS缓存,它会先在缓存中查找是否有对应的映射 。
(2)操作系统DNS缓存:操作系统也有自己的DNS缓存,当浏览器DNS缓存的没找到的时候会交给操作系统,而操作系统也会优先去找自己的缓存.
(2)hosts文件:操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析.(到目前为止都是在本地完成的)
(3)当这些都没有的时候,开始向DNS服务器发送请求,最终得到相对应的ip地址.
3.tcp连接,三次握手.
(1)客户端向服务器发送请求,并带上自己的特征,列如a=1,告诉服务器是我在此时发出了请求.
(2)服务器接收到请求后,也随机生成一个代号k,并且将之前客户端的特征进行特定操作,比如a=1+1,表示我不光接收到请求了,还确定是你的请求,同时把这些信息(数据包)发送给客户端,同时自己打开大门准备迎接这次连接.
(3)客户端收到服务端的信息之后,确认a已经被加1过了,说明服务端准备好了,那么客户端会把之前服务端的特征进行特定操作并返回,比如k=1+1.服务端检查一下,k已经被加1了,好.连接通道,进行数据传输.
三次握手的目的:
最主要的目的是客户端和服务端的沟通更及时和准确.比如:第一次请求之后,由于特殊原因,该请求在路上耽搁了不少时间,一段时间后,客户端不想要资源了,而这个时候服务器才收到请求,然后就直接打开大门准备传资源,那它将会一直处于大门敞开的阶段,不光危险还的费神看门.浪费服务端的资源.
4.客户端发送HTTP请求
上面一步只是建立了连接,并没有准确的请求内容.也就是所谓的我虽然进门了,但是我没告诉你我干嘛来了.这一步就是告诉服务端我需要什么.--发送请求头和请求体
5.服务端处理
服务端表示你说的话我听到了,但是我得想想你的话里面包含哪些东西.于是开始解析请求头和请求体,并找到相应的东西在什么位置.----处理请求
6.服务端响应请求
服务端把东西打包好给客户端.-------返回响应头和响应体
7.客户端接收响应数据
客户端下载服务端提供的数据
8.tcp关闭,四次挥手
(1)客户端跟服务器说,我想要的东西拿到了,我想结束这次交流了,所以我"不想说话了"(不想发请求了).----客户端发送一个不再请求的信号给服务端.(闭嘴了)
(2)服务器听到后,"好,那我就不打算听你说话了"(闭耳了).------服务器给客户端一个信息表示我知道你不再发请求了.但是你还能接收数据.
(3)服务器犹豫着要不要再说两句,但是无论说不说最后都得闭嘴了.----------这里是服务器最后发补充数据的时候,也可以不发,但最后都得把我已经不再发数据这一信号发送出去.
(4)客户端知道服务器闭嘴之后自己也就闭耳了.--------客户端得知服务器不再提供数据,自己也就不再接收数据了.
关闭要四次的原因是,客户端虽然不再请求,但是可以继续接收,这两个状态可以分开接受,所以这里必须分成两个步骤.然后服务端也是同理.而握手的时候,客户端直接就发出了请求,少了一步确认的过程.
9.解析文件并渲染
"喂!请问是shyno先生吗?您的外卖已经到了,我已经帮你打开摆放到桌子上了,您放心食用!亲务必给个五星好评哦!"
哈哈!我怎么说的叫外卖去了?不过好像也差不多.额~~~~~~有点饿了!先去吃饭了.
从输入url到页面展示出来经历了哪些过程的更多相关文章
- 前端回答从输入URL到页面展示都经历了些什么
浏览器和服务器涉及大量网络通信内容,此处做了弱化介绍,作为前端主要关注第四部分.一. 网络环境保障我们先假定我们访问的URL为www.abc.com并且地址不在局域网内:首先我们所处的局域网的总路由应 ...
- 从输入 URL 到页面展示,这中间发生了什么?
当面试官问到,请你说说看"从输入 URL 到页面展示,这中间发生了什么?" 以前的我是这样回答的: 用户输入URL后,向服务器端发起请求.如果顺利,得到网络响应之后,浏览器对资源进 ...
- 【原】老生常谈-从输入url到页面展示到底发生了什么
刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步 ...
- 【转】老生常谈-从输入url到页面展示到底发生了什么
今天看到了一篇很详细地解释了从输入url到页面展示过程的文章,好文章不能错过,所以转到自己这里来了. 原文地址:老生常谈-从输入url到页面展示到底发生了什么 以下为原文: 刚开始写这篇文章还是挺纠结 ...
- (转)老生常谈-从输入url到页面展示到底发生了什么
刚开始写这篇文章还是挺纠结的,因为网上搜索"从输入url到页面展示到底发生了什么",你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么 ...
- 转载--从输入URL到页面展示到底发生了什么
最近我也在看http协议, tcp相关知识, 在吃饭时无意看到来一篇文章讲解“从输入URL到页面展示到底发生了什么”, 细细看完, 很值得回味, 所以转载, 以供日后在温习. (PS, 作者这篇文章发 ...
- 《浏览器工作原理与实践》<04>从输入URL到页面展示,这中间发生了什么?
“在浏览器里,从输入 URL 到页面展示,这中间发生了什么? ”这是一道经典的面试题,能比较全面地考察应聘者知识的掌握程度,其中涉及到了网络.操作系统.Web 等一系列的知识. 在面试应聘者时也必问这 ...
- 从输入 URL 到页面展示,到底发生了什么
从输入 URL 到页面展示,到底发生了什么 1.输入URL 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应 ...
- 从输入URL到页面展示,这中间都发生了什么?
前言 在浏览器里,从用户输入URL到页面展示,这中间都发生了什么?这是一道非常经典的面试题.这里边涉及很多知识点,比如:网络协议.页面渲染.操作系统等.所以这是很好很全面的考察一个前端的知识.下面我将 ...
随机推荐
- cocos2d js ClippingNode 制作标题闪亮特效
1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...
- 逆波兰法求解数学表达示(C++)
主要是栈的应用,里面有两个函数deleteSpace(),stringToDouble()在我还有一篇博客其中:对string的一些扩展函数. 本程序仅仅是主要的功能实现,没有差错控制. #inclu ...
- Hilbert曲线简单介绍及生成算法
Hilbert曲线 Hilbert曲线是一种填充曲线,相似的填充曲线还包含Z曲线.格雷码等其它方法.Hilbert曲线根据自身空间填充曲线的特性,能够线性地贯穿二维或者更高维度每一个离散单元.而且只穿 ...
- "Hello World " —— 深入理解程序从编译到执行
对于C语言编写的Hello World程序(例如以下).对于程序猿来说肯定如雷贯耳,就是这样一个简单的程序,你真的了解她吗? #include <stdio.h> int main() { ...
- linux openssl 编程 Client端
相关配置等请參看上一篇关于server端文章:http://blog.csdn.net/pingd/article/details/47805349 1.Client端源代码: openssl_cli ...
- CON1023 明明的计划
比赛说明 邀请码:a08f 来源:自出 描述:无 难度:NOIP提高组day1 赛时答疑:私信询问 奖励:无 试题列表 赛题 #A:数学题赛题 #B:明明泡妹子赛题 #C:明明去酒店 U5012 数学 ...
- Nginx1.6 for centos6.5安装
Nginx 学习文档:http://www.cnblogs.com/zhoulf/archive/2013/02/09/2909653.html 下载地址:http://nginx.org/en/do ...
- C# winform listBox中的项上下移动(转)
C# winform listBox中的项上下移动 分类: C# winform2009-06-24 12:37 876人阅读 评论(0) 收藏 举报 winformc#object //上移节点 ...
- B1295 [SCOI2009]最长距离 最短路
就是一道最短路的裸题,直接跑spfa就行了.(spfa死了) 最后在答案处判断是否障碍物太多,然后就直接找最大值就行. (数据特别水,我错误算法60) 题干: Description windy有一块 ...
- NOIP2013--火柴排队(树状数组)
转载: 树状数组,具体的说是 离散化+树状数组.这也是学习树状数组的第一题. 算法的大体流程就是: 1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的, 2.接着,运用树状数组的标准操作来累 ...