首页 > 其他分享 >浏览器打开www.baidu.com流程

浏览器打开www.baidu.com流程

时间:2023-08-11 11:22:09浏览次数:55  
标签:baidu www 浏览器 TCP html HTTP com

这是一道烂大街的面试题,不过通过这个问题我们可以将网络整个通信过程捋清楚,在这个过程中将计算机网络的各个部分串联起来。

概述

  1. 对www.baidu.com这个网站进行域名解析,得到对应的IP地址
  2. 根据这个IP,找到对应的服务器,发起TCP的三次握手
  3. 建立TCP连接后发起HTTP请求
  4. 服务器响应HTTP请求,浏览器得到html代码
  5. 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)(先得到html代码,才能去找这些资源)
  6. 浏览器对页面进行渲染呈现给用户
  7. 服务器关闭关闭TCP连接【1】

下面对每个部分做详细的说明

应用层

HTTP请求

DNS

传输层

参考

  1. https://cloud.tencent.com/developer/article/1500463
  2. 《网络是怎样连接的》

标签:baidu,www,浏览器,TCP,html,HTTP,com
From: https://www.cnblogs.com/optimjie/p/17622052.html

相关文章

  • WooCommerce 优惠劵不显示
    使用WooCommerce的优惠劵功能安装WooCommerce插件选择woocommerce>setting>General>Enablecoupons>Enabletheuseofcouponcodes此时一般会在管理菜单栏中出现Marketing菜单项,选择coupons选项即可如果不出现Marketing菜单项,可能是被隐藏了,可以在菜单栏settings......
  • 少数派sspai.com的兴与衰
    有时候,活着就是一种成功。少数派坚持了11年,值得恭贺。有时候,太老就是一种错误,即使你觉得自己没有犯错。 少数派位于深圳,做广告、内容之余做文创产品,这意味着少数派做内容的精力是受限的。收了资本的钱,就得干资本要求的活,少数派投入部分精力于播客,反响一般。面对作者流动,年费内......
  • $‘\r‘: command not found的解决方法
    缘起在Linux系统中,运行Shell脚本,出现了如下错误:one-more.sh:line1:$'\r':commandnotfound出现这样的错误,是因为Shell脚本在Windows系统编写时,每行结尾是\r\n,而在Linux系统中行每行结尾是\n,所以在Linux系统中运行脚本时,会认为\r是一个字符,导致运行错误。解决方法去除Shell......
  • docker-compose搭建Ftp服务器
    version:"3"services:ftp:image:fauria/vsftpdcontainer_name:vsftpdhostname:ftpprivileged:trueuser:rootports:-"21:21"-"20:20"-"21100-21110:21100-21110"......
  • ASP.NET Core – View Component
    前言以前写过 Asp.netcore学习笔记(ViewComponent组件),这篇作为翻新版. 参考Docs– ViewcomponentsinASP.NETCoreDon'treplaceyourViewComponentswithRazorComponents (RazorComponent无法替代ViewComponent) 介绍ViewComponent是 Partia......
  • CompletableFuture多任务组合回调
     1、AND组合关系thenCombine / thenAcceptBoth / runAfterBoth都表示:「当任务一和任务二都完成再执行任务三」。区别在于:「runAfterBoth」 不会把执行结果当做方法入参,且没有返回值「thenAcceptBoth」:会将两个任务的执行结果作为方法入参,传递到指定方法中,且无......
  • CompletableFuture异步多线程
    importjava.util.concurrent.CompletableFuture;importjava.util.concurrent.ExecutionException;publicstaticvoidmain(String[]args)throwsInterruptedException,ExecutionException{longstartTime=System.currentTimeMillis();//调用用户服......
  • docker-compose 安装MySQL(单实例)
    需求场景:在开发和测试环境中,或者研究型的环境,对于数据库的安全和稳定性可以稍低一些,那么我们可以通过docker快速部署MySQL服务,降低部署的时间成本。 vimdocker-compose.ymlversion:'3'services:mysql:restart:alwaysprivileged:trueimage:mysql:8.0......
  • ATL使用.rgs注册脚本文件操作注册表注册Com组件
    1.      ATL注册组件1.1     创建注册脚本注册脚本通过操作系统注册表完成Com服务的注册,通过数字形式而非代码API的形式完成,这种形式显得更加简单有效,因为它只需要几行数字代码就可以将一个Key添加到注册表中。使用ATL向导时,会自动的生成一个后缀为.rgs的注册脚本......
  • CompletableFuture supplyAsync()
    CompletableFuture中的方法publicstaticCompletableFuture<Void>runAsync(Runnablerunnable)publicstaticCompletableFuture<Void>runAsync(Runnablerunnable,Executorexecutor)publicstatic<U>CompletableFuture<U>supplyAsync(Supplie......