首页 > 其他分享 >5.HTTP和TCP

5.HTTP和TCP

时间:2024-01-15 10:35:22浏览次数:32  
标签:HTTP ACK 报文 TCP 服务端 客户端

6.1 http1.0和http1.1有什么区别。

  HTTP1.1相较于HTTP1.0增加了长连接、管道。

  • 长连接:为解决HTTP/1.0发送一次请求,建立一次TCP,因此HTTP/1.1新增了长连接,减少连接重复创建和断开
  • 管道:解决HTTP/1.0在一个TCP连接中每发送一个请求需等待一个响应的问题,HTTP/1.1新增管道,一个TCP中可发送多个请求,不必等其响应,减少整体响应时间。

6.2 TCP三次握手和四次挥手的流程,为什么断开连接要4次,如果握手只有两次,会出现什么。

TCP三次握手

  客户端和服务端双方开始都是CLOSED状态,服务端首先监听某个端口进入LISTEN状态。

  • 客户端随机初始化序号client_isn,然后将其存储在TCP的首部序号中,同时将SYN标记为1,表示SYN报文。接着客户端将SYN报文发送给服务端,表示向服务端发起连接,之后客户端进入SYN-SEND状态
  • 服务端接收到客户端的SYN报文后,随机初始化序列号server_isn然后存储在其TCP的首部序号中,然后将client_isn+1添加到其确认应答号中,同时将SYN和ACK标记为1。接着将报文发送给客户端,进入SYN-RCVD状态。
  • 客户端收到服务端的SYN-ACK报文后,返回一个确认应答号(server_isn+1)给服务端,然后将ACK标志为1。最后将ACK报文发送给服务端,这次连接客户端可携带数据,然后进入ESTABLISHED状态。
  • 服务端收到客户端的应答报文后,也进入ESTABLISHD状态。

三次握手原因无中间状态给客户端防止重复连接,造成重复连接导致的资源浪费同步双方序列号

TCP四次挥手

  • 客户端想断开连接,客户端会发送一个TCP头部的FIN控制位置为1的报文,即FIN报文,然后客户端进入FIN_WAIT1状态。
  • 服务端收到客户端的报文后,发送一个ACK,然后进入CLOSE_WAIT状态。
  • 客户端收到服务端的ACK报文后,进入FIN_WAIT2状态。
  • 等待服务端处理完数据后,发送一个FIN报文,然后进入LAST+ACK状态。
  • 客户端收到服务端的FIN报文后,回复一个ACK报文,然后进入TIME_WAIT状态。
  • 服务端收到客户端的ACK报文后,进入CLOSE状态。服务端完成连接关闭
  • 客户端经过2LSM后,自动进入CLOSE状态。客户端完成连接关闭。

四次挥手原因:服务端需要等待数据的处理和发送,且服务端的FIN报文和ACK报文是分开发送的。

6.3 TIME_WAIT和CLOSE_WAIT的区别。

  TIME_WAIT和CLOSE_WAIT都是TCP四次挥手中的状态,其中TIME_WAIT是客户端的挥手状态,CLOSE_WAIT是服务端的挥手状态。

6.4 说说你知道的几种HTTP响应码,比如200, 302, 404。

  • 2XX,表示响应数据成功,200表示服务端成功响应数据
  • 3XX表示重定向,302表示临时重定向,303表示永久重定向,304表示协商缓存重定向
  • 4XX表示客户端错误,404表示客户端请求路径错误
  • 5XX表示服务端错误

