自学内容网 自学内容网

URL访问网址的全过程

前言

当我们通过一个网址连接输入到浏览器中,此时会有哪些步骤呢?

过程

大致有这几个流程
1:DNS解析,得到IP地址
2:浏览器根据IP地址,访问服务器,建立TCP连接
3:建立完TCP连接后,浏览器向服务器发送http请求
4:服务器返回http响应给浏览器
5:浏览器根据响应渲染页面呈现给用户
6:浏览器关闭TCP连接

1、DNS解析

浏览器得到是一个域名,需要把这个域名转化成IP地址才能找到服务器。DNS解析就是将域名转化为IP地址的过程。
解析的过程总的来说,是先在本地缓存里寻找域名对应的IP地址,没有找到就去域服务器递归寻找,找到后返回给浏览器并存到本地缓存

具体过程

①先在浏览器缓存里寻找DNS记录。谷歌浏览器能够缓存1000条DNS记录,缓存的时间是1分钟
②接着在host文件和系统缓存里寻找。
③本地缓存都没有的话向域服务器发送请求,没找到的话递归到下一级的域服务器继续查找。直到找到返回

2、建立TCP连接

得到ip地址后,浏览器通过ip地址找到服务器,并通过三次握手建立tcp连接。

TCP报文格式

三次连接的详细过程此处不做赘述

过程图:

3、浏览器发送Http请求

建立完TCP连接后,浏览器就可以向服务器发送Http请求了。
一个Http请求包括请求行,请求报头,请求文

Http报文格式

请求行:包括 请求方法 请求地址 Http版本协议

请求方法:

GET,POST,PUT,DELETE,HEAD,OPTION,SPATCH,TRACE

常用的是

GET(获取一个完整的资源)

POST(提交一个表单)

PUT(上传一个文件)

DELETE(删除)

4、服务器返回Http响应

服务器收到浏览器发送的Http请求,进行处理,然后返回http响应给浏览器

Http响应由状态行,响应头部,响应数据构成

状态行包括状态码,http协议版本

常见的状态码

200 客户端请求成功

403 服务器拒绝执行此请求

404 请求资源不存在,输入了错误的URL

500 服务器发生不可预期的错误

503 服务器暂时的无法处理客户端的请求。一段时间后可能恢复正常

5、浏览器根据响应进行解析渲染,呈现给用户

返回回来的响应可能有Html,css,js等等。

可能会再去发送http请求去把其他资源拿回来。一般来说,访问一个页面,页面最终呈现在用户面前,会需要经历多次的http请求。

浏览器根据响应回来的资源进行解析渲染。如果是js文件那么会用js的解析器进行解析,如果是其他语言其他的文件,那么也会用对应的方式进行解析

6、浏览器关闭TCP连接

Connection: keep-alive

在早期http1.0版本里,每创建一个http请求都需要创建tcp连接。这就导致tcp连接每次都要创建,关闭。性能十分低下。为此,在请求头中引入Connection: keep-alive。意在告诉服务端完成本次http请求后不要关闭tcp连接,直到空闲时间超过keep-alive(超时时间)。在1.1版本中,默认是Connection: keep-alive。

四次挥手关闭TCP连接

浏览器通过四次挥手关闭TCP连接,过程如下


原文地址:https://blog.csdn.net/Tomkruse11/article/details/144308716

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!