http面试

HTTP响应码

  • Informational
  • 2xx Success
  • 3xx Redirection
  • 4xx Client Error
  • 5xx Server Error

HTTP/1.1

  1. 新增PUT/PATCH/OPTIONS/DELETE方法

  2. 默认长连接,关闭tcp链接需要在请求头设置Connection: close

  3. pipeline:

    • 配合长连接

    • 客户端可以发送多个请求,而不是等第一个响应返回后才发第二个请求

      • 注意这里的请求还是按顺序发送,而且得按顺序返回。
      • 如果其中有个响应卡住,其后的响应也会卡住。
      • 响应头使用Content-Length来标识每个响应长度。

HTTPS

http + ssl/tls加密

  • ssl: secure socket layer,ssl 3.0 -> tls 1.0
  • ssl/tls采用非对称加密,且第一个的公钥的可信度由CA来保证
  • 为了提高效率,实际的消息传输使用的是对称加密。而交换对称密钥的过程是非对称加密的。

过程总结

  1. 服务器和客户端交换密钥
    • 客户端向服务发送自己的公钥pub_c
    • 服务器向客户端返回CA的证书
    • 客户端验证证书并获取服务器的公钥pub_s
    • 双方使用pub_c和pub_s交换对称密钥key
  2. 服务器和客户端使用key来对消息进行加密

公钥:对外公开

私钥:对外不公开

加密:可以视为写入的权限

解密:可以视为读取的权限

使用公钥加密(写),私钥解密(读)是一般的消息传输

使用公钥解密(读),私钥加密(写)是证书签名:只读

Ref