Java面试题(23)-Http Https TCP UDP

很常见的四个知识,但是突然发现如果问题它是什么,我不能很清楚流畅的解释出来,所以在此记录一下:

Http协议

  • Http协议全称是超文本传输协议,是在web上进行数据交互的基础,是一种客户端-服务器协议
  • Http是一种可扩展协议
  • HTTP是应用层的协议,通过TCP,或者是TLS-加密的TCP连接来发送,理论上任何可靠的传输协议都可以使用
  1. 简单的(简单易懂)
  2. 可扩展的
  3. 无状态,有会话

Https 

超文本传输安全协议,是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性  。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。

Http和Https区别:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

TCP: 

传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议

其中比较重要的就是:

三次握手 :客户端和服务端连接时的动作

四次挥手:客户端和服务端断开时的动作

TCP三次握手的过程如下:

  1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。

  2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。

  3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了

Java面试题(23)-Http Https TCP UDP_第1张图片

 

TCP四次挥手:

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1

Java面试题(23)-Http Https TCP UDP_第2张图片

 

 

UDP: 

用户数据报协议,UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法

TCP和UDP:

 Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。

你可能感兴趣的:(java面试题,服务器,运维)