浏览器输入网址后,按回车会发生什么
比较常考,自己总结了下
1. 浏览器查找域名IP
先根据浏览器缓存查询,之后查看系统缓存,再看路由器缓存,再看ISP DNS缓存
如果缓存没有查询到,就会利用DNS服务器从根域名开始搜索,
再从.com DNS服务器到didichuxing DNS服务器,
DNS服务器之间的查询是迭代查询,客户机与服务器之间的查询是递归查询,最后返回IP
2. 向远程IP地址服务器发送HTTP请求
请求包括GET/POST、url、协议、浏览器头、cookies信息等
3. 服务器应答,向客户机发送HTTP响应报文
包括HTTP版本、事件、cookies等,并查找请求的资源是否存在响应,比如200成功 404 NOT FOUND
4. 服务器返回相应的内容
5. 浏览器页面渲染,显示
因为返回的内容可能不够完整,比如还需要js、图片之类的,浏览器还会继续发送请求获取它们
其他:HTTP包的传输是依靠TCP的传输,建立三次握手连接、四次挥手释放
TCP包是由IP包负载的
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下是一个群里的人写的
DNS解析的过程如下,这个过程有助于我们理解DNS的工作模式
1. 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5. 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。