zoukankan      html  css  js  c++  java
  • HTTP通信传输过程详解。

    点击一个URL以后,到最终页面返回,中间都会发生什么过程。

    一、点击URL:new.qq.com

    二、首先 DNS 解析

          linux 可以用dig 域名查看ip地址服务器

          1、一个域名可能回对应多个IP地址

      2、一个IP地址也可能对应多个域名

    三、客户端与服务器建立TCP连接

      1、client-->SYN----->server

      2、client<-ACK + SYN <- server

      3、client -> ACK----->server

    四、客户端封装『请求报文』为     二进制encode后信息

    五、发送『请求报文』

    六、HTTP Server 接受 『请求报文』

    七、WSGI数据解析,将『请求报文』封装城HtttpRequest对象:WSGI Web Server Gateway Interface 服务器网关接口

               process_request

    八、Django url映射 - 对应func

        process_vies

    九、执行 view_func

      1 取出参数

      2 调用内部逻辑

      3 缓存、数据库处理

        process_template

      4 模板渲染

      5封装HttpResponse对象

        process_exception

        process_response

    十 WSGI 进行协议解析,将HttpResponse对象封装成『响应报文』

    十一 HTTP Server将『响应报文』发送给客户端

    十二 HTTP Server 关闭 TCP连接

        四次挥手

      1 client <- FIN <- server

      2 client ->ACK->server

      (等待数据接受完成)

      3 client ->FIN ->server

      4 client <-ACK<-server

    十三 客户端接受『响应报文』

    十四 解析、渲染、显示

    HTTP:建立在TCP协议之上的短连接协议。

    TCP协议是一个全双工协议

    全双工/半双工(形象比喻,一个双轨可以来回发送信息,一个单轨,一个发了,一个等待,一个轨道只能一个信号发送)

  • 相关阅读:
    Scanner类
    BufferedReader类
    打印类
    管道流
    内存操作流
    转换流——OutputStreamWriter类与InputStreamReader类
    Java字节流与字符流基本操作
    RandomAccessFile类
    File类
    Timer类和TimerTask类
  • 原文地址:https://www.cnblogs.com/sidianok/p/11565613.html
Copyright © 2011-2022 走看看