美文网首页
网络相关面试问题

网络相关面试问题

作者: 骑着毛驴走起来 | 来源:发表于2019-11-01 16:49 被阅读0次

    注意:本文主讲网络相关面试问题,包括HTTP协议、HTTPS协议与网络安全、TCP/UDP区别、DNS解析。

    一、HTTP协议(超文本传输协议)

    1、主要包含内容
    请求/响应报文、连接建立流程、HTTP特点。

    2、请求/响应报文

    屏幕快照 2019-09-05 上午1.37.41.png 屏幕快照 2019-09-05 上午1.38.29.png

    (1)、http的请求方式都有哪些?
    GET、POST、HEAD、PUT、DELETE、OPTIONS
    (2)、GET和POST方式的区别?
    初级工程师回答
    1>、GET请求参数以?分割拼接到URL后面,POST请求参数在Body里面。
    2>、GET参数长度限制2048个字符,POST一般没有该限制。
    3>、GET请求不安全,POST请求比较安全。
    高级工程师回答,从语义的角度回答(标准答案)
    get:获取资源。安全的、幂等的、可缓冲的。
    post:处理资源。非安全的、非幂等的、不可缓冲的。

    安全性:不应该引起Server端的任何状态变化。例如:get、head、options
    幂等性:同一个请求方法执行多次和执行一次的效果完全相同。例如:get、put、delete
    可缓冲性:请求是否可以被缓存(代理服务器可以做缓存,多次请求时可能是获取的缓存)。例如:get、head

    (3)、你都了解哪些状态码,他们的含义是什么?
    1XX、2XX、3XX、4XX

    3、连接建立流程

    屏幕快照 2019-09-05 下午9.23.17.png

    4、HTTP的特点:无连接、无状态。
    (1)、无连接。解决方案:HTTP的持久连接。

    屏幕快照 2019-09-05 下午9.29.37.png

    1>、持久连接头部字段:
    Connection:keep-alive (允许持久连接)
    time:20 (持久连接连接时长)
    max:10 (该http连接最多可以发生多少次请求)
    2>、咋样判断一个请求是否结束?
    Content-length :1024 (响应头)
    chunked,最后会有一个空的chunked,server会给客户端返回多次响应,根据判断响应报文的头部字段chunked。

    (2)、无状态。解决方案:cookie、session。

    Session/Cookie介绍

    1>、Cookie

    屏幕快照 2019-09-05 下午10.50.04.png

    1、咋样设置Cookie?
    客户端发送的Cookie在http请求报文的Cookie首部字段中;
    服务器端设置http响应报文的Set-Cookie首部字段。
    2、咋样修改Cookie?
    (1)、新Cookie覆盖旧Cookie。
    (2)、覆盖规则:name、path、domain等需要与原Cookie一致。
    3、咋样删除Cookie?
    (1)、新Cookie覆盖旧Cookie。
    (2)、覆盖规则:name、path、domain等需要与原Cookie一致。
    (3)、设置Cookie的expires=过去的一个时间点,或者maxAge=0。
    4、咋样保证Cookie的安全?
    (1)、对Cookie进行加密处理。
    (2)、只在HTTPS上携带Cookie。
    (3)、设置Cookie为httpOnly,防止跨站脚本攻击。

    2>、Session
    Session也是用来记录用户状态,区分用户的;状态存放在服务器端。
    Session和Cookie的关系是咋样的?Session需要依赖于Cookie机制。

    屏幕快照 2019-09-05 下午10.39.34.png

    5、Charles抓包原理是咋样的?
    利用HTTP中间人攻击漏洞实现的。

    屏幕快照 2019-09-05 下午9.45.34.png

    二、HTTPS协议与网络安全

    1、HTTPS和HTTP有咋样的区别?
    HTTPS = HTTP+SSL/TLS。HTTPS是安全版的HTTP, 是由一个SSL/TLS,插在传输层之上,应用层之下的协议来保证的。

    https协议栈

    2、HTTPS连接建立流程:

    HTTPS连接建立流程.png

    (1)、会话秘钥:
    会话秘钥 = random S + random C + 预主秘钥
    (2)、https都使用了哪些加密手段?为什么
    1>、连接建立过程使用非对称加密,非对称加密很耗时的。
    2>、后续通讯过程使用对称加密。
    (3)、对称加密(AES):

    屏幕快照 2019-09-05 上午12.23.37.png

    (4)、非对称加密(RSA):

    屏幕快照 2019-09-04 下午11.44.23.png

    三、TCP/UDP区别

    1、UDP(用户数据报协议)
    特点:无连接;尽最大努力交付(不保证可靠传输);面向报文(既不合并,也不拆分)。

    屏幕快照 2019-09-05 上午12.31.42.png

    功能:复用、分用;差错检测。

    复用、分用.png 差错检测.png

    2、TCP(传输控制协议)
    特点:面向连接;可靠传输;面向字节流;流量控制;拥塞控制。
    (1)、面向连接
    三次握手原因(不是两次握手原因):当客户端发送连接报文时,当出现网络超时时,会启动超时重发策略,服务端同时也会返回超时重发的报文,当客户端收到的报文是超时重发的,会取消和服务端创建连接,只保证会创建一个TCP连接。

    屏幕快照 2019-09-05 上午1.25.35.png 屏幕快照 2019-09-05 上午1.25.51.png

    (2)、可靠传输
    如何保证可靠传输:无差错、不丢失、不重复、按序到达
    如何实现:通过停止等待协议实现。无差错、超时重发、确认丢失、确认迟到。

    屏幕快照 2019-09-05 上午1.21.59.png 屏幕快照 2019-09-05 上午1.21.38.png 屏幕快照 2019-09-05 上午1.19.01.png

    (3)、面向字节流

    屏幕快照 2019-09-05 上午1.06.16.png

    (4)、流量控制
    滑动窗口协议

    屏幕快照 2019-09-05 上午1.12.43.png

    (5)、拥塞控制
    慢开始、拥塞避免;快恢复、快重传。

    屏幕快照 2019-09-05 上午1.16.38.png

    四、DNS解析

    1、了解DNS解析吗?
    域名到IP地址的映射,DNS解析请求采用UDP数据报,且明文。

    屏幕快照 2019-09-05 下午9.57.37.png

    2、DNS解析查询方式
    (1)、递归查询

    屏幕快照 2019-09-05 下午10.00.21.png

    (2)、迭代查询

    屏幕快照 2019-09-05 下午10.01.21.png

    3、DNS解析存在哪些常见的问题?
    (1)、DNS劫持问题

    屏幕快照 2019-09-05 下午10.05.24.png

    DNS劫持与HTTP的关系是咋样的?
    没有关系。(1)、DNS解析发生在HTTP建立连接之前;(2)、DNS解析请求使用UDP数据报,端口号53。

    咋样解决DNS劫持?
    1>、httpDNS

    屏幕快照 2019-09-05 下午10.13.27.png 屏幕快照 2019-09-05 下午10.14.48.png

    2>、长连接

    屏幕快照 2019-09-05 下午10.16.51.png

    (2)、DNS解析转发问题

    屏幕快照 2019-09-05 下午10.10.55.png

    最后总结点东西吧,面试官经常问的问题有:

    1、HTTP中的get和post方式有什么区别?
    2、HTTPS连接建立的流程是咋样的?
    3、TCP和UDP有什么区别?
    4、请简述TCP的慢开始过程?
    5、客户端咋样避免DNS劫持?

    相关文章

      网友评论

          本文标题:网络相关面试问题

          本文链接:https://www.haomeiwen.com/subject/agwryctx.html