• HTTP三次握手


    • 在客户端和服务器之间进行HTTP的发送和请求的过程中,需要创建一个TCP connection的东西。
    • 因为HTTP不存在连接这个概念的,只有请求和响应这个概念,请求和响应都是数据包,需要经过一个传输的通道的,这个传输的通道就在TCP里面创建了一个从客户端发起和服务端接收的这样一个连接,这个连接可以一直保持在这里,http请求就是在这个连接的基础上来发送的。因此在一个TCP连接上就可以发送多个HTTP请求。
    • 在HTTP1.0中,是在创建http请求的时候就创建TCP连接,请求发送过去服务器响应以后TCP连接就关闭了。
    • 在HTTP1.1中,可以声明这个连接可以一直保持在那里,就是第一个请求发送以后这个连接不关闭,后续HTTP请求可以继续使用这个连接。
    • 因为TCP连接在创建的过程中是有三次握手这么一个消耗的。
    • 在HTTP2.0里面,TCP连接中的HTTP请求是可以并发的,即一个用户向一个服务器发起一个网络请求的时候,只需要一个TCP连接。

    1.三次握手

    • 客户端发起一个创建连接的数据包的请求。
      • SYN:标志位。表示这是一个创建请求的数据包
      • Seq:数字,一般为1
    • 服务端接收到这个数据包。就会开启一个TCP socket的端口,端口开启以后返回给客户端
      • SYN:标志位。
      • ACK:客户端的SYN+1。
      • Seq:服务端的Seq
    • 客户端拿到了。继续返回
      • ACK
      • Seq

    为什么要有三次握手:

    • 防止服务端开启无用的连接。因为网络传输是有延时的
  • 相关阅读:
    Octet string 解析
    c#之process类相关整理
    C# Process.Start()方法详解(转)
    c语言字符串比较函数strcmp
    C# 启动EXE文件及带启动参数EXE
    C语言中两个相等的char值比较 结果为false
    C语言strcmp()函数:比较字符串(区分大小写)
    char数组与char指针
    (转)在.net中序列化读写xml方法的总结
    PHP实现站点pv,uv统计(三)
  • 原文地址:https://www.cnblogs.com/codexlx/p/13770447.html
Copyright © 2020-2023  润新知