客户端向服务器发送请求的过程
DNS/握手挥手/地址栏输入URL会发生什么
发送请求都是通过URL来进行,所以首先会针对请求地址中的域名来进行解析,因为域名是为了方便用户访问才有的,真正的机器间的访问都通过IP来访问的,所以我们在进行请求的时候,请求地址中拥有的是域名,但是客户端在向服务端发送请求的时候,是要通过ip来进行访问的,所以就需要通过DNS解析机制来将域名解析成IP。
解析过程:
1. 1.
先从浏览器本地去查找缓存的域名对应的ip地址。
2. 2.
再考虑从计算机本地缓存文件去查找,例如hosts文件中
3. 3.
客户端会像当前城市内的DNS服务器去查找
4. 4.
客户端再向主域名服务器请求查找 .com域名服务器,.cn域名服务器
5. 5.
拿到ip之后,客户端进行缓存后,就可以发送请求。
发送http请求的时候,要经过TCP三次握手和四次挥手才能建立连接和断开连接。
三次握手:
1. 1.
客户端与服务端握手,客户端通知服务端,要与其连接了,主要是发送两个报文包:SYN = 1,SEP = X
2. 2.
服务端与客户端握手,我知道了,连吧,:SYN = 1,SEP = Y ,ACK = X+1
3. 3.
客户端与服务端握手,那我就开始连接了,SEP = Z ,ACK = Y+1
此时客户端与服务端均确认了身份,可以进行数据交互;只有三次握手后,才能确认身份,两次是不可以的。
四次挥手:
1. 1.
客户端向服务端发送信息,我的请求报文已经发送完了,准备断开了
2. 2.
服务端向客户端发送信息, 请求报文我接受完了,我也准备断开了
3. 3.
服务端向客户端发送信息,响应报文我发送完了,我这回真的要断开了
4. 4.
客户端向服务端发送信息,响应报文我收到了,这回咱断开吧
接下来就可以根据TCP连接来向客户端发送请求,来请求到页面的入口文件,然后浏览器开始对入口文件进行从上到下的解析,去构建文档流并进行渲染,再遇到script/style标签的时候,会调用JS引擎线程、渲染线程进行渲染,遇到link、script:src、img的时候会再次发送请求去请求对应的文件之后进行处理。

相关推荐HOT
更多>>
如何为Apple iOS设计动态岛?
Dynamic Island 是自 2022 年 9 月 iPhone 14 系列推出以来在 iPhone 屏幕最上方推出的新型药丸状切口。它围绕着 FaceID 传感器和前置摄像头,...详情>>
2023-02-21 17:55:40
成为UI设计师需要具备哪些技能?
如果您对将 UI 设计作为一种潜在的职业道路感兴趣,您可能想知道:对于 UI 设计师而言,最重要的技能是什么?●了解基本设计原则,例如排版和色...详情>>
2023-02-21 17:51:57
用户体验设计师做什么的?
当用户体验设计师完成用户研究分析并发现潜在问题或障碍后,他们将进入设计阶段。用户体验设计师创建流程图以鸟瞰产品的不同元素如何相互连接。...详情>>
2023-02-21 17:50:40
设计的6大要素是什么?
伟大的设计不是偶然发生的。一位伟大的设计师会战略性地选择颜色、形状和版式等东西——所有这些都会影响观众或用户如何看待和参与一件作品。 详情>>
2023-02-21 17:46:00