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
    • 浏览器布局渲染
  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/gaosf/p/9914183.html
Copyright © 2011-2022 走看看