计算机网络面试题

计算机网络面试题

因为马上要开始找工作,所有写一些面试题笔记

  • Q1:OSI七层模型和TCP/IP四层模型?

  • Q2:TCP和UDP的区别?

  • Q3:TCP的三次握手和四次挥手?

  • Q4:HTTP和HTTPS有什么区别?

  • Q5:Session和Cookie?

  • Q6:Get和Post的区别?

  • Q7:常用http状态码?

Q1:OSI七层模型和TCP/IP四层模型
OSI七层模型:物理层。数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP四层模型:数据链路层,网络层,传输层,应用层
Q2:TCP和UDP的区别
TCP:是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP:是一种无连接的且不对传送数据包进行可靠性保证的传输层协议,UDP传输的可靠性由应用层负责。

image-20220921154414744

Q3: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使用的流量控制协议是可变大小的滑动窗口协议。

image-20220921154839916

四次挥手

对于TCP来说,建立一个连接需要三次握手,而关闭连接要经过四次握手,这是因为TCP的半关闭造成的
(一次)
1.某端主动关闭,发送一个FIN(一次)
2.接收到这个FIN,处于被动关闭状态,发送一个ACK(二次)
3.过一段时间,数据传输完毕,发送一个FIN(三次)
4.接收到FIN,发送一个ACK回去。(四次)

image-20220921155513263

Q4:HTTP和HTTPS有什么区别?
简单地说HTTPS是一个安全的,有加密机制的协议,在HTTP的基础上

image-20220921160413484

Q5:Session和Cookie?

Session和Cookie都是用来进行身份识别的

  • Cookie
Cookie是保存在客户端的一个小数据块,包含了用户信息。当客户端向服务器发送请求,服务器会向客户端浏览器发送一个Cookie,客户端会把Cookie存储起来,当下次客户端再次请求服务器时,会将这个Cookie调出,服务器通过这个Cookie识别身份
  • Session
Session是通过Cookie实现的,为每个访客创建一个独一的id (UID),并基于这个UID来存储变量。UID存储在cookie 中,或者通过URL进行传导
  • Token
客户端在浏览器第一次访问服务端时,服务端生成的一串字符串作为Token发给客户端浏览器,下次浏览器在访问服务端时携带token即可无需验证用户名和密码,省下来大量的资源开销。
Q6:GET和POST的区别
  • 请求参数:GET 把参数包含在 URL 中,用&连接起来;POST 通过 request body 传递参数。
  • 请求缓存:GET请求会被主动Cache,而POST请求不会,除非手动设置。
  • 收藏为书签:GET请求支持收藏为书签,POST请求不支持。
  • 安全性:POST比GET安全,GET请求在浏览器回退时是无害的,而POST会再次请求。
  • 历史记录:GET请求参数会被完整保留在浏览历史记录里,而POST中的参数不会被保留。
  • 编码方式:GET请求只能进行url编码,而POST支持多种编码方式。
  • 参数数据类型:GET只接受ASCII字符,而POST没有限制数据类型。
  • 数据包: GET产生一个TCP数据包;POST可能产生两个TCP数据包。
Q7:常用的HTTP状态码
  • 1XX
    - 100 Continue:表示正常,客户端可以继续发送请求
    - 101 Switching Protocols:切换协议,服务器根据客户端的请求切换协议。
    
    2XX
    - 200 OK:请求成功
    - 201 Created:已创建,表示成功请求并创建了新的资源
    - 202 Accepted:已接受,已接受请求,但未处理完成。
    - 204 No Content:无内容,服务器成功处理,但未返回内容。
    - 205 Reset Content:重置内容,服务器处理成功,客户端应重置文档视图。
    - 206 Partial Content:表示客户端进行了范围请求,响应报文应包含Content-Range指定范围的实体内容
    
    3XX
    - 301 Moved Permanently:永久性重定向
    - 302 Found:临时重定向
    - 303 See Other:和301功能类似,但要求客户端采用get方法获取资源
    - 304 Not Modified:所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。
    - 305 Use Proxy:所请求的资源必须通过代理访问
    - 307 Temporary Redirect: 临时重定向,与302类似,要求使用get请求重定向。
    
    4XX
    - 400 Bad Request:客户端请求的语法错误,服务器无法理解。
    - 401 Unauthorized:表示发送的请求需要有认证信息。
    - 403 Forbidden:服务器理解用户的请求,但是拒绝执行该请求
    - 404 Not Found:服务器无法根据客户端的请求找到资源。
    - 405 Method Not Allowed:客户端请求中的方法被禁止
    - 406 Not Acceptable:服务器无法根据客户端请求的内容特性完成请求
    - 408 Request Time-out:服务器等待客户端发送的请求时间过长,超时
    
    5XX
    - 500 Internal Server Error:服务器内部错误,无法完成请求
    - 501 Not Implemented:服务器不支持请求的功能,无法完成请求
    

后续有内容再添加

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值