首页 > 其他分享 >用户访问网站的完整流程

用户访问网站的完整流程

时间:2024-12-27 13:46:01浏览次数:5  
标签:baidu 流程 用户 访问 域名 DNS 服务器 com 客户端


 

 

 

在浏览器输入想要访问的域名之后,浏览器会进行域名解析获得IP地址,在经过TCP的连接,实现数据的传输就会有两种报文,及请求报文和响应报文。最终才能实现通信。因此想要实现通信,就得先弄懂DNS的解析原理以及TCP连接通道的流程。

 

理论内容:

1、DNS的介绍以及原理

2、TCP/IP协议的介绍和三次握手及四次挥手

3、HTTP协议的介绍及请求与响应报文

4、用户访问浏览器的完整过程

 

1、DNS的介绍及解析原理

1)说说DNS是什么:

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去+·记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。访问网站的实质就是解析其域名得到IP地址,再转向其网站。

 

2)DNS的解析原理:

 

 

 

 

原理步骤:

1)系统首先会查找本地的DNS缓存和hosts文件信息,确认其中是否有与,域名www.baidu.com所对应的IP地址。如果有,就直接访问这个IP地址所对应的www.baidu.com域名服务器。

2)如果没有找到,那么,系统将会把浏览器的解析请求发送给本地主机所指定的DNS服务器,称为LDNS。如果LDNS服务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。

3)LDNS服务器会从DNS系统的根(.)开始请求对域名www.baidu.com的解析。根DNS服务器全球只有13台,根域名服务器是没有域名www.baidu.com解析记录的。但是它会有域名www.baidu.com所对应的顶级域.com的解析记录,因此直接把顶级域.com所对应的DNS地址返回给LDNS服务器。

4)LDNS服务器获取到顶级域.com对应的DNS服务器地址后,就会去.com服务器请求对www.baidu.com域名的解析。在顶级域名服务器也不会有www.baidu.com的解析记录的。但是它有www.baidu.com的父级域名的解析记录,即baidu.com。因此顶级域名.com服务器又会把baidu.com所对应的DNS服务器的IP地址返回给LDNS。

5)LDNS服务器收到baidu.com所对应的IP地址后,就会去baidu.com域名服务器请求对www.baidu.com的域名解析。Baidu.com域名对应的DNS服务器是该域名的授权DNS服务器。这个DNS服务器就是企业购买域名时用于管理解析的服务器。

6)baidu.com域名DNS服务器会吧www.baidu.com域名所对应的IP地址给解析出来,然后发给LDNS。

7)LDNS把解析出来的结果,www.baudu.com所对应的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应的地址缓存到cache中。

8)客户端浏览器收到后,也会将其域名以及对应的IP地址缓存的到DNS缓存里。

 

2、TCP/IP协议的介绍和三次握手及四次挥手

1)说说TCP/IP协议是什么

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

2)各个状态的意义如下: 
(1)LISTEN - 侦听来自远方TCP端口的连接请求; 
(2)SYN-SENT -在发送连接请求后等待匹配的连接请求; 
(3)SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认; 
(4)ESTABLISHED- 代表一个打开的连接,数据可以传送给用户; 
(5)FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
(6)FIN-WAIT-2 - 从远程TCP等待连接中断请求; 
(7)CLOSE-WAIT - 等待从本地用户发来的连接中断请求; 
(8)CLOSING -等待远程TCP对连接中断的确认; 
(9)LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认; 
(10)TIME-WAIT - 等待足够的时间以确保远程TCP接收到连接中断请求的确认; 
(11)CLOSED - 没有任何连接状态;

3)TCP三次握手

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

 

 

 

 

 

三次握手过程:

1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

4)TCP 四次挥手
TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

 

 

 

 

 

四次挥手过程:

1)第一次挥手:客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。 

2)第二次挥手:服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 

3)第三次挥手:服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 

4)第四次挥手:客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

 

3、HTTP协议的介绍及请求与响应报文

1)HTTP报文

HTTP报文中有很多行内人,这些行的字段都是由一些ASCII码串组成,但各个字段的长度是不同的。HTTP报文可以分为两种,一种是从web客户端发往web服务端的HTTP报文,称为请求保卫,另一种是从web服务端发往客户端的报文,称为响应报文。两种报文的格式的基本相同。

(1)请求报文介绍

(2)请求报文的内容与格式有如下:

1)请求行

作用:用来说明客户端想要做什么。

