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

    为什么要有三次握手:

    • 防止服务端开启无用的连接。因为网络传输是有延时的
  • 相关阅读:
    java面试第八天
    java面试第七天
    java面试第六天
    java面试第五天
    java面试第四天
    SpringMVC导出Excel
    75. Autorelease机制及释放时机
    关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
    硬件十万个为什么——运放篇(五)PCB设计技巧
    eclipse到Android Studio的项目迁移
  • 原文地址:https://www.cnblogs.com/codexlx/p/13770447.html
Copyright © 2011-2022 走看看