Http、Https、TCP、UDP之间的区别和联系(非原创)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http、Https、TCP、UDP之间的区别和联系(非原创)相关的知识,希望对你有一定的参考价值。

参考技术A 今日头条【Http、Https、TCP、UDP之间的区别和联系,看这一篇就够了 - 今日头条】

https://m.toutiaocdn.cn/group/6648873758100554253/?iid=60233771264

你是否感觉 Http、Https、TCP、UDP这些协议很耳熟,经常听到但不知道是怎么回事;或是很了解,但让你解释又容易解释不清?

一起来看看他们之间的区别和联系吧~

一、先有个基础的认知

OSI七层模型

HTTP和HTTPS是应用层协议,该层协议负责主机间数据传输;

TCP和UDP是传输层协议,该层协议负责网络连接。

二、HTTP和HTTPS

HTTPS = HTTP + SSL/TSL(安全层)

HTTP 是一种发布和接收 html 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTPS  经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTP vs HTTPS的工作原理

HTTP vs HTTPS

客户端使用HTTPS与服务器通信的步骤:

客户端使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

Web服务器利用自己的私钥解密出会话密钥。

Web服务器利用会话密钥加密与客户端之间的通信。

三、TCP和UDP

TCP  是面向连接的,并且是一种可靠的协议,在基于 TCP 进行通信时,通信双方需要先建立一个 TCP 连接,建立连接需要经过三次握手,握手成功才可以进行通信,而断开连接要进行4次。

UDP  是一种面向无连接,且不可靠的协议,在通信过程中,只要(目的地址,端口号,源地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据。

适用场景

TCP 协议由于可靠性高,多用于文件传输、重要状态的更新等;

UDP 协议则多用于实时性要求高的 视频传输、实时通信等。

四、应用场景:TCP+HTTPS

上文的OSI七层模型是理论模型,现实中使用的模型是 TCP/IP 五层模型,重点来看这三层: 网络层、传输层、应用层。

先看一下维基百科对这三层网络的定义(比较通俗易懂):

网络层(Network Layer) 决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。例如:互联网协议(IP)等。

传输层(Transport Layer) 把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。

应用层(Application Layer) 提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。

案例 :终端访问 https://www.baidu.com 这三层是如何起作用的?

TCP/IP Http 和Https socket之间的区别

TCP/IP Http 和Https  socket之间的区别

  1. TCP/IP是个协议组,它分为网络层,传输层和应用层,

      在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
        在传输层中有TCP协议与UDP协议。
        在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

  2. TCP 是传输层协议,主要解决数据如何在网络中传输的,TCP连接是长连接
    第一次握手:客户端发送请求包到服务器,等待服务器确认
    第二次握手:服务器响应客户端请求,同时也发送一个回应包给客户端
    第三次握手:客户端收到服务器的回应包后,向服务器发送确认包

    握手过程中传送的包里,不包含数据,三次握手完毕后,客户端与服务端才正式的开始传递数据。
    TCP一旦连接起来,在客户端和服务端任何一方主动关闭连接之前,TCP连接都将被一直保持下去。
    断开连接时,服务器和客户端都可以主动发起断开TCP连接的请求。

  3. HTTP(超文本传输协议)是应用层协议,主要解决怎么包装数据,Http连接是短连接,它是无状态的,浏览器和服务器每进行一次http操作,就建立一次连接,但任务结束就断开连接, HTTP是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议,

  4. socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。

实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口,
 
5.HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层.详解见:http://blog.sina.com.cn/s/blog_6988c43a0100xhor.html







以上是关于Http、Https、TCP、UDP之间的区别和联系(非原创)的主要内容,如果未能解决你的问题,请参考以下文章

HTTP与HTTPS的区别对称加密和非对称加密什么是数字证书DNS 解析过程TCP和UDP的区别HTTP的特点TCP 和 UDP 对应的应用场景

TCP/IP和UDP之间的区别(转载)

通俗地解释一下 TCP/UDP 协议和 HTTPFTPSMTP 协议之间区别

TCPUDPHTTPSOCKET之间的区别

TCPUDPHTTPSOCKET之间的区别

如何通俗地解释一下 TCP/UDP 协议和 HTTPFTPSMTP 等协议之间的区别?