输入url后浏览器干了些什么(详解)
输入url后浏览器干了些什么(详解)
DNS(Domain Name System, 域名系统) 解析
DNS解析的过程就是寻找哪台机器上有你真正需要的资源过程.但你在浏览器张红输入一个地址时,例如:baidu.com,其实不是百度网站真正意义上的地址.互联网上每一台计算机的唯一标识是他的IP地址,但是IP地址并不方便记忆.用户更细化用方便记忆的网址去寻找互联网上的其他计算机.也就是上面提到的百度的网址.所以互联网设计者需要在用户的方便性与可用性做一个权衡,这个权衡就是一个网址到IP地址的转换,这个过程就是DNS解析.他实际上充当了一个翻译的角色,实现了网址到IP地址的转换.当然如果你直接输入的是另一台电脑的IP地址来访问他,那么不存在这一步.
TCP连接(三次握手)
知道了服务器的IP地址,就开始和服务器简历连接了.连接的建立需要经历三次握手
- 第一次握手: 建立连接时,客户端发送syn包(syn=j)到服务器,并进入
SYN_SENT,等待服务器确认. - 第二次握手: 服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己发送一个SYN包(syn=k),即
SYN+ACK包,此时服务器进入SYN_RECV状态 - 第三次握手: 客户端收到服务器的
SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP链接成功状态),完成三次握手
发送HTTP请求
当服务器与主机建立了链接以后,注意开始和服务器进行通信.网页请求是一个单向请求的过程.即一个主机向服务器请求数据,服务器返回相应的数据的过程.浏览器根据URL内容生成HTTP请求,HTTP请求报文是由三部分组成:请求行,请求报头,请求正文.
服务器处理请求并返回HTTP报文
服务器接到请求后,会根据HTTP请求中的内容来决定如何获取相应的HTML文件,服务器得到的HTML文件发送给浏览器.HTTP响应报文也是由三部分组成:状态码,响应头,响应报文.
- 状态码
- 1xx: 指示信息,标示请求已接收,急需处理.
- 2xx: 成功信息,标示请求已被成功接收,理解,接收
- 3xx: 重定向,要完成请求必须进行更进一步的操作
- 4xx: 客户端错误,请求有语法错误或请求无法实现
- 5xx: 服务器端错误,服务器未能实现合法的错误
- 响应头
- 常见的响应头字段有:Server,Connection..
- 响应报文
- 服务器返回给浏览器的文本信息,同昌HTML,CSS,JS,图片等文件就放在这一部分
浏览器解析渲染页面
在浏览器还没有在完全接受HTML文件时便开始渲染,显示网页
在执行HTML中的代码时,根据需要,浏览器会继续请求图片,CSS,JavaScript等文件.过程同请求HTML
连接结束
四次回收连接
- 客户端进程发出连接释放报文,并且停止发送数据.释放数据报文首部.FIN=1,其序列号为seq=u(风雨前面已经传过来的数据的最后一个序号+1),此时,客户端进入FIN-WAIT-1(终止等待1)状态.TCP规定,FIN报文段即使不携带数据,也要消耗一个序号.
- 服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v此时,服务端就加入了CLOSE-WAIT(关闭-等待)状态.TCP服务器同之高层的应用进程,客户端向服务器的方向接释放了,这时处于半关闭状态,及客户端已经没有数据要发送了.但是服务器若发送数据,客户端仍然接收.这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间.
- 客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接收服务器发送的最后数据).
- 服务器将最后的数据发送完毕后,就像客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认
- 客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时客户端进入了TIME-WAIT(时间等待)状态.注意此时TCP连接没有释放,必须经过2MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态
- 服务器只要收到客户端发出的确认,立即进入CLOSED状态.同样,撤销TCB后,就结束了这次TCP连接.可以看到,服务器结束TCP连接的时间比客户端要更早一些
输入url后浏览器干了些什么(详解)的更多相关文章
- 输入URL后浏览器的过程
In this article, I want my readers to get a picture of a very basic concept of the web world. Previo ...
- 在浏览器输入 URL 后会发生什么?超级详细介绍
一个古老的面试问题:当你在浏览器中输入whosmall.com并且按下回车之后发生了什么? 不过我们不再局限于平常的回答,而是想办法回答地尽可能具体,不遗漏任何细节. 这将是一个协作的过程,所以深入挖 ...
- 在浏览器输入url后并回车发生了哪些过程
1.解析URL ________________________________________________________________________ 关于URL: URL(Universa ...
- 在浏览器输入URL后发生了什么?
摘录部分一:https://www.cnblogs.com/kongxy/p/4615226.html 从输入URL到浏览器显示页面发生了什么 当在浏览器地址栏输入网址,如:www.baidu.com ...
- 【转】浏览器中输入url后发生了什么
原文地址:http://www.jianshu.com/p/c1dfc6caa520 在学习前端的过程中经常看到这样一个问题:当你在浏览器中输入url后发生了什么?下面是个人学习过程中的总结,供个人复 ...
- 在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程)
在浏览器中输入URL后,执行的全部过程.会用到哪些协议?(一次完整的HTTP请求过程) 整个流程如下: 域名解析 为了将消息从你的PC上传到服务器上,需要用到IP协议.ARP协议和OSPF协议. 发起 ...
- 从输入 URL 到浏览器接收的过程中发生了什么事情
从输入 URL 到浏览器接收的过程中发生了什么事情? 原文:http://www.codeceo.com/article/url-cpu-broswer.html 从触屏到 CPU 首先是「输入 U ...
- 从输入 URL 到浏览器接收的过程中发生了什么事情?
从输入 URL 到浏览器接收的过程中发生了什么事情? What really happens when you navigate to a URL 上面两篇文章都解读的很好,值得阅读. 接下来在总结一 ...
- 输入URL到浏览器显示页面的过程,搜集各方面资料总结一下
面试中经常会被问到这个问题吧,唉,我最开始被问到的时候也就能大概说一些流程.被问得多了,自己就想去找找这个问题的全面回答,于是乎搜了很多资料和网上的文章,根据那些文章写一个总结. 写得不好,或者有意见 ...
随机推荐
- BFC与优雅降级 渐进增强——学习笔记
BFC(块级格式化上下文) BFC(Block formatting context) 直译为"块级格式化上下文". 元素的显示模式 我们前面讲过 元素的显示模式 display. ...
- 13 . Python3之并发编程
什么是操作系统? 为什么要有操作系统? 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成. 一般而言,现代计算机系统是一个复杂的系统. ...
- Java实现蓝桥杯算法提高 哥德巴赫猜想
试题 算法提高 哥德巴赫猜想 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 根据所给函数(判断一个整数是否是素数),然后依托该函数,将输入N内的偶数(6-N),输出为两个素数之和( ...
- Java实现蓝桥杯VIP算法训练 小生物的逃逸
试题 算法训练 小生物的逃逸 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 空间中有n个球,这些球不相交也不相切.有m个可以视为质点的小生物,可能在某些球内,也可能在所有球之外,但 ...
- Java实现 蓝桥杯VIP 算法训练 字符删除
算法训练 字符删除 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的c ...
- Java实现 蓝桥杯VIP 算法提高 企业奖金发放
算法提高 企业奖金发放 时间限制:1.0s 内存限制:512.0MB 企业发放的奖金根据利润提成.利润低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10% ...
- 第七届蓝桥杯JavaA组国(决)赛部分真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.阶乘位数 阶乘位数 9的阶乘等于:362880 它的二进制表示为:1011000100110000000 这个数字共有19位. 请你计 ...
- java实现平面点最小距离
已知平面上若干个点的坐标. 需要求出在所有的组合中,4个点间平均距离的最小值(四舍五入,保留2位小数). 比如有4个点:a,b,c,d, 则平均距离是指:ab, ac, ad, bc, bd, cd ...
- java实现第四届蓝桥杯有理数类
有理数类 题目描述 有理数就是可以表示为两个整数的比值的数字.一般情况下,我们用近似的小数表示.但有些时候,不允许出现误差,必须用两个整数来表示一个有理数. 这时,我们可以建立一个"有理数类 ...
- 从零搭建Window前端开发环境
前言 作为一个小前端,是否因为搭建环境烦恼过,是否因为npm等国外镜像踩坑过,不要怕,接下来跟着我一步步搭建适合自己的开发环境吧!!! node 这个不用说了吧,我们经常和他打交道,无论是 gulp. ...