用户访问网站的原理及流程

打开浏览器输入网址回车,到看到页面的过程
大纲:
1、用户访问网站流程框架
2、DNS解析原理 *****
3、tcp/ip三次握手原理 *****
4、http协议原理(www服务的请求过程)请求报文细节!
5、大规模网站集群架构细节。
6、http协议原理(www服务的响应过程)响应报文细节!
7、tcp/ip四次挥手过程原理 *****

主要有两大步骤:

第一,将域名解析成ip的过程

首先,了解DNS解析的过程,本地缓存和/etc/hosts-->本地服务器-->根服务器-->相应的服务器解析

第二,通过ip找到网站服务器,请求打开具体的网页,服务器响应请求,客户端浏览器收到响应报文后,渲染html文档,最终得到我们看到的网页页面。

1) 通过dns解析之后,拿到了ip,就可以通过ip向服务器发送http请求了,发生http请求之前,还会进行tcp的三次握手。

tcp的三次握手是:
客户端首先向服务器发送一个带有SYN标识和一个seq的随机数,
服务端收到后,需要给客户端回应一个ack,ack的值就是刚才的seq随机数的值+1,在回应包里,还包含一个SYN的标识和一个seq随机数。
客户端收到服务端发过来的回应包之后,再给服务端发送一个ack,ack的值就是刚才服务端发过来的seq的值+1。
上面三步完成之后,三次握手就完成了,下面就可以开始传数据了。

2)http的请求报文,主要包括,请求行,请求头部,空行,请求主体

请求行又包括,请求方法,url,协议版本,请求方法主要有GET、HEAD、POST、PUT、DELETE、MOVE,url就是统一资源定位符,通过这个能在服务器上找到唯一的网页资源,协议版本

请求头部,请求头部主要有媒体类型,语言类型、支持压缩、客户端类型、主机名等,媒体类型主要有文本文件,图片文件,视频文件等,语言类型就是告诉服务器客户端的接受的语言,支持压缩的话,可以节省带宽,客户端类型,会显示客户端浏览器的版本信息,操作系统信息等空行,代表请求头部的结束,也代表着请求主体的开始
请求报文主体,只有使用POST提交表单的时候,才有
对应的,服务器收到请求报文之后,就会给出响应报文

3)响应报文主要包含起始行、响应头部、空行、响应报文主体

起始行一般包含http版本号,数字状态码,状态情况
而数字状态码,常见有以下几种
200 代表ok
301 永久跳转
403 没权限
404 没有这个文件
500 未知的错误
502 网关错误
503 服务器超载,停机维护
504 网关超时

4)断开与服务器的连接

首先客户端会发送一个带有FIN标识和一个seq随机数,
服务端收到之后,会回应一个ack,ack的值等于刚才的seq的值+1,发送之后,
服务器会再发一个包,这个包里面也带有FIN标识和一个seq随机数,
客户端收到之后,回应一个ack,ack的值等于刚才的seq值+1,
以上完成之后,服务器和客户端的4次挥手就完成了!

5)最终,访问网站的过程就完成了!

发布了61 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/wq962464/article/details/86935231