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


            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
    • 浏览器布局渲染
  • 相关阅读:
    Qt学习之系列[9] – QCoreApplication:processEvents()可能会引起递归,导致栈溢出崩溃
    Qt中利用QTime类来控制时间,这里简单介绍一下QTime的成员函数的用法:
    获取输入设备的vid和pid
    QProcess 进程类—调用外部程序
    Q_INVOKABLE与invokeMethod用法全解
    QML插件扩展2(基于C++的插件扩展)
    leetcode第一刷_Word Search
    设计模式之抽象工厂模式
    Python Random随机数
    【X240 QQ视频对方听不到声音】解决方法
  • 原文地址:https://www.cnblogs.com/gaosf/p/9914183.html
Copyright © 2020-2023  润新知