. http协议和tcp/ip 协议的关系
(1) http是应用层协议,tcp协议是传输层协议,ip协议是网络协议。
(2) IP协议主要解决网络路由和寻址问题
(3) tcp协议主要解决在IP层协议之上,如何可靠的传输数据,即接收端收到的数据包的大小和顺序,和发送端保持一致。tcp协议是可靠的面相连接的。

6.如何理解http协议是没有状态的
(1) http协议是无状态的,指的是http协议对于事务处理没有记忆功能,客户端向服务端请求完数据之后,服务端不知道客户端是什么状态。

7.什么是长连接?短连接?
http的长连接和短连接,本质上是tcp层的长连接和短连接
(1) http 1.0 默认使用短连接,就是,客户端和服务端每进行一次http操作,就建立一次连接,任务结束就中断连接。如果请求的html中有网络js和图片,则需要新建连接去取。
client发起请求--建立连接--server响应请求---发送消息--关闭连接
建立连接--数据传输--关闭连接

(2) http 1.1 默认使用长连接,在使用的http协议,在响应头会加上 Connection:keep-alive,当一个网页打开完成之后,连接不会马上关闭,再次访问这个服务时,
会继续使用这个长连接,而是在一段时间后关闭,这个时间可以再浏览器设置。
建立连接--数据传输......保持连接......数据传输--关闭连接

8.TPC短连接
当网络通信使用tcp协议时,在真正的读写操作前,需要完成3次握手,来建立连接。当读写完成时,需要四次握手来释放连接,每个连接的建立和释放都是需要资源和时间的,所以长连接比短连接
更节省资源,效率更高(RPC比http高效的原因)

9.RPC比HTTP请求快的原因
(1)http使用http协议,rpc使用tcp协议,比http少了应用层,表示层,会话层,这3层
(2)rpc使用长连接,当网络通信使用tcp协议时,在真正的读写操作前,需要完成3次握手,来建立连接。当读写完成时,需要四次握手来释放连接,每个连接的建立和释放都是需要资源和时间的,所以长连接比短连接
更节省资源,效率更高

10.长连接和短连接的优点和缺点
(1)长连接,可以省去较多的tpc建立和关闭操作,减少资源的浪费,节约时间。长连接多用于操作频繁,点对点的通讯,而且连接数不能太多。数据库的连接就是使用长连接,如果用短连接频繁通讯会造成socke错误
,而且频繁的Socket创建和销毁也是对资源的消耗比较大。

(2)短连接,短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段,web网站一般使用短连接,因为长连接对服务端来说会消耗一定资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的,对资源消耗过大

11. tcp的keep-alive和http人Keep-alive
(1) Tcp的keep-alive是j检查当前tcp是否存活,表现就是当一个连接在一段时间没有数据传输是,一方会发一个心跳包,果对方有回包则表明当前连接有效,继续监控。
这个“一段时间”可以设置。
WinHttp库的设置:
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
Sets the interval, in milliseconds, to send a keep-alive packet over the connection. The default interval is 30000 (30 seconds). The minimum interval is 15000 (15 seconds). Using WinHttpSetOption to set a value lower than 15000 will return with ERROR_INVALID_PARAMETER

(2) http的Keep-alive是让一个tcp连接活久点。在浏览器设置

http和Tcp的长连接和短连接的更多相关文章

  1. TCP同步与异步,长连接与短连接【转载】

    原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896   这是今天看到的一篇讲到T ...

  2. Http 和TCP的关系,TCP长连接和短连接有什么区别?

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

  3. 基于TCP/IP的长连接和短连接

    1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...

  4. TCP 长连接与短连接的区别

    TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的 ...

  5. TCP的长连接和短连接

    TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP. ...

  6. TCP/IP长连接和短连接

    http://www.cnblogs.com/bigwalnut/articles/2129070.html TCP/IP通信程序设计的丰富多样性 刚接触TCP/IP通信设计的人根据范例可以很快编出一 ...

  7. TCP长连接与短连接的区别

    http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,se ...

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

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

  9. TCP/IP,http,socket,长连接,短连接

    TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应 ...

  10. TCP/IP,http,socket,长连接,短连接——小结。

    来源:http://blog.chinaunix.net/uid-9622484-id-3392992.html TCP/IP是什么? TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. ...

随机推荐

  1. angular2中一种换肤实现方案

    思路:整体思路是准备多套不同主题的css样式.在anguar项目启动时,首先加载的index.html中先引入一套默认的样式.当我们页面有动作时再切换css.  可以通过url传参触发,也可以通过bu ...

  2. iOS 蓝牙(GameKit CoreBluetooth)

    利用GameKit框架实现ios设备的蓝牙通讯,导入框架:#import <GameKit/GameKit.h>  , 注意: 此框架只能用于ios设置间蓝牙通讯 如今苹果开放了接口来实现 ...

  3. 太阳地球月亮运行动画(使用@keyframes)

    闲来无事的demo <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  4. BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1524  Solved: 803[Submit][Status][Discuss] Descripti ...

  5. python基础——文件访问模式

    文件访问模式 访问模式 说明 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w 打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. a 打开一个 ...

  6. 远程桌面连接失败,提示CredSSP加密Oracel修正问题解决

    今天远程桌面的时候失败了,出现以下提示 于是上网找解决办法,经过测试,该方法是可行的. 首先,在控制台中输入regedit,打开注册表

  7. selenium webdriver 移动到某个位置,滚动到某个位置

    https://blog.csdn.net/xiaosongbk/article/details/70231564

  8. linux面试集

    shell:1.$# 和 $*之类的特殊变量 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n是一个数字,表示第几个参数.例如,第一个参数就是$1 $# 传递给脚本或 ...

  9. Laravel系列之CMS系统学习 — 角色、权限配置【1】

    一.后台Admin模块 后台管理是有管理员的,甚至超级管理员,所以在设计数据表的时候,就会有2个方案,一个方案是共用users数据表,添加is_admin,is_superAdmin字段来进行验证,或 ...

  10. C5509A启动使用定时器

    #include <stdio.h> #include <csl.h> #include <csl_pll.h> #include <csl_chip.h&g ...