什么是http?当咱们输入网址到页面渲染,计算机和浏览器都作了什么呢?

  http是一种协议,计算机之间要遵照这个协议才能够相互通讯。后端

  那http在使用场景中的流程是怎样的呢?浏览器

  一、http客户端发起请求,建立端口,通常是80默认端口缓存

  二、http服务器在端口监听客户端请求服务器

  三、http服务器向客户端返回状态和内容操作系统

  当咱们输入网址到页面渲染,计算机和浏览器都作了什么呢?图片

  以Chrome浏览器为例:资源

  一、Chrome搜索自身的DNS缓存,看自身的缓存中有没有好比123.com这个域名已经缓存的IP地址,这个缓存的时间大概只有1分钟。若是有缓存,则看有没过时,若是没看有过时,这个解析就结束了。域名

  二、Chrome搜索操做系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)服务器端

  三、Chrome读取本地的HOSTS文件 C:\Windows\System32\drivers\etc\hosts渲染

  四、浏览器发起一个DNS的一个系统调用(通常是宽带运营商提供的)

    4.1宽带运营商服务器查看自己缓存

    4.2运营商服务器发起一个迭代DNS解析的请求

      4.2.1 运营商服务器把结果返回操做系统内核同时缓存起来

      4.2.2操做系统内核把结果返回浏览器

      4.2.3最终浏览器拿到了www.123.com对应的IP地址

  五、浏览器得到域名对应的IP地址后,发起HTTP“三次握手”(TCP链接请求)

    5.1 客户端--->服务器 :是否能够链接

    5.2 服务器--->客户端:能够链接

    5.3 客户端--->服务器:OK,已链接

  六、TCP/IP链接创建起来后,浏览器就能够向服务器发送HTTP请求了

  七、服务器端接受到了这个请求,根据路径参数,通过后端的一些处理以后,把处理后的结果数据返回给浏览器,若是是123.com的页面就会把完整的HTML页面代码返回给浏览器

  八、浏览器拿到了123.com的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们一样也是一个个http请求,都须要通过上面的七个步骤

  九、浏览器根据拿到的资源对页面进行渲染,最后把一个完整的页面呈现给了用户

  真实的HTTP请求远比以上复杂,有兴趣的能够详细了解。

相关文章
相关标签/搜索