Web & HTTP面试常问题

2 阅读2分钟

1.HTTP 和 HTTPS 区别

  1. 端口不同
  • HTTP:80
  • HTTPS:443
  1. 安全性

-HTTP:文明传输,容易被窃听、篡改 HTTPS:加密传输,更安全

  1. 是否加密
  • HTTP:无加密
  • HTTPS=HTTP+SSL/TLS加密
  1. 是否需要证书
  • HTTP:不需要
  • HTTPS:需要CA证书
  1. 性能
  • HTTP更快
  • HTTPS多了加密握手,稍慢一点

总结

HTTP文明80端口,不安全;HTTPS加密443端口,安全但稍慢

2.GET 和 POST 区别

  1. 参数位置
  • GET:参数放在URL里,可见
  • POST:参数放在请求体里,相对隐蔽
  1. 数据大小
  • GET:受URL长度限制,数据小
  • POST:理论无大小限制,适合传大数据
  1. 安全性
  • GET:不安全,参数明文显示
  • POST:相对安全,不会直接暴露在地址栏
  1. 缓存/历史
  • GET:会被浏览器缓存、保留在历史记录
  • POST:默认不缓存,不留历史
  1. 作用
  • GET:用于查询、获取数据
  • POST:用于提交、新增、修改数据
  1. 编码类型
  • GET只支持ASCII
  • POST支持多种编码

总结

GET查数据,URL传参、不安全、长度小;POST提交数据,请求体传参、更安全、传更大数据。

3.状态码:200、400、404、500、302

  • 200:请求成功,一切正常
  • 302:临时重定向(跳转)
  • 400:请求参数错误,后端无法解析
  • 404:资源不存在,路径/接口错了
  • 500:服务器内部代码报错(空指针、异常等)

4.Cookie 和 Session

  1. 存放位置
  • Cookie:存在客户端浏览器
  • Session:存在服务器端
  1. 安全性
  • Cookie不安全,容易被篡改、窃取
  • Session更安全,只给客户端一个SessionID
  1. 存储大小
  • Cookie很小,一般4KB左右
  • Session可存更大数据
  1. 生命周期
  • Cookie可长期保存(设置过期时间)
  • Session默认会话结束关闭浏览器就失效
  1. 典型关系

用户登录→服务器创建Session→把SESSIONID存放在COokie返回给浏览器

下次请求浏览器自动带Cookie→服务器通过SESSIONID找到对应Session

总结

Cookie存在客户端、不安全、小;Session存服务端、安全、依赖Cookie传ID。

5.转发和重定向

  1. 转发(forward)
  • 服务器内部跳转,浏览器地址栏不变
  • 只发1次请求
  • 可以共享request域数据
  • 路径写法:forward:/xxx
  1. 重定向(redirect)
  • 告诉浏览器去新地址,地址栏会变
  • 不能共享request数据
  • 路径写法:redirect:/xxx

总结

转发:服务器跳,地址不变,一次请求; 重定向:浏览器跳,地址变,两次请求;