http、https,及 TCP 、UDP |
您所在的位置:网站首页 › udp和tcp传输速度 › http、https,及 TCP 、UDP |
http 是无连接、无状态的超文本传输协议,https 是连接、有状态、安全的超文本加密传输协议。它们不一样在于是否有状态,有着缓存头部信息,并且tcp握手连接之后还需要进行 TLS\SSL 进行加密连接,需要向 CA 申请数据证书来验证身份。 TCP 是面向连接、字节、可靠的传输协议,本着一对一确定连接上再进行传输,有着拥堵、流量、的控制,适用于能够确保数据安全、完整的到达,文件的传输场景; UDP 是面向无连接、报文的传输协议,本着可以一对一、一对多、多对多进行传输,根据目标方的 IP、端口就可以传输数据,不需要建立连接,只负责按时传输数据,不考虑丢包问题,适用于及时传输数据,如直播、监控场景。 http 和 https 有什么区别呢安全性、连接方式、端口、CA 证书 http http 是超文本传输协议,是一个无状态、应用层的协议,基于 TCP/IP 协议传输数据。 无状态,对于事务处理没有记忆能力,每次请求都是独立的,执行情况与先前的请求不受影响。应用为了有状态,给 http 加了 cookie 和 session 机制,让使用 http 的应用也能有状态,但是 http 还是无状态的 HTTP 原理: ① 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过 TCP 来完成的,一般 TCP 连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URI)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。 ② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。 http 的缺点: 因为 http 采取铭文方式发送数据,会导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题, 请求和响应不会验证通信方的身份,可能会遭受伪装进行欺骗操作https https 是在 http 基础上添加 SSL/TLS 进行可加密传输、身份认证的网络协议,需要向 CA 申请数据证书,来保证服务器的身份是可信的。 SSL(安全套接字层)/TLS(传输层安全协议),SSL 最先出现,在大规模应用后,对 SSL 进行升级、规范化,变成 TLS;主要依赖于:对称加密、非对称加密、散列函数等三类基本算法。 CA 数据证书,数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上 HTTPS的工作原理 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。 客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。 (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。 (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。 (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。 (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。 (5)Web服务器利用自己的私钥解密出会话密钥。 https 的缺点: SSL、CA 证书申请需要交费,功能越强大的证书费用越高 握手阶段比较费时,因为还需要进行 SSL 的握手连接,会使页面加载时间延长 加密范围比较有限,在黑客攻击、服务器劫持等方面起不到什么作用,可以控制 CA 证书的情况下,中间人攻击一样可行参考链接 TCP 和 UDP 的区别TCP安全、可靠、面向连接,但是传输速度慢。UDP不安全、不可靠、面向非连接,但是传输速度快 TCP 面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。 仅支持单播传输,每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。 面向字节流,TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。 可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。 提供拥塞控制,当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞 UDP 面向无连接,UDP是一个非连接的协议,传输数据之前,源端和终端不建立连接,当它想传送时,就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 有单播,多播,广播的功能,由于传输数据不建立连接,因此不需要维护连接状态,包括收发状态等。一台服务机可同时向多个客户机传输相同的消息。 头部开销小,传输数据报文高效,UDP信息包的包头很短,只有8字节,相对于TCP的20字节包头信息,UDP的包头开销很小。 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。 不可靠性,UDP会尽最大努力去传输和接受数据且没有限制,但并不保证可靠的数据交付,主机也不需要维持复杂的链接状态表(里面有许多参数)。 UDP是面向报文的。发送方的UDP对应用程序传过来的报文,在添加包头后就向下交付给IP层。既不拆分,也不合并,而只是保留这些报文的边界,因此,应用程序需要自己限制合适的报文大小,以免报文太大导致丢失率高。 总结 TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。 虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为 对数据准确性要求高,速度可以相对较慢的,可以选用TCP |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |