回答·8
最热
最新
- 1.dns域名解析 2.建立tcp三次握手 3.浏览器发起http请求 4.服务端响应http请求 5.浏览器解析http响应,并渲染到页面 6.浏览器关闭tcp四次挥手
- http 请求过程——当我们在浏览器输入 www.baidu.com,然后回车之后的详解。 1)域名解析(域名 www.baidu.com 变为 ip 地址)。 1.浏览器搜索自己的DNS缓存(维护一张域名与IP的对应表),若没有,则搜索操作系统的DNS缓存(维护一张域名与IP的对应表),若没有,则搜索操作系统的hosts文件(维护一张域名与IP的对应表) 2.若都没有,则找 tcp/ip 参数中设置的首选 dns 服务器,即本地 dns 服务器(递归查询),本地域名服务器查询自己的dns缓存,如果没有,则进行下面的迭代查询 2.1本地dns服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器的地址。 2.2本地dns服务器向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(保存该区中所有主机域名到IP的映射)地址。 2.3本地dns服务器向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址。 3.本地dns服务器将IP返回给操作系统,同时缓存IP。 4.操作系统将IP返回给浏览器,同时缓存IP。 2)发起 tcp 的三次握手,建立 tcp 连接。浏览器会以一个随机端口(1024-65535)向服务端的 web 程序 80 端口发起 tcp 的连接.这个请求(原始的 http 请求,经过原始的 tcp/ip 四层模型层层封装),到达服务器端后,进入网卡,然后进入内核的协议栈(一层一层拨开),然后到达 web 应用程序,最终建立了 tcp/ip 链接。 3)建立 tcp 连接后发起 http 请求。 4)服务器响应 http 请求,客户端得到 html 代码。服务器 web 应用程序收到 http 请求后,就开始处理请求,处理之后就返回给浏览器 html 文件。 5)浏览器解析 html 代码,并请求 html 中的资源。 6)浏览器对页面进行渲染,并呈现给用户。 涉及到的协议 (1) 应用层:HTTP(WWW访问协议),DNS(域名解析服务) (2) 传输层:TCP(为HTTP提供可靠的数据传输),UDP(DNS使用UDP传输) (3) 网络层:IP(IP数据数据包传输和路由选择),ICMP(提供网络传输过程中的差错检测),ARP(将本机的默认网关IP地址映射成物理MAC地址) ps:ARP缓存本局域网内的IP和MAC的映射。如果在本局域网不在缓存中,则广播请求信息,目的主机会以单播形式回送MAC;如果不在本局域网中,则找到本网络的路由器MAC地址,由路由器去找到目的MAC地址。 ping www.baidu.com用到的协议 DNS, UDP, ICMP, ARP。
- 首先,浏览器会接收到你输入的网址,然后它会智能地匹配这个URL,看看历史记录或者书签里有没有类似的网址,好给你提供智能提示。当然啦,这个过程是很快的,你几乎感觉不到。 接下来,浏览器就要开始真正的工作了!它会向DNS服务器发送请求,解析这个网址对应的IP地址。DNS服务器就像是网络世界的地址簿,它知道每个网址对应的IP地址是什么。一旦解析成功,浏览器就得到了百度的IP地址。 然后,浏览器会利用TCP协议,和百度服务器建立起一个连接。这个连接就像是一条通道,让浏览器和服务器之间可以传输数据。 连接建立好了之后,浏览器就会向服务器发送一个HTTP请求。这个请求里包含了浏览器的信息、请求的数据类型,以及所有相关的cookies等等。百度服务器收到请求后,就会根据请求的内容,把对应的网页数据发送回来给浏览器。 浏览器收到网页数据后,就开始进行渲染了。它会解析HTML、CSS和JavaScript等文件,把网页的内容显示在屏幕上。这个过程中,浏览器还会加载嵌入在HTML中的其他资源,比如图片、视频等。 最后,当你浏览完网页,准备关闭浏览器的时候,浏览器会向服务器发送一个断开连接的请求。这样,浏览器和服务器之间的连接就被关闭了。
- 一、浏览器通过目标url构建http的请求报文 二、浏览器向DNS服务器发起解析域名的请求,转为目标url的ip地址(当然这个地址可能是个代理地址不是真实ip) 三、浏览器向目标ip发送报文 四、服务器(Nginx、Apache等)接收报文请求(浏览器与服务器建立连接TCP三次握手跑不了,当然需要看http版本什么1.0短连接、1.1和2.0长连接,3.0基于UDP的QUIC协议,3.0肯定就不用3次握手了),处理请求 五、非lnmp架构可忽略本步,如果是Nginx服务器会通过FastCGI协议与PHP之间通信,FastCGI解释进程处理完毕后把处理好的数据返还给Nginx,Nginx将结果封装成http响应报文,然后发送给浏览器 六、浏览器接收响应并解析然后进行页面展示,如果展示页面的过程中需要新的资源会再次发起请求,最终展示出完整页面
- 1.dns域名解析百度ip 2.建立tcp建立连接 3.浏览器向百度发起http请求 4.百度服务端响应http请求 5.tcp连接释放 6.浏览器解析数据并渲染到页面
- 在浏览器地址栏输入网址之后,浏览器会先将请求发送给DNS服务,将域名解析为相应的IP地址。之后会根据这个IP地址找到百度的服务器,建立TCP链接,将百度的首页文件传输给浏览器。
- 浏览器会根据这段数据或得到协议是HTTP、主机名是www.baidu.com、请求路径是/(默认值)、端口是80(默认值)、请求类型是GET(默认值),然后浏览器把这些数据交给操作系统,操作系统会把HTML返回给浏览器,浏览器把要显示的标签和CSS显示出来,同时执行JavaScript脚本
- 1. 域名解析(DNS 解析): - 浏览器首先检查自身的 DNS 缓存,如果有 www.baidu.com 的解析记录,则直接使用。 - 如果没有,浏览器会向本地操作系统的 DNS 缓存请求域名解析。 - 如果本地 DNS 缓存中没有对应的解析记录,则浏览器会向 DNS 服务器发送域名解析请求。 - DNS 服务器返回百度网站的 IP 地址,如 220.181.38.148。 2. 建立 TCP 连接: - 浏览器使用 HTTP 协议的默认端口号(80)向服务器发送请求,因此会建立一个 TCP 连接。 - 如果是 HTTPS 连接,则使用默认的 HTTPS 端口(443)。 3. 发送 HTTP 请求: - 浏览器向百度服务器发送一个 HTTP GET 请求,请求的内容为获取主页。 - 请求头中包含了浏览器的信息、支持的压缩算法等信息。 4. 服务器处理请求: - 百度服务器收到 HTTP 请求后,会根据请求的内容生成对应的响应。 - 服务器会解析请求,然后查找对应的资源(HTML 文件、图片、CSS 文件等)。 5. 服务器发送响应: - 服务器将生成的 HTML 页面和相关资源通过 TCP 连接发送给浏览器。 - 响应头中包含了服务器的信息、响应状态码(如 200 表示成功)、内容类型等信息。 6. 浏览器渲染页面: - 浏览器收到响应后,开始解析 HTML 文件,并根据 HTML、CSS、JavaScript 等内容渲染页面。 - 浏览器会逐步加载页面中的各种资源,包括图片、样式表、脚本文件等。 - 页面渲染完成后,显示在浏览器窗口中供用户查看和操作。 7. 连接关闭: - 当页面全部加载完成后,浏览器和服务器之间的 TCP 连接会被关闭。 - 如果页面中包含了持久连接(如 Keep-Alive),则连接可能会保持一段时间以便后续请求复用。