用户访问网站流程图文解析

在这里插入图片描述

分为6个阶段

  1. 域名解析过程
    TTL生命周期很重要,最常见的是60分钟,到期之后,才会从很域名服务器进行解析,如果设置很短,那么就会一致解析,增加服务器的压力。

  2. 建立TCP连接

  3. 发送http请求报文

4.集群架构内部的访问流程

5.http响应报文流程
http1.1有一个持久连接, 你访问一个网页,看到的是一个网页,器使他访问了很多资源,他所历经的http请求和响应不只是一次,他每次都会在http连接的基础之上,保证更加的高效,持久连接超时之后,才进行tcp断开。
6. 断开TCP连接状态

1.域名解析过程

在这里插入图片描述

ps:解析生命周期TTL(60分钟标准),不到时间 ,我们修改了是不会生效的,最大可以设置为1秒(阿里云)

DNS两个服务器,,一个不能解析,另一个也不能,只是宕机后才会使用。因为他们最终查询都是通过递归和迭代,其原理是一样的。所以第一个解析不到,,第二个也解析不到。

递归:就是你给他一个请求,它会返回最终的一个结果;

迭代:你给他一个请求,他不会给你一个最终的结果,他会给你一个间接的结果,通过这个间接的结果,在进行分发获取,最终可以获取到结果。

DNS解析端口:53 UDP

2.TCP三次握手

在这里插入图片描述

  1. 最开始,客户端和服务端都是CLOSED状态;
  2. 服务器端通过创建socket,开始监听,状态变为LISTEN;
  3. socket五元组:源ip,源port,协议(TCP/UDP),目标IP,目标port
  4. 客户端向服务器端发送SYN,请求建立连接,发送完毕之后状态变为SYN_SENT状态;
  5. 服务端收到SYN请求后会向客户端发送SYN和ACK,确认建立连接并向客户端请求建立连接,发送完之后自身状态变为SYN_RECV状态;
  6. 客户端收到服务端发来的SYN和ACK之后会想服务端回复一个ACK,回复完后自身状态便进入ESTABLISHED状态;,
  7. 服务端收到客户端发来的ACK之后,也进入ESTABLISHED状态。。自此,TCP三次握手完成,连接建立。。

3.发送HTTP请求报文

1.概览
这里所讲的www服务请求过程就是 http请求过程。客户端向服务器端发送http请求报文,请求相应的资源。请求报文包含请求行、请求头、空行和请求报文主体四个部分。·

2.请求行.
​ 请求行中主要包含了客户端使用什么协议版木,对什么资源,要做什么。具体指的就是请求方法、URL和http 协议版本。·​ 常见的请求方法有GET、HEAD和 POST。GET表示客户端请求资源,服务器返回指定资源。HEAD表示客户端只请求http相应报文中的请求头信息,也称为 http首部信息。POST表示将客户端的数据提交到服务器端,例如注册用户后的提交。,​ URL (Uniform Resource Location),中文称为统一资源定位符,也就是我们平时所说的网址。在请求行中特指域名之后的资源地址,例如/index.html。v​ http (HyperText Transfer Protocol),中文称为超文本传输协议,它属于应用层协议,也是互联网中最长使用的协议。http协议的版木主要有0.9、1.0和 1.1,其中 1.0是第一个得到广泛使用的版木,1.1为目前最长使用的版木。(增加了很多状态码)在高并发的情况下 剋保持连接,根据场景。

3.请求头
请求头的数据由键、值组成,以冒号分隔。主要作用是为了告知服务端请求资源的辅助信息,这些辅助信息主要包含媒体类型、语言类型、支持压缩、客户端类型(客户端(iphone 安卓)浏览器版木和操作系统版木)和网站域名(HOST(一个服务有很多虚拟主机))。

4.空行。
空行主要就是为了告知服务器端请求头部信息到这里就结束了,接下来就是请求主体信息。v·4.5请求

5.报文主体
请求报文主体中包含了客户端要发送给服务端的数据信息,只有使用post方法时才会存在主体信息,get方法是没有的,因为post方法才会向服务器提交数据。·

4.集群内部访问流程

在这里插入图片描述

5.响应报文

1.概览
当反向代理服务器从后端服务器接受到客户端请求的资源后,将向客户端浏览器发起响应报文。响应报文主要包含起始行、响应头部、空行和相应报文主体四部贷。。

2.起始行,
起始行中主要包含了http协议版木、数字状态码和状态信息,其中常见的状态码有:。

200 ok ,表示服务器成功返回网页信息;v
301 Moved Permanently ,表示网页被永久跳转;,
304 客户端多次请求相同的资源,如果服务器资源没有更新,就是304,响应报文主题里是不会含有信息的。使用客户端本地缓存的记录
403 Forbidden ,表示请求的资源被禁止访问,一般为权限问题;,
404 Not Found ,表示客户端请求的资源服务器上不存在;v
500 Internmal Server Error ,表示服务器内部错误,具体的原因可能有很多,比如开启了SELinux;
502 Bad Gateway ,表示代理服务器联系不上后端的静态服务器;·
503 Service Unavailable ,表示后端静态服务器无法提供服务,但可以联系上,即7层down;
504 Gateway Timeout ,表示后端服务器没能在指定的时间内相应代理服务器。·
3.响应头部
响应头部和请求头部信息基木类似,也是以冒号分隔键、值的方式。常见的有内容类型、服务器版木、持久链接等信息。

4 响应报文主休,
简单来说,响应报文主体中的数据就是返回给客户端的数据。例如,图片、视频、文木等。

在浏览器中能看到的内容;

6.TCP四次挥手

在这里插入图片描述
当客户端接受到服务器端发来的响应报文后,会在持久链接超时后断开TCP连接,即进行TCP四次挥手。具体步骤如下:。

  1. 在进行TCP 四次挥手之前,服务端和客户端都处于ESTABLISHED状态;
  2. 客户端向服务端发送FIN,请求断开连接,发送之后自身状态变为FIN_WAIT1;
  3. 服务端接受到客户端发来的FIN后向客户端回应ACK,自生状态变为CLOSE_WAIT;
  4. 客户端接受到服务端发来的ACK之后,状态进入FIN_WAIT2;
  5. 此时连接已经断开了一半,服务器端若还有数据没有发送完毕还会继续发送;
  6. 当服务器端向客户端发送完毕数据之后,会像客户端发送FIN,请求断开连接,进入LAST_ACK状态;,
  7. 客户端接受到服务端发来的FIN后向服务端发送ACK,确认断开连接,状态变为TIME_WAIT
  8. 服务端收到客户端发来的ACK之后会直接进入CLOSED状态;·
  9. 客户端会在2MSL(一般为1分钟)之后进入CLOSED状态;, 2MSL即两倍的MSL,TCP的TIME_WAIT状态也称为2MSL等待状态,

其中,客户端向服务器端发送FIN之后没有收到ACK,而是收到FIN报文,就会由FIN_WAIT1状态进入CLOSNG状态,然后向服务器端发送ACK确认断开连接,自身进入TIME_WAIT状态,并在2MSL之后进入CLOSED状态

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生解决方案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值