内容:包括方法字段GET和URL字段以及HTTP协议版本

2)请求头

作用:通过客户端把请求的相关信息发给服务器

内容:包括媒体类型、语言类型、支持压缩、客户端类型、主机等信息。

3)空行

作用:告诉服务器空行以下内容不属于请求头部信息。

4)请求报文主体

作用:用来说明客户端具体想要做的事情。

内容:查看信息、应用post方法。

(3)响应报文介绍

(4)请求报文的内容与格式有如下:

1)状态行

作用:用来说明服务端响应客户端的状态。

内容:包括洗衣及版本号、数字状态码、状态情况

2)响应头

作用:通过服务端把响应的相关信息给客户端

内容:包括Location、server、connect、vary等

3)空行

作用:告诉客户端空行以下内容不属于响应头部信息。

4)响应报文主体

作用:用来装载着要返回给客户端的数据

内容:包括文本、html、视频或者是图片。

 

(5)GET与POST的认识

GET:当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind、

POST:当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;

 

4、用户访问浏览器的完整过程

1、客户端在浏览器中输入要访问的域名地址,如:www.baidu.com

2、浏览器请求解析DNS服务器,把域名www.baidu.com转换成web服务器的IP地址。

1)系统首先会查找本地的DNS缓存和hosts文件信息,确认其中是否有与,域名www.baidu.com所对应的IP地址。如果有,就直接访问这个IP地址所对应的www.baidu.com域名服务器。

2)如果没有找到,那么,系统将会把浏览器的解析请求发送给本地主机所指定的DNS服务器,称为LDNS。如果LDNS服务器中有域名www.baidu.com所对应的IP地址,则返回给客户端的浏览器,如果没有,则继续请求其他DNS服务器。

3)LDNS服务器会从DNS系统的根(.)开始请求对域名www.baidu.com的解析。根DNS服务器全球只有13台,根域名服务器是没有域名www.baidu.com解析记录的。但是它会有域名www.baidu.com所对应的顶级域.com的解析记录,因此直接把顶级域.com所对应的DNS地址返回给LDNS服务器。

4)LDNS服务器获取到顶级域.com对应的DNS服务器地址后,就会去.com服务器请求对www.baidu.com域名的解析。在顶级域名服务器也不会有www.baidu.com的解析记录的。但是它有www.baidu.com的父级域名,即baidu.com。因此顶级域名.com服务器又会把baidu.com所对应的DNS服务器的IP地址返回给LDNS。

5)LDNS服务器收到baidu.com所对应的IP地址后,就会去baidu.com域名服务器请求对www.baidu.com的域名解析。Baidu.com域名对应的DNS服务器是该域名的授权DNS服务器。这个DNS服务器就是企业购买域名时用于管理解析的服务器。

6)baidu.com域名DNS服务器会吧www.baidu.com域名所对应的IP地址给解析出来,然后发给LDNS。

7)LDNS把解析出来的结果,www.baudu.com所对应的IP地址发送给客户端的浏览器。并且LDNS也会将其域名和对应的地址缓存到cache中。

8)客户端浏览器收到后,也会将其域名以及对应的IP地址缓存的到DNS缓存和hosts文件中。

 

3、浏览器从访问的IP地址(URL)解析出默认的断后号:80

4、浏览器通过解析后得到的IP地址和端口号进行web服务器建立一条TCP连接通道。

1)第一次握手:

建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

2)第二次握手:

服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

3)第三次握手:

客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

 

5、建立TCP连接之后,浏览器向web服务器发送一条HTTP请求报文。

1)请求行

作用:用来说明客户端想要做什么。

内容:包括方法字段GET和URL字段以及HTTP协议版本

2)请求头

作用:通过客户端把请求的相关信息发给服务器

内容:包括媒体类型、语言类型、支持压缩、客户端类型、主机等信息。

3)空行

作用:告诉服务器空行以下内容不属于请求头部信息。

4)请求报文主体

作用:用来说明客户端具体想要做的事情。

内容:查看信息、应用post方法。

6、web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。

1)状态行

作用:用来说明服务端响应客户端的状态。

内容:包括洗衣及版本号、数字状态码、状态情况

2)响应头

作用:通过服务端把响应的相关信息给客户端

内容:包括Location、server、connect、vary等

3)空行

作用:告诉客户端空行以下内容不属于响应头部信息。

4)响应报文主体

作用:用来装载着要返回给客户端的数据

内容:包括文本、html、视频或者是图片。

