HTTP与TCP的区别和联系
2023-09-14 09:05:30 时间
TCP/IP四层模型,如下图所示。TCP是属于网络分层中的运输层(有的书也翻译为传输层),因为OSI分为7层,感觉太麻烦了,所以分为四层就好了,简单。
TCP连接
建立起一个TCP连接需要经过“三次握手”:
第一次连接:客户端主动向服务端发送syn(syn=x)数据包,自己进入syn_send状态,等待服务端的响应。
第二次握手:服务端接受到了来自客户端的syn数据包,服务端向客户端发送ack(ack=x+1)和自己的syn(syn=y)数据包,自己进入到syn_recv状态。
第三次握手:客户端接受到来自服务端的ack和syn数据包,客户端再向服务端发送ack(ack=y+1)数据包,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
TCP三次握手如图:
本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓
HTTP连接
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
- 在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
- 在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
相关文章
- 如何优雅记录 HTTP 请求/ 响应数据?
- LiveNVR监控流媒体Onvif/RTSP功能-RTSP/RTMP/HLS/HTTP-FLV视频文件流转成GB28181级联至海康宇视大华等第三方国标平台政务
- HTTP/3发布了,我们来谈谈HTTP/3
- 什么是 WebSocket,它与 HTTP 有何不同?
- Go HTTP 编程 | 01 - 使用 http 包创建 Web 服务器
- TCP和UDP协议的区别_tcp和ip是什么意思
- TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?
- 计算机网络 — HTTP协议 和 HTTPS[通俗易懂]
- http和tcp的区别和联系_udp协议和tcp协议的区别
- TCP三次握手图_tcp为什么三次握手
- 【Swoole系列2.2】Http、TCP、UDP服务
- 学习下meta标签http-equiv=Content-Security-Policy的属性及其作用吧
- 【Node.js】HTTP协议、HTTP的请求报文和响应报文
- TCP/IP、HTTP、Socket之间的区别和联系
- HTTP - HTTP2 面试题
- tcp心跳包 - python TCP服务器v1.3 - 服务器抗压测试及关闭套接字处理
- HTTP协议知识体系核心重点梳理
- 如何使用GoReplay实时捕捉和分析HTTP流量
- 使用 Spring Security 进行基本的 HTTP 认证和授权(二)
- ORA-29268: HTTP client error string ORACLE 报错 故障修复 远程处理
- 端口Linux查看HTTP端口:一步一步指南(linux查看http)
- 服务Linux 下监控HTTP服务的方法(linux监控http)
- Linux搭建HTTP代理实现网络自由访问(linux搭建http代理)
- 数据Linux系统如何使用TCP发送数据(linux发送tcp)
- 使用 gorilla/mux 进行 HTTP 请求路由和验证
- Linux TCP 流量超时排查(linux tcp 超时)
- TCP与Redis两种不同技术的比较(tcp和redis区别)
- 使用TCP连接Redis体验快速便捷(redis连接是tcp)
- AspWinHttp.WinHttpRequest.5.1对象使用详解伪造HTTP头信息
- node.js中的http.response.removeHeader方法使用说明