在浏览器中输入URL后,执行的全部过程。(一次完整的http请求过程)

整个流程如下:

  • 域名解析
  • 为了将消息从你的PC上传到服务器
  • 上.需要用到1P协议、ARP协议和0SPF协议
  • 发起TCP的3次握手
  • 建立TCP连接后发起http请求
  • 服务器响应htp请求
  • 浏览器解析htm代码,并请求html代码中的资源(如js、css、图片等)
  • 断开TCP连接
  • 浏览器对页面进行渲染呈现给用户

一、域名解析的详细内部过程

在浏览器中输入URL后,执行的全部过程。(一次完整的http请求过程)_第1张图片

例如,要查询www.baidu.com的IP地址(DNS解析url):

  1. 浏览器搜索自己的DNS缓存(维护一张域名与IP地址的对应表)

  2. 若没有,则搜索操作系统中的DNS缓存(维护一张域名与IP地址的对应表)

  3. 若没有,则搜索操作系统的hosts文件(Windows环境下,维护一张域名与IP地址的对应表,位置一般在 C:\Windows\System32\drivers\etc\hosts)

  4. 若没有,则操作系统将域名发送至 本地域名服务器- -(递归查询方式),本地域名服务器 查询自己的DNS缓存,查找成功则返回结果,否则,(以下是迭代查询方式)

    4.1 本地域名服务器 向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器的地址

    4.2 本地域名服务器 向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址

    4.3 本地域名服务器 向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址

  5. 本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来

  6. 操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来

  7. 至此,浏览器已经得到了域名对应的IP地址

二、三次握手

       三次握手的情况可以看我的博客https://blog.csdn.net/qq_21993785/article/details/80735776

三、建立TCP连接后发起http请求

           讲一下HTTP的浏览器缓存机制看我的博客:https://blog.csdn.net/qq_21993785/article/details/81188624。使用Post还是Get。

四、服务器收到请求并响应HTTP请求

1.负载均衡
         网站可能会有负载均衡设备来平均分配所有用户的请求。即对工作任务进行平衡,分
摊到多个操作单元上执行,如图片服务器,应用服务器等。
2请求处理阅读请求及它的参数和 cookies


五.浏览器解析htm代码,并请求htm代码中的资源(如js、css图片等)

        看是否是长连接。来决定是不是断开TCP连接


六.断开TCP连接

        四次挥手


七.浏览器对页面进行渲染呈现给用户
 

你可能感兴趣的:(TCP与HTTP)