计算机基础面试——持续总结

1、TCP和UDP的区别?

TCP\UDP
TCP/IP协议是一个协议簇。里面包括很多协议的,UDP只是其中的一个, 之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,就用他两命名了。

TCP/IP协议集包括应用层,传输层,网络层,网络访问层。

1)TCP(Transmission Control Protocol,传输控制协议)

是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂, 只简单的描述下这三次对话的简单过程:

1)主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;

2)主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包 :“可以,你什么时候发?”,这是第二次对话;

3)主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”, 这是第三次对话。

三次“对话”的目的是使数据包的发送和接收同步, 经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP建立连接要进行三次握手,断开连接要进行四次挥手。

2)UDP(User Data Protocol,用户数据报协议)
UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传输带宽的限制; 在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

3)两者区别

  • 可靠性方面的区别:
    TCP可靠,UDP不可靠。
  • 传播速度的区别:
    udp的传送速度也比tcp的快。因为tcp在传送的时候要先建立连接,建立连接的时候是比较耗时的,而且在传送数据的时候还要确认一些东西,而udp无连接传送数据的。
  • 连接对象数量的区别:
    tcp是一对一的连接,而udp是一对多个或多对多个连接的。

2、TCP的三次握手和四次挥手?

三次握手过程:
1)主机A向主机B发出连接请求数据包
2)主机B向主机A发送同意连接和要求同步的数据包
3)主机A再发出一个数据包确认主机B的要求同步

四次挥手过程:
因为TCP有个半关闭状态,假设A.B要释放连接,那么
1)A发送一个释放连接报文给B,
2)B收到后发送确认,这个时候A不发数据,但是B如果发数据A还是要接收,这叫半关闭。
3)然后B还要发给A连接释放报文,
4)然后A发确认,所以是4次。

在TCP连接握手时为何ACK是和SYN一起发送(第二次握手)?这里ACK却没有和FIN一起发送(二、三次挥手)呢?

3、HTTP和HTTPS的区别?

HTTP协议(超文本传输协议)被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密。

HTTPS协议 是由 SSL/TLS+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTPS和HTTP的主要区别:

    1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

客户端在使用HTTPS方式与Web服务器通信时的步骤:
在这里插入图片描述
面试常见问题,HTTPS优化总结易记版:

1)HSTS重定向技术:将http自动转换为https,减少301重定向
2)TLS握手优化:在TLS握手完成前客户端就提前向服务器发送数据
3)会话标识符:服务器记录下与某客户端的会话ID,下次连接客户端发ID过来就可以直接用之前的私钥交流了
4)OSCP Stapling:服务器将带有 CA 机构签名的 OCSP 响应在握手时发给客户端,省的客户端再去CA查询
5)完全前向加密PFS:使用更牛逼复杂的秘钥算法

4、HTTP请求的报文格式和常见状态码?

HTTP请求报文组成:请求行、请求头、请求体
HTTP响应报文组成:响应行、响应头、响应体

HTTP 请求方法 有哪些:
在这里插入图片描述
HTTP 状态码
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。

2XX 成功:
在这里插入图片描述
3XX 重定向:
在这里插入图片描述
4XX客户端错误:
在这里插入图片描述
5XX 服务器错误:
在这里插入图片描述

5、一次完整的HTTP请求流程?(在浏览器输入URL后发生了什么?)

一次完整的HTTP请求流程

  • 1)DNS域名解析
  • 2)建立TCP连接
  • 3)发送HTTP请求
  • 4)服务器处理请求并返回HTTP报文
  • 5)浏览器解析渲染页面
  • 6)释放TCP连接
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值