zoukankan      html  css  js  c++  java
  • 分析完整的一个请求过程(从浏览器输入域名到页面展示背后的事情)

            DNS域名解析
            先找本地hosts文件,检查对应域名ip的关系,有则想ip地址发送请求,没有再去找DNS服务器

    • 建立TCP连接
      拿到服务器IP后,向服务器发送求求,三次握手,建立TCP连接
      简单理解三次握手:
      客户端:您好,在家不,有你快递
      服务端:在的,送来吧
      客户端:好滴,来了
    • 发送HTTP请求
      与服务器建立连接后,就可以向服务器发起请求了。具体请求内容可以在浏览器中查看
    • 服务器处理请求
      服务器收到请求后由web服务器(Apache,Nginx)处理请求,web服务器解析用户请求,知道了需要调用那些资源文件,再通过相应的这些资源文件处理用户请求和参数,并调用数据库等,然后将结果通过web服务器返回给浏览器
    • 返回响应结果
      在响应结果中都会有一个HTTP状态码,诸如我们熟知的200、404、500等
      状态码都是由三位数字和原因短语组成,大致为五类:
      1XX 信息性状态码 接收的请求正在处理
      2XX 成功状态码 请求正常处理完毕
      3XX 重定向状态码 需要附加操作以完成请求
      4XX 客户端错误状态码 服务器也无法处理的请求
      5XX 服务器错误状态码 服务器请求处理出错
    • 关闭TCP连接
      为了避免服务器与客户端双方资源占用和消耗,当双方没有请求或者响应传递时,任意一方都可以发起关闭请求,与创建TCP连接的三次握手类似,关闭TCP连接需要4次挥手
      简单比喻为:
      客户端:哥们,我这边没有数据要传了,咱们关闭连接吧
      服务端:好的,我看看我这边还有数据不
      服务端:兄弟,我这边也没数据要传给你了,咱们可以关闭连接了
      客户端:好嘞
    • 浏览器解析HTML
    • 浏览器布局渲染
  • 相关阅读:
    新增图表控件
    chrome无法登陆账号,显示操作超时的解决方案
    VC调用Delphi对象接口
    MyBatis学习-映射文件标签篇(select、resultMap)
    MyBatis学习-入门篇
    Spring 后置处理器 PropertyPlaceholderConfigurer 类(引用外部文件)
    Spring 创建 IOC 容器时加载配置文件的几种方式
    Spring的监听器ContextLoaderListener
    通用分页工具类
    单例模式的几种写法
  • 原文地址:https://www.cnblogs.com/gaosf/p/9914183.html
Copyright © 2011-2022 走看看