4.http和https的区别,tcp和udp的区别

http介绍

http:超文本传输协议,用于传递浏览器和服务器之间的信息,以明文的方式进行发送,是无状态的,每一个请求都是完全独立的,包含了处理这个请求所需的完整的数据,不适合传输敏感信息,例如:身份证号,账号,密码等信息

https介绍

https:安全套接字层超文本传输协议,在原本的http的基础上加上了ssl协议,依靠证书建立连接通道,实现数据的加密传输和身份认证

http和https区别

  1. http是免费的,https需要付费申请证书
  2. http是明文传输,不适合传递敏感信息,https是加密传输,相对来说更安全
  3. 连接方式不同,端口不同,http默认端口是80,https的默认端口是443
  4. http是无状态连接,https由http+ssl组成,是可加密,可进行身份认证的
  5. https由于需要加密以及多次握手,性能方面相对不如http

TCP介绍

传输控制协议,是面向连接的协议,收发数据之前,必须建立和对方可靠的连接,例如:打电话,必须要等对方接通才能开始通话。适用于可靠性要求较高的应用,但是相对应的,需要建立连接也导致了网络开销相对较大

三次握手:是客户端和服务端简历连接的过程

  • 第一次握手:首先客户端向服务端发起连接是,首先会发送一包数据(syn包),询问是否可以建立连接
  • 第二次握手:如果服务端同意连接,则回复数据包(syn+ack)给客户端
  • 第三次握手:客户端收到数据包(syn+ack)之后,发送数据包(ack)给服务端,然后连接建立

四次挥手:客户端和服务端断开连接的过程,处于连接中的客户端和服务端都可以发起断开连接的请求,以下假设客户端发起断开连接请求:

  • 第一次挥手:客服端发起连接关闭请求,发送数据包(FIN)给服务端,表示要关闭连接,自己进入终止等待1状态
  • 第二次挥手:服务端收到FIN包,发送ACK包给客户端,表示自己进入关闭等待状态,客户端进入终止等待2状态
  • 第三次挥手:此时服务端依旧可以发送未发送的数据,客户端也可以接收数据,待服务端发送完数据之后,会继续发送一包FIN包给客户端,进入最后确认状态
  • 第四次挥手:客户端收到数据包(FIN)后,发送ACK包给服务端,进入超时等待状态,经过超时时间后关闭连接,服务端收到ACK包之后,立即关闭连接。超时等待时间是为了防止,服务端没有收到ACK包,而关闭连接导致的包丢失,如果重发ACK包,则超时等待时间会刷新

UDP介绍

用户数据包协议,是基于非连接的协议,但是相对tcp来说,没有那么可靠,例如:发送邮件,不关注对方是否成功收到。适用于更关注效率的应用,正因为没有创建和销毁连接的过程,所以网络开销相对较小,速率也相对较快

TCP和UDP的区别

  1. TCP是基于连接的可靠传输协议,连接是双向的,而UDP是基于非连接的传输协议,可靠性不如TCP
  2. 由于TCP需要有连接的创建和销毁,UDP不需要,所以UDP的网络开销相对较小,传输速率相对较快
  3. TCP为每一个连接建立了一个发送缓冲区,不会出现丢包问题

你可能感兴趣的:(面试,http,https)