zoukankan      html  css  js  c++  java
  • 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

    为什么要有三次握手:

    • 防止服务端开启无用的连接。因为网络传输是有延时的
  • 相关阅读:
    LeetCode 40. Combination Sum II
    LeetCode 39. Combination Sum
    #Python学习#python虚拟环境——virtualenv
    #阿里云#云服务器部署Django(基础篇)
    驱动调试之打印
    Linux内核源码阅读记录一之分析存储在不同段中的函数调用过程
    uevent机制
    字符设备的另一种写法
    DM9000C网卡驱动程序编写与测试
    网卡驱动程序框架以及虚拟网卡驱动程序的实现
  • 原文地址:https://www.cnblogs.com/codexlx/p/13770447.html
Copyright © 2011-2022 走看看