用户访问网站的完整流程

@浏览器访问网页的流程

用户访问网站的完整流程

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

文章目录

一、DNS的介绍以及原理

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

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

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

一、DNS的介绍及解析原理**

1、什么是DNS:

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

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缓存和hosts文件中。

#不查DNS,读取缓存

  • ·浏览器中的缓存:对于Chrome,缓存查看地址为:chrome://net-internals/#dns
  • ·本地hosts文件:以Linux为例,hosts文件所在路径为:/etc/hosts。所以有一种翻墙的方式就是修改hosts文件避免GFW对DNS解析的干扰,直接访问真正IP地址,但已经不能完全生效因为GFW还有根据IP过滤的机制。

二、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 - 没有任何连接状态;

建立HTTPS、TCP连接

确定发送目标,拿到IP之后,还需要拿到那台服务器的MAC地址才行,在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。所以根据ARP(根据IP地址获取物理地址的一个TCP/IP协议)获取到MAC地址之后保存到本地ARP缓存之后与目标主机准备开始通信。

3、TCP三次握手

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

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。

在这里插入图片描述
为什么一定是三次握手?

在这里插入图片描述

  • 第一次与第二次握手完成意味着:A能发送请求到B,并且B能解析A的请求。
  • 第二次与第三次握手完成意味着:A能解析B的请求,并且B能发送请求到A。

这样就保证了A与B之间既能相互发送请求也能相互接收解析请求。同时避免了因为网络延迟产生的重复连接问题,比如A发送一次连接请求但网络延迟导致这次请求是在A重发连接请求并完成与B通信之后的,有三次握手的话,B返回的建立请求A就不会理睬了。

4、四次挥手过程:

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

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

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

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

三、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 请求数据中,以名称/值的形式出现,可以传输大量数据;

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

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。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IETM(Interactive Electronic Technical Manual)是一种交互式电子技术手册,下面是IETM数据制作的主要流程: 1. 需求分析:首先,根据用户的需求,分析手册的要求和目标。确定手册的内容范围、结构和功能等。 2. 数据收集:收集相关的技术资料和数据,如产品规格、设计图纸、技术制图、操作程序等。同时,也需要协调和搜集各种图像、视频和其他多媒体素材。 3. 结构规划:根据需求和收集到的数据,对手册进行结构规划。确定章节、子章节和页面的组织结构,以及章节内的内容安排和链接。 4. 内容编写:根据结构规划,撰写手册的内容。内容应该简明扼要、清晰易懂,以方便用户查找和理解。 5. 多媒体制作:根据需要,制作相关的图像、视频和其他多媒体素材。这些多媒体素材可以增强手册的可视化效果,提高用户的理解能力。 6. 样式设计:设计手册的页面样式和布局。考虑到用户的阅读体验,选择合适的字体、颜色和排版方式,以及添加必要的图标和链接等。 7. 软件开发:使用专门的IETM制作软件,将手册的内容、多媒体素材和样式进行整合。同时,添加全局导航和搜索功能,使用户能够快速定位和查找所需信息。 8. 质量检查:对制作完成的IETM进行质量检查。检查内容的准确性、完整性和一致性,确保符合用户的需求和预期。 9. 发布和交付:最后,将制作完成的IETM进行发布和交付。可以使用在线平台或离线方式提供给用户使用,以便他们随时随地访问和阅读手册。 以上是IETM数据制作的主要流程,通过这些步骤可以保证制作出高质量、易于使用的IETM手册,满足用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值