2.浏览器地址栏输入http://www.baidu.com,尝试阐述整个过程
答:
域名解析。在浏览器地址栏输入http://www.baidu.com并按下回车时,浏览器得到一个域名。在实际通信过程中,需要的是一个IP地址。此时就需要先把域名转换成相应的IP地址,这个过程就叫做域名解析。过程如下:(1)浏览器首先搜索浏览器自身缓存的DNS记录。如果没有找到,则(2)查找操作系统DNS缓存。如果没有找到则进入(3)在hosts文件中进行查找,如果还没有找到则进入(4)向本地配置的首选DNS服务器发出域名解析请求。否则解析失败。
发起TCP请求。浏览器会选择一个本机端口向目标IP地址的目标端口发起TCP连接请求。也就是客户端和服务端之间需要进行通讯三次数据包,经过标准的TCP握手流程,建立TCP连接。(Java代码里面的Socket,ServerSocket的封装)
发起HTTP请求。根据输入对应的地址,浏览器会帮助我们客户端生成一个HTTP请求信息(HTTP请求报文)。其本质是在建立起的TCP连接中,按照HTTP协议标准发送一个索要网页的请求。向下经过TCP层、IP层、链路层,网络中进行路由中转传输。
HTTP请求报文到达目标机器之后,经过链路层、网络层、传输层,应用层接收到了HTTP请求报文,目的IP的服务器接收到HTTP请求信息,解析出客户端的意图之后,加以响应,生成HTTP响应报文,再次经过传输层、网络层、链路层从服务器主机出去,再次网络中转传输,到达客户端机器。
客户端接收到HTTP响应报文之后,会对响应报文进行解析,将响应报文里面的内容加载在浏览器的窗口上,css、js等,也包括网页静态资源加载,浏览器会一并进行渲染,最终将页面呈现在用户面前。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




