经典软件开发面试题:浏览器中输入一个网址后发生了什么?
大家好, 这一期呢,我们来谈一个经典的面试题。这种题目是在浏览器中输入一个网址以后, 会显示一个网页,这期间到底发生了什么? 答案要求说的越详细越好。
好,现在我们就来说一下这个问题。
第1步用户输入网址,按回车以后,浏览器首先要解析出域名, 域名出来以后就进入下一步。
第2步就进入查找IP地址的阶段, 首先要在本机的缓存里查找, 如果找不到,就向临近的DNS服务器查找, 如果还是找不到,就发送请求到下一级的DNS服务器, 直到找到这个网址的对应IP地址为止。如果找不到,当然就返回错误。如果找到了,就会回溯返回IP地址与域名的对应信息, 途经的DNS服务器都要自动更新本机的映射列表。拿到域名对应的IP地址以后,进入第3步。
第3步就是向IP地址对应的服务器发送请求,比如说我们这种请求是Get方法,服务器收到请求以后,如果这个服务器的背后有多个服务,也就是说有可能是来自多个端口或者多台主机,那么外层服务器的任务就是根据路径来匹配相关的端口或主机,找到对应的端口或主机以后,传递过来的请求信息,继续传送到目的地端口或者主机上,不管是端口,还是主机,都会对应一个服务器程序来处理这些请求, 这些服务器就会在己端对应路径和方法,从而查找匹配对应的回调函数。找到回调函数以后,进入下面的第4步。
第4步在回调函数中,我们会主要处理两个参数,一个是请求参数,一个是回应参数, 我们使用请求参数来查找发送这个请求的用户相关的验证信息来验证用户的请求是否合法,如果不合法,当然就直接退回并返回相关的状态代码401或者403。
如果请求可以继续,那么我们就查找在请求头里面是否存在其他的信息,以及请求参数等信息, 有了这些信息以后我们就可以去计算我们的数据出来, 我们拿到数据以后,就用回应参数,把这些数据写进去。下面我们进入第5步了。
第5步,浏览器收到服务器返回的数据以后。对这些数据进行解析显示。
以上是我个人对这个话题一点看法。仅供参考,欢迎讨论。
网友评论