一、基本概念

1、TCP连接

手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

建立起一个TCP连接需要经过“三次握手”:

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连 接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写 了,就是服务器和客户端交互,最终确定断开)

2、HTTP连接

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的 做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客 户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

二 区别

1  TCP对应于传输层,HTTP对应于应用层,从本质上来说,二者没有可比性。

2  Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。
3  HTTP连接:http协议即超文本传送协议,是web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP最显著的特点时客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。

①:在HTTP1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

②:HTTP1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发下一个请求。
4  HTTP在每次请求结束后都会主动释放连接,所以为了保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法时客户端每隔一段时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端在线,若服务器长时间收不到客户端的请求,则认为下线,若客户端长时间不收到服务器的回复,则认为网络断开。

5  TCP是底层协议,定义的是数据传输和连接方式的规范。

HTTP是应用层协议,定义的是传输数据的内容的规范。

HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP就一定支持TCP。

http和tcp区别相关推荐

  1. ping icmp和tcp区别:

    ping icmp和tcp区别:tcpdump -i eth1 '((tcp) and ( host 2.2.2.2)))'node1:/root/test#cat ping.pl use Net:: ...

  2. UDP与TCP区别以及长、短连接

    长连接 也叫持久连接,在TCP层握手成功后,不立即断开连接,并在此连接的基础上进行多次消息(包括心跳)交互,直至连接的任意一方(客户端OR服务端)主动断开连接,此过程称为一次完整的长连接.HTTP1. ...

  3. android udp和tcp区别,UDP模式与TCP模式的区别

    Cesium原理篇:Material Shader 首先,在本文开始前,我们先普及一下材质的概念,这里推荐材质,普及材质的内容都是截取自该网站,我觉得他写的已经够好了.在开始普及概念前,推荐一首我此刻 ...

  4. TCP/IP系列——长连接与短连接的区别

    1 什么是长连接和短连接 三次握手和四次挥手 TCP区别于UDP最重要的特点是TCP必须建立在可靠的连接之上,连接的建立和释放就是握手和挥手的过程. 三次握手为连接的建立过程,握手失败则连接建立失败. ...

  5. 【网络编程】TCP/UDP/HTTP的区别和联系

    一.参考资料 TCP/UDP/HTTP的区别和联系_唯爱丶卡卡西的博客-CSDN博客 HTTP.UDP.TCP区别 - 知乎

  6. Tcp头部字段,与ip层关系,与udp区别,使用场景,Tcp状态

    udp和tcp区别?为什么快,分清楚目的和手段 tcp是传输控制协议,是面向连接的协议,发送数据前需要先在发送方和接收方之间建立连接,tcp提供可靠的服务,传输的数据无差错.不重复.不丢失.且按序到达 ...

  7. java 发送tcp_Java TCP发送与接收

    IP地址?端口号?主机名? 什么是Socket? 什么是UDP? 什么是TCP? UDP和TCP区别? 以上问题请自行百度,有标准解释,此处不再赘述,直接上干货! 实例: 发送端: public cl ...

  8. tcp前4字节消息长度_网络基础篇之TCP

    ​网络分层 什么是 TCP TCP 是面向连接的.可靠的.基于字节流的传输层通信协议. - 面向连接:通过三次握手建立一对一的连接( UDP 协议 可以一个主机同时向多个主机发送消息,即一对多): - ...

  9. Java TCP发送与接收

    IP地址?端口号?主机名? 什么是Socket? 什么是UDP? 什么是TCP? UDP和TCP区别? 以上问题请自行百度,有标准解释,此处不再赘述,直接上干货! 实例: 发送端: public cl ...

最新文章

  1. 软件工程个人最终总结
  2. JDK容器学习之ArrayList:底层存储和动态扩容
  3. python数据写入到excel不同sheet_Python3 pandas库 (32) 将数据写入Excel多个sheet
  4. IOS学习笔记二十一(NSDictionary、NSMutableDictionary)
  5. html文字粒子效果简陋,5个很棒的CSS3文本粒子动画特效
  6. array_fill_PHP array_fill()函数与示例
  7. 苹果匠艺:乔布斯身边的天才
  8. 逻辑表达式在c语言中作用,C语言中逻辑表达式与关系表达式的值
  9. bash 脚本编程 教程
  10. D2 日报 2019年 03月 13日
  11. 微分方程和线性代数(分离变量法开始)
  12. 【哈工大SCIR】多模态情感分析简述
  13. 轮播一页显示多少条数据
  14. python做exe需要注意32位和64位的问题
  15. 园区网组网(一)OSPF+PAT上网
  16. 印章识别--笛卡尔坐标系转换成极坐标系
  17. fcpx如何清除缓存?Final Cut Pro X 清除缓存方法
  18. overhit用户服务器维护,overhit新手引导任务小技巧
  19. 智能电视应用与移动应用开发的比较
  20. 数据开放共享的重要性_为什么今天开放数据很重要

热门文章

  1. torch.mul、matmul、mm、bmm的区别
  2. 如何确认RNA的质量?附RNA提取实验方法技巧分析
  3. Ubuntu怎么知道去哪找安装软件?
  4. 【社交网络分析】映射主题网络:从两极分化的人群到社区集群(一)
  5. 基于ICP算法计算点集之间的变换矩阵(旋转、平移)
  6. 【C语言】用回调函数实现冒泡排序
  7. 烟沙浮生 | 曾几何时,还是游吟长安的醉客 1
  8. 抖音CEO张一鸣:大学四年收获及工作感悟
  9. 获取海康摄像机/录像机rtsp视频流地址格式
  10. 获取海康摄像机的rtsp流,并用VLC测试