计算机网络-从输入网址到访问网站的全过程

当我们在浏览器中输入一个网址并按下回车键时,会发生一系列复杂的过程,最终使我们能够看到网页的内容。以下是这个过程的详细步骤:

  1. 客户端:首先,用户在浏览器中键入网址,然后浏览器会根据这个网址生成一个HTTP请求。

  2. 解析URL:URL由几部分组成,包括访问数据的协议(如http或https)、Web服务器的名称(如www.baidu.com)、端口号以及目录(默认为index文件)。

  3. 域名解析:如果URL包含域名,浏览器就需要进行域名解析。这个过程是通过DNS服务器来完成的,DNS服务器有树形的层级关系,包括根DNS、顶级域DNS和权威DNS。浏览器会逐层向上级DNS请求,如果上级DNS的缓存中没有需要的信息,就会继续向上级请求,直到找到对应的IP地址。

  4. 协议栈:得到IP地址后,浏览器就可以把HTTP的传输工作交给操作系统中的协议栈。应用程序(浏览器)通过调用Socket库,来委托协议栈工作。协议栈的组成包括TCP、UDP、IP、ICMP和ARP等协议。

  5. TCP:TCP协议负责在网络中传输数据。它的头部记录了源端口号和目标端口、包的序号(用于解决乱序问题)、确认号(用于确认是否收到数据)、状态位(用于连接时需要的信息)以及窗口大小等信息。TCP协议的工作流程包括三次握手(建立连接)、SSL/TLS(加密报文传输,保障数据安全)、分割数据、报文生成(包括TCP头部和数据部分,数据部分又包括HTTP头部和数据)以及四次挥手(断开连接)。

  6. IP:IP协议负责在网络中传输数据包。它的头部记录了源地址IP和目标地址IP以及上层协议类型(如TCP或UDP)。

  7. MAC:MAC地址是网络设备的物理地址。MAC头部记录了发送方MAC地址和接收方目标MAC地址以及上层协议类型(如IP或ARP)。

  8. 网卡:网卡驱动程序控制网卡的工作,包括添加帧头(起始标记)和帧尾(校验),将内容复制到网卡的缓存区,转化为电信号并发送。

  9. 交换机:在局域网内,交换机根据MAC地址表查找目标MAC地址,然后将信号发送到相应的端口。如果没有目标MAC地址,就会向所有端口广播。

  10. 路由器:在广域网中,路由器接收到数据包后,会进行校验,查看MAC地址是否是发给自己的(或者说需要经过自己转发的)。然后,路由器会根据路由表查询下一步转发的路径,这可能是静态路由,也可能是动态路由(实时交换路由信息)。

  11. 服务器:服务器开始解包,检查MAC地址、IP地址和TCP序列号是否符合要求,然后根据TCP头部中的端口号将数据转发给主机的进程。最后,服务器会生成一个响应,回应客户端。

  12. 浏览器:最终浏览器得到数据,解析 HTML 文件,创建 DOM 树,在 DOM 树创建完成后,浏览器会使用它来渲染页面。这个过程包括了解析 CSS,执行 JavaScript 代码,加载图片等步骤。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/591634.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins 持续集成 【CICD】

持续集成 (Continuous integration,简称CI) 持续集成是一种开发实践,它倡导团队成员频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、打包、部署、自动化测试)来验证&#xff…

element-ui breadcrumb 组件源码分享

今日简单分享 breadcrumb 组件的源码实现,主要从以下三个方面: 1、breadcrumb 组件页面结构 2、breadcrumb 组件属性 3、breadcrumb 组件 slot 一、breadcrumb 组件页面结构 二、breadcrumb 组件属性 2.1 separator 属性,分隔符&#xff…

Web Animations API 动画

Element.animate() dom.animate动画可以避免污染dom原有的css动画 参考资料 Element.animate() - Web API 接口参考 | MDN Element: getAnimations() method - Web APIs | MDN .tunnel{width:200px;height:200px;background-color:#38f;}<div class"tunnel" …

DFS:深搜+回溯+剪枝解决组合问题

创作不易&#xff0c;感谢支持!!! 一、电话号码的组合 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string hash[10]{"","","abc","def","ghi","jkl","mno","pqrs"…

[实验报告]--基于端口安全

[实验报告] 目录 [实验报告] 一、项目背景 二、实验环境 三、项目规划设计 四、项目实施 五、验证项目成果 基于端口安全的 Jan16 公司网络组建 一、项目背景 Jan16 公司开发部为重要部门&#xff0c;所有员工使用指定的计算机工作&#xff0c;为防止员工或访客使 用个…

chabot项目介绍

项目介绍 整体的目录如下所示&#xff1a; 上述的项目结构中出了model是必须的外&#xff0c;其他的都可以根据训练的代码参数传入进行调整&#xff0c;有些不需要一定存在data train.pkl:对原始训练语料进行tokenize之后的文件,存储一个list对象&#xff0c;list的每条数据表…

基于H2O AutoML与集成学习策略的房屋售价预测模型研究与实现

项目简述&#xff1a; 本项目采用H2O AutoML工具&#xff0c;针对加州房屋销售价格预测问题进行了深入研究与建模。项目以Kaggle提供的加州房屋 交易数据集为基础&#xff0c;通过数据清洗、特征工程、模型训练与评估等步骤&#xff0c;构建了一种基于集成学习策略的房价预测模…

好物视频素材在哪找?视频素材大全app下载

创作优质视频内容不仅仅是一种艺术&#xff0c;也是一种科学&#xff0c;需要对素材的深刻理解和精心挑选。掌握了这些高清无水印视频素材&#xff0c;您就拥有了创作引人入胜视频内容的强大工具。以下是更多精选的视频素材网站&#xff0c;旨在为您的视频项目提供更广阔的视野…

GDPU 竞赛技能实践 天码行空6

&#x1f4d6; 敌兵布阵 C国的死对头A国这段时间正在进行军事演习&#xff0c;所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段&#xff0c;所以每个工…

C++中二叉搜索树的模拟实现(二叉搜索树是map,set的底层原理)

搜索二叉树 定义 搜索二叉树:左子树小于根,右子树大于根.搜索二叉树的中序序列是升序的.所以对于二叉树而言,它的左子树和右子数都是二叉搜索树 下图就是二叉搜索树 二叉搜索树的性质: 二叉搜索树的中序遍历出的数据是有序的,并且二叉树搜索树在查找某个数的时候,一般情况下…

基于muduo网络库实现的集群聊天服务器

目录 项目内容开发环境安装说明技术介绍项目目录数据库设计项目介绍启动服务器启动客户端注册账号登录成功一对一聊天业务创建群聊业务加入群聊业务群聊业务添加好友业务离线消息存储业务 特殊说明Gitee地址 &#xff01;&#xff01;&#xff01;项目是照着腾讯课堂施磊老师的…

文件操作讲解

目录 一.为什么使用文件 二.什么是文件 2.1程序文件 2.2数据文件 2.3文件名 三.文本文件和二进制文件 fwrite函数 fclose函数 四.文件的打开和关闭 4.1流和标准流 4.2文件指针 4.3文件的打开和关闭 五.文件的顺序读写 5.1文件的顺序读写函数 5.1.1fgetc函数…