首先,根据url得到ip地址
浏览器对这个URL的缓存进行查询,先在浏览器缓存中查询,没有找到记录后再在本机hosts文件中查询,仍然没有找到,再去ISP电信服务商那里查询,最后就来到了万维网DNS域名服务系统,开始进行域名的递归搜索,首先搜索一级域名,然后是二级等等,直到找到相关记录,把该域名解析成ip地址,通过ip地址找到服务器。
其次,客户端和服务器建立连接
找到服务器后,告诉服务器要进行资源的请求,这其中又涉及到http协议的内容,http协议是一个无状态,无连接的协议,全称是超文本传输协议,无状态指通信之间不会存储对方的任何内容,无连接指,一次数据传输后后,不能持续连接状态进行资源的互相传递,这就特别像是打电话的过程,无状态是指,没有来电显示的电话,无连接是指,某方给某方传了一条信息后立刻终止连接。
不过现在广泛应用的http1.1,2.0已经支持了新的技术,长连接。
知道了http协议,客户端和服务器可以相互进行通信了,我们便要知道,服务器和浏览器间传输遵从的协议,TCP协议,客户端和服务器建立连接的过程,这就需要TCP/IP的三次握手和四次挥手的过程。
这里,题主搜了一篇自以为总结的不错的博文TCP/UDP详解
三次握手四次挥手
之后,浏览器就可以很愉快地把请求头发送给服务器了
这里又牵扯到请求头的一些知识点,请求头是在浏览器端由浏览器主动发出的一些代码,在请求头里,浏览器把自己的版本信息,请求的url,协议的版本号,cookie等信息随着请求头,一并发到服务器端,在chrome浏览器的代码调试里我们可以找到请求头的代码。
服务器在收到请求头之后,便返回一个响应头,其中有传输内容的编码类型,时间,返回的cookie信息等。随之返回的是从浏览器端请求的html主页面(一般是index.html),浏览器拿到这个页面后,浏览器引擎便开始对这个页面进行从上到下的依次解析。每需要一个资源内容,比如css,js,图片,都需要再次进行以上的过程进行资源的请求。
接着,我们再来介绍一下cookies
由于http是无状态协议,导致服务器和浏览器的传输不能保存两者之间的状态,但是浏览器又会记录到曾经访问过的一些网站信息。这就需要浏览器的本地存储机制。
浏览器的本地存储有几种方式,cookies,localstorage,sessionstorage.
这里我们可以再扩展一下知识,这三者的区别?
localstorage和sessionstorage只能用于浏览器本地存储,而cookies除了浏览器端之外也可以在服务器存储