一次完整的http请求过程

Posted Vicky沛沛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次完整的http请求过程相关的知识,希望对你有一定的参考价值。

gitbook完整版集合

一次完整的http请求过程

题目

当web浏览器输入www.baidu.com具体发生了什么?

  • DNS域名解析,得到对应的IP
  • 根据这个IP,找到对应的服务器,发起TCP三次握手
  • 建立TCP链接之后发起HTTP请求
  • 服务器响应HTTP请求,浏览器获取html代码
  • 浏览器解析html代码,并且请求html代码中的资源(css、js、图片、视频等。得到html后才能去湖区这些资源)
  • 浏览器对页面进行渲染并且呈现给用户
  • 服务器关闭TCP链接(四次挥手)
详细解析
  • 怎样进行域名解析,DNS怎样找到域名的?

    • DNS域名解析是采用递归查询的方式,过程是:先去找DNS缓存=〉缓存找不到就去找根域名服务器=〉根域名又会去找下一级,这样递归查找之后,找到了就给我们的浏览器
      • 浏览器自身DNS缓存
      • 操作系统DNS缓存
      • 路由器DNS缓存(host文件中查找)
      • 递归去各个域名服务器查找
  • 为什么HTTP要基于TCP来实现?

    • TCP是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误的时候会重传)
  • 浏览器对页面是如何进行渲染的?

    • 解析html获得dom树
    • 解析css生成cssom树
    • dom树和cssom合成渲染树
    • 边解析边渲染(布局:计算位置和尺寸;渲染:渲染样式)
    • JS单线程运行的,js困难修改dom的结构

拓展:重排(回流):修改布局;重绘:修改样式。重排一定会重绘,重绘不一定重排。

以上是关于一次完整的http请求过程的主要内容,如果未能解决你的问题,请参考以下文章

一次完整的http的请求过程与https的实现

一次完整的http请求过程

一次完整的http请求过程

一次完整的HTTP请求的大致过程(转)

一次完整的http请求过程

一次完整的http请求过程