6.5 当你用浏览器打开一个链接(如:https://docs.qq.com/doc/DWEZjdlBqU3ppZWhu)的时候,计算机做了哪些工作步骤。

  URL解析、DNS解析域名、TCP传输、IP传出(计算哪个网卡发出源IP)、网络接口层计算出目标地址的MAC地址,在网卡层将在数据首部添加起始帧,在尾部添加校验和。然后将数据信号转换为电信号在电路中传输,传输到交换机时;交换机首先将电信号转化为数据信号,然后通过数据包中的校验和校验数据是否完整。如果完整则根据路由表将数据传输给路由器。

TCP/IP如何保证可靠性,说说TCP头的结构。

  TCP/IP是依靠TCP协议来保证数据的可靠性的。

TCP头包括四元组(源端口、目标端口、序列号(解决网络包乱序)、确认应答号(解决丢包问题)、首部长度、控制位、窗口大小、校验和、选项)

如何避免浏览器缓存。

如何理解HTTP协议的无状态性。

简述Http请求get和post的区别以及数据包格式。

HTTP有哪些method

简述HTTP请求的报文格式。

HTTP的长连接是什么意思。

HTTPS的加密方式是什么,讲讲整个加密解密流程。

Http和https的三次握手有什么区别。

什么是分块传送。

Session和cookie的区别。

标签:HTTP,ACK,报文,TCP,服务端,客户端
From: https://www.cnblogs.com/kzf-99/p/17964881

相关文章

  • Kong网关转发TCP协议和WebSocket协议的请求
    一、TCP协议1、修改配置文件,开启流端口vim/etc/kong/kong.confstream_listen=0.0.0.0:9000,0.0.0.0:90012、利用KongA配置tcp和websocket协议上游服务配置 路由配置:Destinations写kong网关的9000端口(只支持ip+port的形式)   二、WebSocket协议上游服务配置......
  • QTcpSocket发送存储QObject的QList
     #include<QTcpSocket>#include<QDataStream>#include<QByteArray>voidsendObjectList(QTcpSocket*socket,constQList<QObject*>&objectList){QByteArrayserializedData;QDataStreamout(&serializedData,QIODev......
  • NGINX 路由配置与参数详解(https配置、跨域配置、socket配置)
    目录一、概述二、https配置1)获取SSL证书2)安装SSL证书3)Nginx配置修改4)重新加载Nginx配置三、nginx跨域配置四、nginxsocket配置五、NGINX路由配置1)基本的URI匹配2)nginx中斜杠(/)1、location以斜杠结尾,proxy_pass不以斜杠结尾2、location不以斜杠结尾,proxy_pass......
  • 解决nginx http 429
    当Nginx作为反向代理服务器收到HTTP429TooManyRequests响应时,这通常意味着后端服务由于请求速率过高而拒绝了更多的请求。要解决这个问题,可以从以下几个方面入手:调整客户端请求频率:如果你是客户端应用的开发者,可以通过限制应用程序发出请求的速度来避免触发后端服务的限流策略......
  • 启用DoH(DNS-over HTTPS)在Windows、Android、IOS平台
    做个备忘录,记录下主力设备Win11、安卓、IOS、路由器、浏览器配置DoH(DNS-overHTTPS)的过程Windows11设置-网络和Internet-WLAN-硬件属性-DNS服务器分配Win11原生支持的DoH服务:IPv4Google:8.8.8.8and8.8.4.4Cloudflare:1.1.1.1and1.0.0.1Quad9:9.9.9.9and149.112......
  • TCP之三次握手四次挥手与UDP区别
    目录1TCP三次握手四次挥手1.1数据包说明1.1.1TCP数据包1.1.2UDP数据包1.1.3TCP和UDP差异1.1.4TCP可靠性传输机制1.2三次握手1.2.1三次握手定义1.2.2三次握手问题1.2.2.1问题引入分析1.2.2.2历史连接1.2.2.3同步双方初始序列号1.2.2.4避免资源浪费1.3四次挥手1TCP......
  • 16.TcpDump 与 WireShark 的使用
    协议分析工具 网络监听:TcpDump+WireShark代理Proxy推荐工具:手工测试charles[全平台]、安全测试burpsuite[全平台java]自动化测试:mitmproxy其他代理:fiddler[仅windows]、AnyProxy[全平台]协议客户端工具:curl、postmantcpdump 参数:-x十六进......
  • https://mp.weixin.qq.com/s/dBVwoInshAv3wMxkx9Sfvw
    优秀的Verilog/FPGA开源项目介绍(三十一)-OFDM(qq.com)OFDM介绍在电信领域,正交频分复用技术(OFDM-orthogonalfrequency-divisionmultiplexing)是一种数字传输类型,在多个载波频率上对数字数据进行编码的方法。OFDM已发展成为一种流行的数字通信方案,用于数字电视和音频广......
  • 安装npm install报错npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! net
    执行命令:npmrundev启动前端项目报如下错误,vue-cli-service是Vue一个启动的插件,需要安装D:\nodejs\npm.cmdrundev>[email protected]>vue-cli-serviceserve--open'vue-cli-service'不是内部或外部命令,也不是可运行的程序或批处理文件。Processfinishedwithe......
  • 【胖虎的逆向之路】Android自制Https证书实现双向认证
    Android自制Https证书实现双向认证1.基本概念1.1HTTP1.2HTTPS1.3加密方式1.3.1对称加密1.3.2非对称加密1.4SSL功能1.4.1客户对服务器的身份认证1.4.2服务器对客户的身份认证1.4.3建立服务器与客户之间安全的数据通道1.5CA证书2.证书生成2.1生成根证书(CA)2.2生成服务......