7、web服务器关闭HTTP连接,关闭TCP连接,web服务器显示访问的网站内容到屏幕上。

1)第一次挥手:

客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。 

2)第二次挥手:

服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 

3)第三次挥手:

服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 

4)第四次挥手:

客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

标签:baidu,流程,用户,访问,域名,DNS,服务器,com,客户端
From: https://www.cnblogs.com/zhufuzhong/p/18635498

相关文章

  • 问答论坛SEO优化:提升排名与用户互动的策略
    在数字化时代,问答论坛不仅是用户获取信息和解决问题的平台,也是企业提升品牌知名度、增加网站流量和建立用户信任的重要渠道。通过搜索引擎优化(SEO)策略,问答论坛可以在搜索结果中获得更高的排名,从而吸引更多潜在用户,增强用户互动和参与度。本文将深入探讨问答论坛的SEO优化策略,......
  • 171页PPT详解制造业采购供应链及财务管控业务流程蓝图规划
        本文详细阐述了甲方集团数字化转型采购供应链业务规划的核心内容。首先,通过全面的用户体验调研,识别业务能力提升的机会,为后续计划奠定基础。在采购物控的业务管理方面,提出了“低成本、高齐套”的材料供应愿景,旨在降本增效,提高库存周转,减少库存呆滞,提升生产供应及......
  • 从复盘到执行:在线协同工具的全流程支持
    在医疗销售领域,复盘已成为帮助团队提升业绩的重要手段。然而,如何快速、精准地完成复盘,却是许多销售经理面临的共同难题。在此背景下,在线协同文档工具逐渐成为推动复盘效率的关键工具。复盘低效的症结所在传统的销售复盘工作,通常由销售代表整理数据并汇总,销售经理进一步分析,再制......
  • Java 流程控制语句(Control Flow)
    选择意味着取舍——Miao酱程序设计中有三种流程结构,即:顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构根据判断条件,选择性地执行某段代码。有if…else和switch-case两种分支语句。循环结构根据循环条件,重复性的执行某段代码。有for、while、do......
  • 如何处理代理后台调整服务器价格后,用户前台续费价格未更新的问题?
    在使用代理平台管理服务器时,有时会遇到一个常见问题:当您在代理后台调整了服务器的价格,但用户在前台续费时,价格却没有相应更新。这种情况可能会导致费用不一致,影响用户体验和业务运营。为了确保价格调整能够正确反映在用户的续费页面上,您可以按照以下步骤进行排查和解决。首先,确认......
  • 虚拟主机访问需要输入密码,如何取消?
    您好!虚拟主机访问时需要输入密码,通常是由于开启了基本认证(HTTPBasicAuthentication)或设置了访问控制。这种设置可以保护网站免受未授权访问,但在某些情况下可能会影响用户体验。要取消这一设置,您可以按照以下步骤操作:一、检查并修改.htaccess文件登录FTP:使用FTP客户端......
  • 为什么网站访问特别卡,如何优化性能?
    您好!网站访问速度慢是一个常见但复杂的问题,可能由多种因素引起。根据您的描述,MySQL和PHP-FPM进程耗费了大量的CPU资源,这可能是导致网站卡顿的主要原因。为了提升网站的访问速度,我们可以从以下几个方面进行优化:一、数据库优化查询优化:分析慢查询日志,找出执行时间较长的......
  • 如何解决LNMP/LNMPA/LAMP环境下绑定域名时出现的跨目录文件访问限制错误?
    一、理解open_basedir的作用首先,需要明确的是,open_basedir是PHP中的一项重要安全特性,它用于限制PHP脚本只能访问指定目录内的文件,从而防止恶意代码执行时访问不应该触及的敏感区域。然而,在某些特定场景下(如您提到的绑定域名时),确实存在合法需求去访问非默认路径下的文件。因此,解决......
  • Oracle查询用户拥有所有系统权限
    SQL>descdba_sys_privs;查询对象拥有的系统权限NameNull?Type---------------------------------------------------------------------------GRANTEENOTNULLVARCHAR2(30)PRIVILEG......
  • 最新版软件著作权申请流程【2024.12】
    最近刚刚给大创的软件申请了软件著作权,在这里分享一下经验。一、软著平台上注册所有著作人都需要在中国版权保护中心上面完成注册以及实名认证,实名认证大概需要3-4个工作日。二、平台上资料的提交1.点击版权登记的软件登记,选择计算机软件著作权登记申请。2.点击我是申......