0124面试题——状态码、HTTPS、SSL、加密

126 阅读6分钟

计算机网络

  1. 200,204,301,302,304这些请求头代表什么意思,什么场景下会出现

    • 情况分类
      • 2开头的,响应成功,客户端请求服务器正常响应处理了。
      • 3开头的,响应成功,重定向了,服务器资源移动了。
      • 4开头的,响应失败,客户端原因,比如请求格式不正确,或者请求的内容服务器拒绝响应。
      • 5开头的,响应失败,服务器原因,比如服务器处理能力不足,或者内部出现bug错误。
    • 200:
      • OK, 请求成功。一般用于GET与POST请求
    • 204:
      • No Content, 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。例如跨域时发送的预检请求(OPTIONS)
    • 301:
      • Moved Permanently, 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
    • 302:
      • Found, 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
    • 304:
      • Not Modified, 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源(协商缓存)
    • 更多:HTTP状态码
  2. http与https有什么区别

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

    • http 基于 tcp 协议,tcp 三次握手之后即可开始 http 通信;https 是在 http 与 tcp 之间加了一个 SSL/TLS 安全层,在 tcp 握手之后,还要进行 TLS 握手,才可以开始通信。

    • http 没有身份认证,存在安全隐患;https 使用证书系统来进行身份认证,使用 https 的网站需要到 CA 申请证书,一般免费证书较少,因而需要一定费用。

    • http 默认端口是 80,https默认端口 443

  3. SSL它什么优缺点

    • 优点
      • 确保信息数据的安全。
      • 提高网站的真实性。
    • 缺点:
      • 技术门槛比较高,申请证书比较烦琐
      • 信息传输比HTTP更复杂
      • 加密解密,密钥协商需要一定时间,增加了时延
  4. 非对称加密与对称加密的原理是什么,有什么区别

    • 对称加密,加密和解密使用同一个秘钥,例如 AES
    • 非对称加密,加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密(用于数据加解密)。私钥加密的信息,只有公钥才能解密(用于数字证书)。例如RSA
    • 区别:对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.
  5. https中哪个阶段使用了非对称加密,哪个阶段使用对称加密,为什么

    • 交换会话密钥的阶段使用非对称加密,将会话密钥通过非对称加密进行加密,然后再传输过程中,可以保证会话密钥的安全性
    • 双方都拥有会话密钥后,再使用会话密钥对传输的信息进行加密
    • 因为非对称加密的效率不如对称加密的效率高,但是非对称加密的密钥对的保密性更好,因此在交换会话密钥时使用非对称加密,正式传输信息的时候使用对称加密
  6. 非对称加密一般有哪些实现的算法

    • RSA:它的安全性基于 大数分解,使用两个超大素数的乘积作为生成密钥的材料
    • ECC:它基于椭圆曲线离散对数的数学难题,使用特定的曲线方程和基点生成公钥和私钥
  7. websocket链接过程是怎样的

    1. Browser与WebSocket服务器通过TCP三次握手建立连接,如果这个建立连接失败,那么后面的过程就不会执行,Web应用程序将收到错误消息通知。
    2. 在TCP建立连接成功后,Browser/UA通过http协议传送WebSocket支持的版本号,协议的字版本号,原始地址,主机地址等等一些列字段给服务器端。
    3. WebSocket服务器收到Browser/UA发送来的握手请求后,如果数据包数据和格式正确,客户端和服务器端的协议版本号匹配等等,就接受本次握手连接,并给出相应的数据回复,同样回复的数据包也是采用http协议传输。
    4. Browser收到服务器回复的数据包后,如果数据包内容、格式都没有问题的话,就表 示本次连接成功,触发onopen消息,此时Web开发者就可以在此时通过send接口想服务器发送数据。否则,握手连接失败,Web应用程序会收到 onerror消息,并且能知道连接失败的原因。
  8. http1与http2的区别

    • HTTP/1.0: 默认短连接(一次请求建立一次TCP连接,请求完就断开),支持GET、POST、 HEAD请求
    • HTTP/1.1: 默认长连接(一次TCP连接可以多次请求)。支持PUT、DELETE、PATCH等六种请求,增加host头,支持虚拟主机;支持断点续传功能
    • HTTP/2.0:多路复用,降低开销(一次TCP连接可以处理多个请求);服务器主动推送(相关资源一个请求全部推送);解析基于二进制,解析错误少,更高效(HTTP/1.X解析基于文本);报头压缩,降低开销。
  9. ajax与http的关系

    • ajax
      • ajax请求是特殊的http请求
      • ajax请求通过xhr或者fetch发送
      • js可以获取响应数据,并以此更新网页而不刷新网页
      • ajax请求的头部x-requested-with字段的值为XMLHttpRequest
    • http
      • http请求可以通过键入并转到url、提交表单、加载外部文件发送
      • js无法获取响应数据
  10. 在浏览器中输入url发出的请求与ajax的区别

    • 输入url
      • 网页刷新
      • js无法获取响应数据
      • 只能发送get请求,参数必须包含在url里
      • 不受跨域限制
    • 发送ajax
      • 网页不会刷新
      • js可以获取响应数据
      • 能发送多种请求,参数可以包含在url及body里
      • 受跨域限制